SlideShare a Scribd company logo
1 of 46
Download to read offline
1
What's new in Spring Boot 2.6 ?
2022/03/30
日本Springユーザ会
土岐 孝平
自己紹介
• 土岐 孝平
• 合同会社 現場指向
– Springのオンライン研修
– スポット技術支援
– メモラキー
• 書籍の執筆
2
[改訂新版]Spring入門 OpenID Connect入門
「ゼロ・トゥー・ヒーロー with Spring」
~ 5日間でゼロから即戦力へ ~
現場指向
🔍
4月開催
☆限定割引中☆
Spring Bootのリリーススケジュール
• 5月と11月にマイナーもしくはメジャーバージョンがリリースさ
れる
• 去年の11月にバージョン2.6がリリースされた
• 今年の5月に2.7がリリース予定
• 今年の11月に3.0がリリース予定
3
https://github.com/spring-projects/spring-
boot/wiki/Supported-Versions#release-schedule
2.6の変更点の確認方法
• リリースノートを確認する
– https://github.com/spring-projects/spring-boot/wiki/Spring-Boot-
2.6-Release-Notes
• 中の人の動画を見る
– Spring Boot開発者のPhilさん
• https://tanzu.vmware.com/content/webinars/feb-1-whats-
new-in-spring-boot-2-6
– SpringアドボケイトのDanさん
• https://www.youtube.com/watch?v=4L4LEnawcO8&t=195s
• https://www.youtube.com/watch?v=2c3mNINiMTk
4
おすすめ
発表の概要
• Spring Bootの開発者Philさんの動画(ウェビナー)
の中で紹介された内容をベースに変更点を紹介。
動画を見ながら個人的に気になったことを余談で紹
介
• Philさんの動画
– https://tanzu.vmware.com/content/webinars/feb-1-
whats-new-in-spring-boot-2-6
5
紹介する変更点
• 旧バージョンから変わったこと
– 循環参照がデフォルト禁止
– Spring MVCのパスマッチングの実装が変わった
– 「info.xxx」プロパティがデフォルト無効
– recordクラスの@ConstructorBindingが不要
• 新しく追加された機能
– SameSiteクッキーの設定が可能
– Actuatorで秘密情報をサニタイズするIFが追加された
– @AutoConfigureMockMvcでWebTestClientが利用可
能
– infoエンドポイントでJava実行環境の情報を取得可能
– 起動時間のメトリクスが取得可能 6
旧バージョンから変わったこと
• 循環参照がデフォルト禁止
• Spring MVCのパスマッチングの実装が変わった
• 「info.xxx」プロパティがデフォルト無効
• recordクラスの@ConstructorBindingが不要
7
循環参照がデフォルト禁止
• 循環参照とは?
– オブジェクト同士が循環して参照すること
• プログラム修正時の影響範囲が特定しにくいため、
一般的に「よろしくない」とされる
8
A B
A B
C
2.5までの挙動
• フィールドインジェクション、セッターインジェクションであれば
、Bean間で循環参照が可能
• コンストラクタインジェクションは循環参照が不可(例外が発
生する)
– Aをnewするには事前にBが必要だが、Bをnewするためには事前に
Aが必要、という不可能な状態になるため
9
A B
Spring
③インジェクション ④インジェクション
①new ②new
A B
Spring ②new&インジェクション
①new&インジェクション
2.6の挙動
• フィールドインジェクション、セッターインジェクションもデフォ
ルトで循環参照が不可
– ただし、設定で可能にすることができる
• 「spring.main.allow-circular-references=true」
• コンストラクタインジェクションもこれまでどおり不可
– 「spring.main.allow-circular-references=true」も効かない
10
A B
Spring
③インジェクション ④インジェクション
①new ②new
A B
Spring ②new&インジェクション
①new&インジェクション
余談:コンストラクタインジェクションが奨励の訳
• ただし、理由は記載されていない
• 一般的と思われる見解
– うっかり循環参照になるのを防ぐ(今回の変更でアドバン
テージが無くなった)
– 変更不可にできる(フィールドにfinalが付けれる)
11
出典:https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
余談のつづき:動画の中のコメント
• コンストラクタが呼び出された時点で依存オブジェクトが全て
揃うので、初期処理のときに@PostConstruct等を使わなく
てもいいのでクリーン(土岐訳)
12
@Service
public class FooService {
@Autowired
private FooDao fooDao;
public FooService() {
}
@PostConstruct
public void init() {
fooDao.doSomething();
}
・・・
@Service
public class FooService {
private final FooDao fooDao;
public FooService(FooDao fooDao) {
this.fooDao = fooDao;
init();
}
public void init() {
fooDao.doSomething();
}
・・・
旧バージョンから変わったこと
• 循環参照がデフォルト禁止
• Spring MVCのパスマッチングの実装が変わった
• 「info.xxx」プロパティがデフォルト無効
• recordクラスの@ConstructorBindingが不要
13
Spring MVCのパスマッチングの実装が変わった
• パスマッチングがでてくる箇所
– Spring MVC
• @GetMapping("/foo"), @PostMapping("/foo"), ...
– Spring Security
• mvcMatchers("/foo")
• AntPathMatcherから、PathPatternParserに変わっ
た
– 基本的には性能改善が目的の様子
– 使い方はほぼ同じだが、違いもある
– 設定で元に戻すことも可能
• 「spring.mvc.pathmatch.matching-strategy=ant-
path-matcher」
14
AntPathMatcherとPathPatternParserの違い
• パスの途中の「**」が利用不可に(起動時にエラー)
• 同じ名前のパス変数が不可に(起動時にエラー)
15
@GetMapping("/foo/**/bar")
public String foobar() {
return "Foo Bar!";
}
@GetMapping("/hello/{name}/{name}")
public String hello(@PathVariable String name) {
return "Hello " + name;
}
旧バージョンだと、2つ目の{name}の値が
引数のnameに入る
Spring Securityでの注意点
• 先頭の「/」を厳密にマッチさせるようになった
• 「/admin/secret」にアクセスがあった場合、has
Authority("ADMIN")の権限チェックが行われない
– その下のpermitAll()になってしまう
• 権限チェックが行われるようにするには、「
.mvcMatchers("/admin/secret")」にする必要がある
16
@Override
protected void configure(HttpSecurity http) throws Exception {
http.authorizeHttpRequests()
.mvcMatchers("admin/secret").hasAuthority("ADMIN")
.anyRequest().permitAll();
}
旧バージョンから変わったこと
• 循環参照がデフォルト禁止
• Spring MVCのパスマッチングの実装が変わった
• 「info.xxx」プロパティがデフォルト無効
• recordクラスの@ConstructorBindingが不要
17
「info.xxx」プロパティがデフォルト無効
• 「info.xxx」プロパティとは?
– 「info.xxx=yyy」指定すると、Actuatorのinfoエンドポイント
で「xxx: "yyy"」が取得できる
– セキュリティ的な理由でデフォルトが無効となった様子
• この機能を知らずにうっかりActuatorで公開してしまう
など
– 有効にするには以下を設定
• management.info.env.enabled=true
18
info.aaa=11111
info.bbb=22222
application.properties
{"aaa":"111111111",
"bbb":"222222222"}
/actuator/info
余談:infoエンドポイントで動的な値を取得する
• InfoContributorを実装してBeanに登録するだけ
19
@Component
public class FooInfoContributor implements InfoContributor {
@Override
public void contribute(Builder builder) {
builder.withDetail("foo", LocalDateTime.now());
}
}
{"foo":"2022-03-20T10:10:08.3491234"}
/actuator/info
旧バージョンから変わったこと
• 循環参照がデフォルト禁止
• Spring MVCのパスマッチングの実装が変わった
• 「info.xxx」プロパティがデフォルト無効
• recordクラスの@ConstructorBindingが不要
20
recordクラスの@ConstructorBindingが不要
• recordクラスとは?
– Java 16から追加された言語仕様
– コンストラクタ、Getter、toString、equals、hashCodeが
自動生成される
21
public record FooProps(String abc, String def) {
}
FooRecord fooProps = new FooProps("xxx", "yyy");
System.out.println(fooProps.abc() + ":" + fooProps.def());
// 「xxx : yyy」が出力される
public record FooProps(String abc, String def) {
public String concat() {
return this.abc + this.def;
}
}
メソッドも作れる。
※フィールドはfinalなので変
更不可
コンストラクタやGetterが
自動生成されている
recordクラスの@ConstructorBindingが不要
• @ConfigurationPropertiesでrecordクラスにプロパ
ティを格納する際@ConstructorBindingが不要
– ※ただし、コンストラクタを複数定義した場合は必要
22
@ConfigurationProperties(prefix = "foo")
@ConstructorBinding
public record FooProps(String abc, String def) {
}
@ConfigurationProperties(prefix = "foo")
public record FooProps(String abc, String def) {
}
recordではない通常のクラスの場合は
@ConstructorBindingが必要
(理由は不明)
foo.abc=xxx
foo.def=yyy
不要になった
余談:recordクラスのアクセサーのJavadoc
• Javadocを簡単に記述する方法が無さそうなのが残
念
– アクセサーをオーバーライドしてJavadocを書かないとい
けない様子
23
public record FooProps(String abc, String def) {
/**
* ABCを返す
* @return
*/
public String abc() {
return this.abc;
}
}
これは避けたい
新しく追加された機能
• SameSiteクッキーの設定が可能
• Actuatorで秘密情報をサニタイズするIFが追加され
た
• @AutoConfigureMockMvcでWebTestClientが利
用可能
• infoエンドポイントでJava実行環境の情報を取得可
能
• 起動時間のメトリクスが取得可能
24
SameSiteクッキーの設定が可能
• SameSiteクッキーとは?
– 外部のサイトの画面からアクセスされた際、送信を制限
するクッキーの属性
25
外部のサイト
<html>
<img src="www.me.com/foo">
</html>
www.other.com www.me.com
自分のサイト
www.me.comのクッキー(セッションIDな
ど)を送信するか?
ネットワーク負荷や、CSRFのリスクを加
味すると、不要であれば送信しない方が
よい
ブラウザ
SameSiteの属性値の種類
• Strict
– 送信しない
• None
– 送信する
• Lax
– リンクなどユーザのアクションでアクセスされたときだけ送
信する
26
<html>
<img src="www.me.com/foo">
<a href=" www.me.com/foo">リンク</a>
</html>
リンクで辿った場合は送信
www.other.comの画面
こっちは送
信しない
Spring Bootで設定可能
• セッションIDの場合
– server.servlet.session.cookie.same-site=lax
• それ以外の場合
– 新しく追加されたCookieSameSiteSupplierを使用する
27
@Bean
public CookieSameSiteSupplier cookieSameSiteSupplier() {
return CookieSameSiteSupplier.ofLax()
.whenHasNameMatching("myapp.*");
}
@GetMapping("/cookie")
public String foo(HttpServletResponse res) {
res.addCookie(new Cookie("myapp_abc", "pppppppp"));
return "foo";
}
Java標準だとSameSiteを
設定するメソッドが無い
Spring Bootが上手いこと
設定してくれる
Set-Cookie: JSESSIONID=xxx; Path=/; HttpOnly; SameSite=Lax
新しく追加された機能
• SameSiteクッキーの設定が可能
• Actuatorで秘密情報をサニタイズするIFが追加さ
れた
• @AutoConfigureMockMvcでWebTestClientが利
用可能
• infoエンドポイントでJava実行環境の情報を取得可
能
• 起動時間のメトリクスが取得可能
28
Actuatorのサニタイズ
• Actuatorには、envエンドポイントとconfigpropsエン
ドポイントで、秘密と思われるプロパティの値をサニ
タイズしてくれる
29
/actuator/env
some.secret=secret123
some.key=key123
some.maskme.value=hideme123
management.endpoint.env.additional-keys-to-sanitize=.*hideme.*
application.properties
Actuatorのサニタイズに対する要望
• プロパティの取得元(PropertySource)毎にマスクし
たいという要望があった
– https://github.com/spring-projects/spring-
boot/issues/6587
30
秘密A=secretA
秘密B=secretB
秘密C=secretC
secret.properties
/actuator/env
情報A: aaa
情報B: bbb
情報C: ccc
秘密A: ******
秘密B: ******
秘密C: ******
情報A=aaa
情報B=bbb
情報C=ccc
nosecret.properties
プロパティ名を問わず全
てサニタイズしたい
SanitizingFunctionインタフェース
• SanitizingFunctionインタフェースが追加された
– プロパティの取得元(PropertySource)に対してマスクす
ることが可能
31
@Bean
public SanitizingFunction sanitizingFunction() {
return new SanitizingFunction() {
@Override
public SanitizableData apply(SanitizableData data) {
if (data.getPropertySource().getName().contains("secret.properties")) {
return data.withValue("******");
} else {
return data;
}
}
};
}
秘密情報を保持した取得元のプロパティを
すべてマスクできる
新しく追加された機能
• SameSiteクッキーの設定が可能
• Actuatorで秘密情報をサニタイズするIFが追加され
た
• @AutoConfigureMockMvcでWebTestClientが
利用可能
• infoエンドポイントでJava実行環境の情報を取得可
能
• 起動時間のメトリクスが取得可能
32
@AutoConfigureMockMvcでWebTestClientが利用可能に
• これまでのWebのテスト
33
@WebMvcTest(controllers = FooController.class)
public class FooControllerTest {
@Autowired
private MockMvc mockMvc;
@Test
public void foo() throws Exception {
mockMvc.perform(get("/foo"))
.andExpect(status().isOk());
}
}
@SpringBootTest(webEnvironment =
WebEnvironment.RANDOM_PORT)
public class FooIntegrationTest {
@Autowired
private TestRestTemplate restTemplate;
@Test
public void foo() {
ResponseEntity<String> entity =
restTemplate.getForEntity("/foo", String.class);
assertThat(entity.getStatusCode())
.isEqualTo(HttpStatus.OK);
}
}
テストメソッドの書き方が
変わってしまう(開発者の
学習コストが増える)
【Controllerの単体テスト】
【APサーバ起動した結合テスト】
@AutoConfigureMockMvcでWebTestClientが利用可能に
34
@WebMvcTest(controllers = FooController.class)
public class FooControllerTest {
@Autowired
private WebTestClient client;
@Test
public void foo() {
client.get().uri("/foo").exchange()
.expectStatus().isOk();
}
}
@SpringBootTest(webEnvironment =
WebEnvironment.RANDOM_PORT)
public class FooIntegrationTest {
@Autowired
private WebTestClient client;
@Test
public void foo() {
client.get().uri("/foo").exchange()
.expectStatus().isOk();
}
}
@WebMvcTestの中の
@AutoConfigureMockMvcによって
WebTestClientがコンフィグレーションされる
テストメソッドを同じ書
き方で記述できる(開発
者の学習コストが減る)
• 可能になった書き方
【注意】裏でWebClientが使うため
「spring-boot-starter-webflux」の依存が必要
【Controllerの単体テスト】
【APサーバ起動した結合テスト】
新しく追加された機能
• SameSiteクッキーの設定が可能
• Actuatorで秘密情報をサニタイズするIFが追加され
た
• @AutoConfigureMockMvcでWebTestClientが利
用可能
• infoエンドポイントでJava実行環境の情報を取得可
能
• 起動時間のメトリクスが取得可能
35
infoエンドポイントでJava実行環境の情報を取得可能に
• management.info.java.enabled=true
36
余談:FireFoxから移植された
クロームのアドオン
「JSON Viewer」を使用した画
面。値が縦に揃って見やすい
新しく追加された機能
• SameSiteクッキーの設定が可能
• Actuatorで秘密情報をサニタイズするIFが追加され
た
• @AutoConfigureMockMvcでWebTestClientが利
用可能
• infoエンドポイントでJava実行環境の情報を取得可
能
• 起動時間のメトリクスが取得可能
37
起動時間のメトリクスが取得可能に
• Actuatorの「/actuator/metrics」エンドポイントで以
下のメトリクスが利用可能になった
– application.started.time
• DIコンテナが起動した後、ApplicationRunner・
CommandLineRunnerを実行する「前」までの時間
– application.ready.time
• アプリケーションが利用可能になるまでの時間
38
余談:動画を見ていて思ったこ
と
39
余談:Spring initializrの「EXPLORE」の活用
• 例えば「h2のライブラリを追加したいけど、アーティファクトID
ってなんだっけ?」というときに便利(ネットで検索するより楽)
40
https://start.spring.io
該当箇所をコピペ
余談:spring.config.importが便利そう
• spring.config.importとは?
– 別の場所で設定されたプロパティをインポートできるプロ
パティ(バージョン2.4からの機能)
• 「optional:」でオプション扱い、「file:」でファイルシス
テムから読み込める(「file:」を指定しなければクラス
パスから読み込む)
41
spring.config.import=foo.properties some.prop=abc
application.properties foo.properties
spring.config.import=optional:file:foo.properties
余談:spring.config.importが便利そう
• 利用のアイデア
– 実行環境に用意した秘密情報のプロパティファイルを読
込んでデフォルトを上書き
– 開発者がローカルで自由に記述できるプロパティファイル
を読込む
42
some.secret.aaa=for_local
some.secret.bbb=for_local
some.secret.ccc=for_local
spring.config.import=optional:file:secret.properties
spring.config.import=optional:developer.properties
application.properties
some.prop=・・・
ローカルのdeveloper.properties
.gitignoreなどでSCMに登
録しないようにする
some.secret.aaa=aaa123
some.secret.bbb=bbb123
some.secret.ccc=ccc123
本番環境のsecret.properties
application.properties
余談:utilパッケージのXxxUtilsクラスが便利そう
• StringUtilsクラス
– capitalizeメソッド
• 文字列の先頭を大文字にする
– uncapitalizeメソッド
• 文字列の先頭を小文字にする
• ReflectionUtilsクラス
– findMethodメソッド
• 指定したClassとメソッド名でMethodオブジェクトを返
す。親クラスも辿ってくれる
43
余談:XxxUtilsクラスはabstractになってる
44
• インスタンス化を防ぐためと思われる
45
ご清聴ありがとうございました
46
ライセンスについて
• JSUGマスコットアイコン(本スライド左下)が残されている場合に限り、本作品(またそれを元にした派生
作品)の複製・頒布・表示・上演を認めます。
• 非商用目的に限り、本作品(またそれを元にした派生作品)の複製・頒布・表示・上演を認めます。
• 本作品のライセンスを遵守する限り、派生作品を頒布することを許可します。

More Related Content

What's hot

Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugMasatoshi Tada
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話Koichiro Matsuoka
 
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き土岐 孝平
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションMasahiko Sawada
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)NTT DATA Technology & Innovation
 
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のことSpring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと心 谷本
 
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 Hiroshi Ito
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)NTT DATA Technology & Innovation
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!NTT DATA Technology & Innovation
 
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計Kouji YAMADA
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...NTT DATA Technology & Innovation
 
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーションこれから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション土岐 孝平
 
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装Masatoshi Tada
 
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugSpring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugMasatoshi Tada
 

