狠狠撸
Submit Search
Spring Boot Introduction
?
5 likes
?
2,315 views
C
chibochibo
Follow
This slide is a brief introduction of Spring Boot.
Read less
Read more
1 of 28
Download now
Downloaded 11 times
More Related Content
Spring Boot Introduction
1.
Spring Boot 2014-7-19 第七回 #渋谷java
2.
自己紹介 ● 島本 多可子(しまもと
たかこ) ● 今年4月にBizReachに入社 ● ここ数年はScalaばかり ● 食わず嫌いだったRubyを勉強中 ○ 先生は引退して去っていきました ● Javaは??? ○ そーいえば最近書いてないなぁ (??ω?`)??????
3.
でも闯补惫补の话します(`?ω??)???
4.
今日お話すること ● Spring Bootって何? ●
Spring Bootを使ってみる ● Spring Bootの主な機能 ● で、何がうれしいの?
5.
Spring Bootとは ● 最小限の工程で実用可能なSpringアプリケー ションを作ることができる ○
生産性が向上する ● 「java -jar」でアプリを起動できる! ● 流行のDropwizardにインスパイア
6.
特徴 ● XMLの設定が不要 ● Spring周りの複雑な依存関係がまとめられ、 pomがシンプルに ●
Embeddedサーブレットコンテナをサポート ● 非機能面のサポートが充実 ○ メトリクス、ヘルスチェック、設定の外部化など
7.
構成 ● Webアプリの部分はSpring MVCベース ●
あとはテンプレートやO/Rマッパなどを自由に組み合わせる Tomcat or Jetty Spring Spring MVC Thymeleaf ??? 全部を1つのjarにして 実行できる
8.
使ってみる ● ビルドはMaven ○ 他にもGradle、Ant、Spring
Boot CLIが使える ● 作るもの ○ コントローラ(必要に応じてレイヤリング) ○ エントリポイントとなるメインクラス
9.
pom.xml ● parentに以下を指定 <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>1.1.4.RELEASE</version> </parent>
10.
pom.xml ● dependenciesは1つだけ <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> </dependencies>
11.
コントローラ ● Spring MVCのアプリ @RestController public
class SampleController { @RequestMapping("/") public String home() { return "Hello Spring Boot!!"; } }
12.
メインクラス ● 実行のエントリポイントになる @EnableAutoConfiguration @ComponentScan public class
SampleApplication { public static void main(String[] args) { SpringApplication.run(SampleApplication.class, args); } } spring-boot-autoconfigureの中にあ る設定ファイルspring.factoriesの設 定で自動的にロードされる
13.
実行 ● mavenコマンドで実行 > mvn
spring-boot:run
14.
jarで実行するには ● pomにプラグインを追加 <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins>
15.
実行 ● javaコマンドで実行 > mvn
package > java -jar target/spring-boot-sample-1.0-SNAPSHOT.jar
16.
主な機能 ● テンプレートエンジン ○ Thymeleaf(src/main/resources/templates配下に置い ておくと、自動的に検知してくれる) ○
FreeMaker ○ Groovy ○ Velocity ○ JSP JSPはembeddedで動かす際に制限事項があ るので避けたほうがよい
17.
主な機能 ● データベース ○ Spring標準のSpring
JDBC ○ サブプロジェクトのSpring Data JPA ● NoSQL ○ Redis(spring-boot-starter-redis) ○ MongoDB(spring-boot-starter-data-mongodb) ○ Solr(spring-boot-starter-data-solr) ○ Elasticsearch(spring-boot-starter-data-elasticsearch)
18.
主な機能 ● 監視、デバッグ <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-actuator</artifactId> </dependency>
19.
監視、デバッグ ● http://localhost:8080/beans(Springコンテキストに何が登 録されているか) ● http://localhost:8080/mappings(コントローラのマッピング 状態) ●
http://localhost:8080/trace(HTTPリクエストのトレース) ● http://localhost:8080/metrics(アクセスカウンタ/メトリクス) ● http://localhost:8080/dump(スレッドダンプ) ● 他にもいろいろ???
20.
こんな感じ
21.
今までのWebアプリと そんなに変わらないんじゃない?
22.
违うんです!
23.
箩补谤ですよ!
24.
何がうれしいのか ● java -jarで実行できるということは、Javaの環境 されあればどこでも動かせるということ ●
あくまで1つのプロセスとしてWebアプリを起動 ● 従来のように、アプリケーションサーバを用意し て、設定をして、warをデプロイして???といった ことをしなくても動かせる
25.
何がうれしいのか ● Immutable Infrastructureに沿ったアーキテクチャ ○
コンテナベースのデプロイ ○ Dockerを使って構築 ● 断続的な開発で常に動く環境があることが重要 ○ コードをGitで管理 ○ プッシュされた変更をフックにしてビルドやデプロイ ● アプリケーションのアーキテクチャにも影響 ○ 横へのスケールが容易なこと ○ 開発/プロダクション環境が同一視できること
26.
まとめ ● Dropwizardと発想は同じ ● Dropwizardと違って、Springという安心感とサ ブモジュールが充実している ●
Javaの環境さえあれば動くので、Immutable Infrastructureを構築しやすい ● コード部分というより、開発~運用全体としての 生産性が向上する
27.
Spring Boot気になった人は
Download