LoginSignup
2
2

More than 5 years have passed since last update.

Spring4を使ってみる。bootしてみる

Posted at

Springおじさんにならなくては

お仕事でSpringを使っていく風潮が出てきたので、設定とかアノテーションとかをさらっておこうと思います。先輩がよく言っているので、僕もbootしてみます。

前回まで

viewを返すContorollerクラス作った

依存関係

boot用のライブラリが配布されるのでそちらをペタリ。view用のテンプレートとしてthymeleafをおすすめされているようなので、こちらもペタリ。

build.gradle
compile group: 'org.springframework.boot', name: 'spring-boot-starter-web', version: '1.3.6.RELEASE'
compile group: 'org.springframework.boot', name: 'spring-boot-starter-thymeleaf', version: '1.3.6.RELEASE'

プラグイン

SpringBoot用の便利なgradleプラグインがあるみたいだったので、ありがたく使わせて頂きます。

jar作って、java -jar hoge.jarする地味に面倒な作業がこれでサボれるぞ!

build.gradle
buildscript {
    dependencies {
        classpath("org.springframework.boot:spring-boot-gradle-plugin:1.3.6.RELEASE")
    }
    repositories {
        mavenCentral()
    }
}
apply plugin: 'spring-boot'

メインクラス

Application.java
@SpringBootApplication  // equivalent to using @Configuration, @EnableAutoConfiguration and @ComponentScan
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }
}
  • Application
    • warをtomcatさんに渡すのではなく、単一の実行ファイルを作るためmainメソッドを定義します。
    • mainメソッドがあるクラスの場所は特に設定しなくていいみたい。上述のspring-bootプラグインのお陰かな。
  • @SpringBootApplication

  • @EnableAutoConfiguration

    • SpringBootの基本設定等々をよしなにやってくれるらしい
    • 具体的な項目はまだ分からない、、、
  • @ComponentScan

    • このクラス以下のパッケージから@Contorollerを探してくれるっぽい!

とりあえず実行

$ gradle bootRun

スクリーンショット 2016-07-15 0.36.25.png

(・8・)おー!

テンプレートファイル

index.html
<html lang="jp" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
    <meta charset="UTF-8"/>
</head>
<body>
<h2>すぷりんぐぶーと!</h2>
<span th:text="${voice}"></span>(・8・)!
</body>
</html>
  • index.html
    • thymeleaf(SpringBoot?)の場合、テンプレートファイルは/resources/templates以下に置いてくようです
  • th:text="${voice}"
    • viewを返すControllerクラスのメソッドが扱うModelの変数はこの要素から取得する
    • ${}だけで取得できたJSPに比べるとちと面倒かな、、、
  • thymeleaf
    • せっかくのテンプレートエンジンですが、まだよく知らない

とりあえず実行

$ gradle bootRun

スクリーンショット 2016-07-15 0.42.58.png

やったー!(・8・)

少し困ったこと

  • jacksonの依存関係をgradleに書いていると、内蔵tomcatが起動しない
    • spring-webmvcパッケージは大体のSpring以外の依存関係がoptionalで必要であれば各自解決をするというスタイルでしたが、spring-boot-starter-webはjacksonが最初から引っ張られて来るようです。
2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2