What's hot (20)

Java ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsugJava ORマッパー選定のポイント #jsug
Java ORマッパー選定のポイント #jsug
 
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話DDD x CQRS   更新系と参照系で異なるORMを併用して上手くいった話
DDD x CQRS 更新系と参照系で異なるORMを併用して上手くいった話
 
入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き入社1年目のプログラミング初心者がSpringを学ぶための手引き
入社1年目のプログラミング初心者がSpringを学ぶための手引き
 
アーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーションアーキテクチャから理解するPostgreSQLのレプリケーション
アーキテクチャから理解するPostgreSQLのレプリケーション
 
KeycloakでAPI認可に入門する
KeycloakでAPI認可に入門するKeycloakでAPI認可に入門する
KeycloakでAPI認可に入門する
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_cccSpring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
Spring Boot on Kubernetes : Yahoo!ズバトク事例 #jjug_ccc
 
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
kubernetes初心者がKnative Lambda Runtime触ってみた(Kubernetes Novice Tokyo #13 発表資料)
 
Mavenの真実とウソ
Mavenの真実とウソMavenの真実とウソ
Mavenの真実とウソ
 
Docker Compose 徹底解説
Docker Compose 徹底解説Docker Compose 徹底解説
Docker Compose 徹底解説
 
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のことSpring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
 
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3 データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
データ履歴管理のためのテンポラルデータモデルとReladomoの紹介 #jjug_ccc #ccc_g3
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
乗っ取れコンテナ!!開発者から見たコンテナセキュリティの考え方(CloudNative Days Tokyo 2021 発表資料)
 
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!祝!PostgreSQLレプリケーション10周年!徹底紹介!!
祝!PostgreSQLレプリケーション10周年!徹底紹介!!
 
クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計クラウド環境下におけるAPIリトライ設計
クラウド環境下におけるAPIリトライ設計
 
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
9/14にリリースされたばかりの新LTS版Java 17、ここ3年間のJavaの変化を知ろう!(Open Source Conference 2021 O...
 
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーションこれから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
 
基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装基礎からのOAuth 2.0とSpring Security 5.1による実装
基礎からのOAuth 2.0とSpring Security 5.1による実装
 
Spring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjugSpring Bootの本当の理解ポイント #jjug
Spring Bootの本当の理解ポイント #jjug
 

Similar to What's new in Spring Boot 2.6 ?

EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016Chihiro Adachi
 
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)Tetsu Yama
 
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法についてDart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法についてKosuke Saigusa
 
Roslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドインRoslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドインFujio Kojima
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能kimulla
 
Xamarinでも有能な .NET Core
 Xamarinでも有能な .NET Core  Xamarinでも有能な .NET Core
Xamarinでも有能な .NET Core Yuta Matsumura
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerlcharsbar
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure FunctionsKeiji Kamebuchi
 
Python32 pyhackathon-201011
Python32 pyhackathon-201011Python32 pyhackathon-201011
Python32 pyhackathon-201011Toru Furukawa
 
はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-
はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-
はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-Seiji KOMATSU
 
バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-hakoika-itwg
 
Swift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposiumSwift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposiumTomohiro Kumagai
 
Play2の裏側
Play2の裏側Play2の裏側
Play2の裏側masahitojp
 
OpenGLプログラミング
OpenGLプログラミングOpenGLプログラミング
OpenGLプログラミング幸雄 村上
 
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)信之 岩永
 
