Upload
Spring starterによるSpring Boot Starter
•
Download as PPTX, PDF
•
2 likes
•
3,163 views
Ryosuke Uchitate
Follow
JSUG勉強会 2016年その4 Spring I/O報告会 Spring starterによるSpring Boot Starter
Read less
Read more
Report
Share
Report
Share
1 of 49
Download now
More Related Content
Spring starterによるSpring Boot Starter
1.
Boot starterが語るSpring bootの仕組み & Spring
5以降のReactiveな流れと フロントまわりの話 株式会社タグバンガーズ
2.
横浜・設立6年目・Webアプリ開発・ほぼSpring案件
3.
TAG BAR 月1ぐらい開催してる社外の方を招いて行う勉強会 connpass(http://tagbar.connpass.com/)にて募集
4.
軽く自己紹介 佐々木 亜里沙(ささき ありさ) UIチーム・プロダクトチーム 北海道 内立
良介(うちたて りょうすけ) デベロップメントチーム 宮崎
5.
Spring starterによる Spring Boot
Starter 株式会社タグバンガーズ 内立良介
6.
AGENDA Spring I/O 2016の様子 セッション概要 セッションの解釈(@AutoConfiguration,
Starter) 開発時の便利機能の紹介
7.
Spring I/O 2016 開催地:スペイン・バルセロナ セッション数:2日間で48セッション 参加者:26カ国、475人(うち日本からの参加:8人)
8.
Session
9.
AFTER EVENT PARTY
10.
セッションの概要
11.
CUSTOMIZE YOUR SPRING
BOOT EXPERIENCE BY WRITING YOUR OWN SPRING BOOT STARTER https://github.com/michael-simons/springio2016 ベースとなるセッション
12.
Custom Spring Boot
Starter –part1- Spring Boot Starterには様々な種類がある Integration、Template Engines、Validationなど プロジェクトを作るときは以下のURLから作ると簡単に作れる http://start.spring.io
14.
Custom Spring Boot
Starter –part2- 標準的なAutoConfigurationに使用 @ConditionalOnClass @AutoConfigureAfter、@AutoConfigureBefore @Bean
15.
Custom Spring Boot
Starter –part3- その他の条件指定・順序決め @ConditionalOnProperty @ConditionalOnMissingBean @Order
16.
セッションの解釈
17.
@SpringBootApplicationって何者?
18.
@SpringBootApplication 3つのアノテーションを1つにまとめたもの @EnableAutoConfiguration 自動設定を有効にする @ComponentScan このクラスのパッケージ配下で@Component, @Service, @Controller,@RestController, @NamedつきのクラスをDIコンテナに登録する @Configuration このクラス自体をBean定義可能にする
19.
@SpringBootApplicationの流れ (@EnableAutoConfigurationのみ)
20.
1.DIコンテナ(ApplicationContext)作成
21.
2.BeanFactory作成
22.
3.spring.factries読込、 BeanDefinition取捨選択、並び替え
23.
4.Bean登録
24.
さあ、starterを作りましょう!!!
25.
starterがやってくれること アプリケーションの開発に必要な依存関係を追加 ライブラリを使うために必要な設定を追加
26.
ネーミングルール ”spring-boot”ではじまる名前をつけてはいけない!
27.
社内で作ったライブラリなどを starterにすれば。。。
28.
面倒な設定なしに使える!!
29.
突然ですが、 spring.factriesって知ってますか?
30.
spring.factories org.springframework.boot.autoconfigure.EnableAutoConfiguration= com.mycorp.libx.autoconfigure.LibXAutoConfiguration, com.mycorp.libx.autoconfigure.LibXWebAutoConfiguration このように書けば、Spring Bootが@EnableAutoConfigurationの対象と認識してくれ る。 デフォルトのパスは、META-INF/spring.factoriesとなっている。
31.
作ったstarterを読み込ませたいなら
32.
作ったstarterのAutoConfigurationのパスを META-INF/spring.factoriesに書けばいい。
33.
というのはわかったけど。。。
34.
依存関係があるから適用する 順序を指定したい。
35.
安心してください! 順序指定できますよ!
36.
インポート順序を指定するための アノテーション @Order 引数に指定した順序で優先順位が決まる。最も小さい値が優先度が最も高 い。 @AutoConfigureBefore 指定したauto-configurationクラスより前に適用する。 @AutoConfigureAfter 指定したauto-configurationクラスより後に適用する。
37.
依存関係にあるクラスの有無で インポートするかどうか指定したい。
38.
安心してください! 指定できますよ!
39.
Conditionアノテーションを使おう!
40.
Conditonアノテーション @ConditionalOnClass(@ConditionalOnMissingClass) 指定したクラスがクラスパス上にあったら(なかったら)有効 @ConditionalOnBean(@ConditionalOnMissingBean) 指定したBeanがあったら(なかったら)有効 @ConditionalOnProperty
指定したプロパティがあったら有効 @ConditionalOnResource 指定したリソースがあったら有効 @ConditionalOnWebApplication(@ConditionalOnNotWebApplication) Webアプリケーションであったら(なかったら)有効
41.
デモアプリケーションをみてみよう!!
42.
テンプレートで <banner:show />を指定すれば、 viewでbannerイメージを表示して くれるstarter セッションで行われたデモ
43.
プロジェクトの構成
44.
demoの pom.xml
45.
AutoConfigurationクラス
46.
spring.factories
47.
開発時の便利機能の紹介
48.
spring-boot-starter-actuator システムの状態やメトリクスを確認できる 主なエンドポイント autoconfig auto-configurationの候補と自動設定された理由・されなかった理由 beans DIコンテナに登録されているBeanの一覧 metrics
メトリクス情報が見れる mappings @RequestMappingのマッピング情報
49.
スピーカー交代
Download now