はじめに
MacPCを手に入れたのでSpringの環境構築を1から試してみました。
✅参考
Pleiades Java 11 標準搭載と Eclipse コードネーム終焉
環境構築
①Pleiades All in One ダウンロード
http://mergedoc.osdn.jp/
Full versionをインストール※1.3GBあるので注意!!
②Eclipseを起動して新規作成
新規>Springスタータ・プロジェクト>(パッケージ選択)>完了

Hello Worldしてみる
src/main/java/com/example/demo/tryspring/HelloController.javaを作成
package com.example.demo.tryspring; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.GetMapping; @Controller public class HelloController { @GetMapping("/hello") public String getHello() { return "hello"; } }
上記のように@ControllerをつけることでDIでコントローラが利用できるようになる。
@GetMappingをメソッドにつけるとHTTPリクエストのGETメソッドを処理できる。
※htmlファイルはresources/templatesフォルダを参照する
😇ディレクトリ階層深すぎじゃない??って感じですね笑
src/main/resources/templates/hello.htmlを作成
<!DOCTYPE html> <html xmlns:th="htt@://www.thymeleaf.org"> <head> <meta charset="UTF-8"></meta> <title>Hello World</title> </head> <body> <h1>Hello World</h1> </body> </html>
実行
プロジェクト右クリック>実行>SpringBootアプリケーション
http://localhost:8080/helloにアクセス

値を渡す処理
htmlに追記
<form method="post" action="/hello"> 好きな文字を入力: <input type="text" name="text1" th:value="${text1_value}"> <inputtype="submit" value="クリック"> </form>
th:valueを使うことでコントローラークラスに値を渡すことが可能◎
※タイムリーフの属性
コントローラへの追記
@PostMapping("/hello") public String postRequest(@RequestParam("text1")String str,Model model) { model.addAttribute("sample",str); return "helloResponse"; }
@PostMappingをメソッドにつけるとHTTPリクエストのPOSTメソッドを処理。
@RequestParamで画面からの入力を受付。引数にhtmlのname属性を指定。
helloResponse.htmlの作成
<body>
<h1>HelloResponse</h1>
<p th:text="${sample}"></p>
</body>
th:text属性にmodel.addAttributeで登録したキーを指定してコントローラーから値を受け取る。

DB接続
コントローラ→サービス(Model)→リポジトリ(DBへのCRUD操作※Model)の流れ
application/propertiesを編集
spring.datasource.url=jdbc:h2:mem:testdb;DB_CLOSE_DELAY=1;DB_CLOSE_ON_EXIT=FALSE spring.datasource.driver-class-name=org.h2.Driver spring.datasouce.username=sa spring.datasouce.password= spring.datasource.sql-script-encoding=UTF-8 spring.h2.console.enabled=true spring.datasource.initialize=true spring.datasource.schema=classpath:schema.sql spring.datasource.data=classpath:data.sql
※H2はサーバー起動ごとにデータがリセットされるらしい。
schema.sqlの作成
CREATE TABLE IF NOT EXISTS employee ( employee_idINT PRIMARY KEY, employee_nameVARCHAR(50), ageINT )
data.sqlの作成
INSERT INTO employee(employee_id, employee_name,age) VALUES(1,"山田太郎",30);
HelloRepository.javaの作成
package com.example.demo.tryspring; import java.util.Map; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jdbc.core.JdbcTemplate; import org.springframework.stereotype.Repository; @Repository public class HelloRepository { @Autowired private JdbcTemplate jdbcTemplate; public Map<String, Object> findOne(int id){ String query = "SELECT " + "employee_id," + "employee_name," + "age " + "FROM employee " + "WHERE employee_id=?"; Map<String, Object> employee = jdbcTemplate.queryForMap(query, id); return employee; } }
※インデントみづらくてすみません💦ちょっとここまででステイします。
おわりに
アノテーションをつけることでDIを機能させていることがわかった。
なんとなくSpringの仕組みの触りだけでも理解できたのでよしとしよう。
DB接続まで挑戦してみようと思ったが、他の言語の学習に時間を使いたいと思ってしまったのでここまでで。。。笑
コメントを残す