ES6,7で書ける JavaScript
ES6,7で書ける JavaScriptES6,7で書ける JavaScript
ES6,7で書ける JavaScriptShin Sekaryo
 

Similar to What's new in Spring Boot 2.6 ? (20)

EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016EC-CUBEユーザカンファレンス2016
EC-CUBEユーザカンファレンス2016
 
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)Powershell勉強会 v4 (もっと新しいバージョンがあります。)
Powershell勉強会 v4 (もっと新しいバージョンがあります。)
 
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法についてDart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
Dart のコード自動生成の仕組みと、コード自動生成のパッケージを自作する方法について
 
Roslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドインRoslyn による Visual Studio のアドイン
Roslyn による Visual Studio のアドイン
 
Keep a diary
Keep a diaryKeep a diary
Keep a diary
 
Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能Spring Framework ふりかえりと4.3新機能
Spring Framework ふりかえりと4.3新機能
 
Xamarinでも有能な .NET Core
 Xamarinでも有能な .NET Core  Xamarinでも有能な .NET Core
Xamarinでも有能な .NET Core
 
2017年春のPerl
2017年春のPerl2017年春のPerl
2017年春のPerl
 
ゆるふわAzure Functions
ゆるふわAzure FunctionsゆるふわAzure Functions
ゆるふわAzure Functions
 
ES6 in Practice
ES6 in PracticeES6 in Practice
ES6 in Practice
 
Python32 pyhackathon-201011
Python32 pyhackathon-201011Python32 pyhackathon-201011
Python32 pyhackathon-201011
 
Modulemaking
ModulemakingModulemaking
Modulemaking
 
はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-
はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-
はこだてIKA夜間勉強会 バージョン管理#01 -Subversion編-
 
バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-バージョン管理#01 -Subversion編-
バージョン管理#01 -Subversion編-
 
Swift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposiumSwift 2.0 大域関数の行方から #swift2symposium
Swift 2.0 大域関数の行方から #swift2symposium
 
Play2の裏側
Play2の裏側Play2の裏側
Play2の裏側
 
OpenGLプログラミング
OpenGLプログラミングOpenGLプログラミング
OpenGLプログラミング
 
How to run P4 BMv2
How to run P4 BMv2How to run P4 BMv2
How to run P4 BMv2
 
C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)C# 8.0 Preview in Visual Studio 2019 (16.0)
C# 8.0 Preview in Visual Studio 2019 (16.0)
 
ES6,7で書ける JavaScript
ES6,7で書ける JavaScriptES6,7で書ける JavaScript
ES6,7で書ける JavaScript
 

More from 土岐 孝平

SpringベースのCloud Native Application
SpringベースのCloud Native ApplicationSpringベースのCloud Native Application
SpringベースのCloud Native Application土岐 孝平
 
Spring fest2020 spring-security
Spring fest2020 spring-securitySpring fest2020 spring-security
Spring fest2020 spring-security土岐 孝平
 
Microserviceの今どきのインフラを探る
Microserviceの今どきのインフラを探るMicroserviceの今どきのインフラを探る
Microserviceの今どきのインフラを探る土岐 孝平
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門土岐 孝平
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring土岐 孝平
 
Springを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしようSpringを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう土岐 孝平
 
業務システムとマイクロサービス
業務システムとマイクロサービス業務システムとマイクロサービス
業務システムとマイクロサービス土岐 孝平
 
エッセンシャルCore springハンズオン
エッセンシャルCore springハンズオンエッセンシャルCore springハンズオン
エッセンシャルCore springハンズオン土岐 孝平
 
試験にでるSpring
試験にでるSpring試験にでるSpring
試験にでるSpring土岐 孝平
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理土岐 孝平
 

More from 土岐 孝平 (11)

SpringベースのCloud Native Application
SpringベースのCloud Native ApplicationSpringベースのCloud Native Application
SpringベースのCloud Native Application
 
Spring fest2020 spring-security
Spring fest2020 spring-securitySpring fest2020 spring-security
Spring fest2020 spring-security
 
Microserviceの今どきのインフラを探る
Microserviceの今どきのインフラを探るMicroserviceの今どきのインフラを探る
Microserviceの今どきのインフラを探る
 
OpenID Connect入門
OpenID Connect入門OpenID Connect入門
OpenID Connect入門
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring
 
Springを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしようSpringを使ったwebアプリにリファクタリングしよう
Springを使ったwebアプリにリファクタリングしよう
 
業務システムとマイクロサービス
業務システムとマイクロサービス業務システムとマイクロサービス
業務システムとマイクロサービス
 
エッセンシャルCore springハンズオン
エッセンシャルCore springハンズオンエッセンシャルCore springハンズオン
エッセンシャルCore springハンズオン
 
試験にでるSpring
試験にでるSpring試験にでるSpring
試験にでるSpring
 
Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理Spring3.1概要 データアクセスとトランザクション処理
Spring3.1概要 データアクセスとトランザクション処理
 
vFabricを触ろう
vFabricを触ろうvFabricを触ろう
vFabricを触ろう
 

What's new in Spring Boot 2.6 ?