SlideShare una empresa de Scribd logo
1 de 63
Descargar para leer sin conexión
(C) CASAREAL, Inc. All rights reserved.
Pivotal認定講師が解説!
初めてでも30分で分かる
Spring 5 & Spring Boot 2
オーバービュー
(株)カサレアル 多⽥真敏
2018年6⽉28⽇
1
(C) CASAREAL, Inc. All rights reserved.
このセッションについて
▸ Spring 5・Spring Boot 2とはどんなものか、

基礎から分かりやすく解説します
▸ 【初級者向け】ある程度Javaの経験があり、

Springは初めての⽅が対象です
2
(C) CASAREAL, Inc. All rights reserved.
⾃⼰紹介
▸ 多⽥真敏(@suke_masa)
▸ 研修トレーナー@カサレアル
▸ Spring / Java EE / Microservices

/ Cloud Foundry
▸ Pivotal認定講師
▸ ⽇本Springユーザ会スタッフ
▸ ⽇本GlassFishユーザー会運営メンバー
3
(C) CASAREAL, Inc. All rights reserved.
Thymeleaf 3のドキュメントを(ちょっと)和訳しました!
4
https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf_ja.html
(C) CASAREAL, Inc. All rights reserved.
株式会社カサレアル
▸ 他社には無い⾊々なプログラミング⾔語の研修
を提供しています!
5
(C) CASAREAL, Inc. All rights reserved.
世界⼀ハイレベルなSpring研修
▸ Pivotal認定 Core Spring (4⽇間)
▸ DI、AOP、Test、JDBC、Tx、Data、Boot、Web、
Security、REST、Microservices、Reactive
▸ ロジカルな講義+演習で徹底理解
▸ アーキテクトやリーダー向け
▸ もちろんSpring 5に対応!
6
https://www.casareal.co.jp/ls/service/openseminar/pivotal/p016
(C) CASAREAL, Inc. All rights reserved.
エントリー向けSpring研修
▸ はじめてのSpring MVCによる

Webアプリケーション開発 (2⽇間)
▸ Web、Thymeleaf、Bean Validation、例外処理、

JDBC、REST、Boot(、付録でMyBatis)
▸ 初⼼者〜チームメンバー向け
▸ もちろんSpring 5に対応!
7
https://www.casareal.co.jp/ls/service/openseminar/java/j040
(C) CASAREAL, Inc. All rights reserved.
Spring Securityを完全マスター
▸ Spring Security⼊⾨ (1⽇間)
▸ Spring Security 5の基礎から

OAuth 2.0までを演習中⼼で学習
▸ 複雑と⾔われるSpring Securityの

アーキテクチャーも完全解説!
▸ チームメンバー〜アーキテクトまで

幅広いレベルに対応!
8
https://www.casareal.co.jp/ls/service/openseminar/java/j120
(C) CASAREAL, Inc. All rights reserved.
⽬次
9
1. Core
3. Web
2. Data
4. Security
5. Test
6. Boot
(C) CASAREAL, Inc. All rights reserved.
⽬次
10
1. Core
3. Web
2. Data
4. Security
5. Test
6. Boot
(C) CASAREAL, Inc. All rights reserved.
Springとは
▸ いろんなフレームワークの集合体
▸ DI/AOP、Web、Data、Security、Test、Boot、
Cloud、・・・
▸ 現在はPivotal社が中⼼となりオープンソースで開発
▸ 元々はRod Johnson⽒が開発したもの
▸ 最新はSpring 5(2017年9⽉リリース)
11
(C) CASAREAL, Inc. All rights reserved.
Spring 5はJDK 8ベース
▸ JDK 8の機能が、Spring 5内部でも公開APIでも
使われている
▸ Date and Time API、ラムダ式、Stream API、

Optional、インタフェースのデフォルトメソッド、

メソッド引数名による解決、など
▸ JDK 7未満では動かない!!!😖
12
(C) CASAREAL, Inc. All rights reserved.
JDK 9/10対応
▸ Spring 5はJDK 9/10上でも動作保証済み!
▸ JDK 9のモジュールシステムにも対応👏
▸ JDK 11上でも動く予定
▸ JDK 11は2018年9⽉リリース予定

(LTS : Long Term Support)
13
(C) CASAREAL, Inc. All rights reserved.
Springの根幹「DI」
▸ Dependency Injection(依存性の注⼊)
▸ 必要なインスタンス(=依存性)を外から代⼊すること
▸ テスト時のインスタンスの差し替えなどが可能になる
14
objA
objB
objA
objB代⼊
new
⭕❌
(C) CASAREAL, Inc. All rights reserved.
DIコンテナ
▸ Springが内部で持ってい
るインスタンス(Bean)
の格納庫
▸ すべてのBeanはDI済み
になっている※
▸ 必要に応じて取り出し可
能
15
DIコンテナ
BeanBean Bean
Bean Bean Bean
Bean Bean
DI DI
DIDI
DI
D
I
※デフォルトでは起動時に全てのBeanがインスタンス化&DIされる
(C) CASAREAL, Inc. All rights reserved.
Beanを定義する⽅法①
▸ コンポーネントスキャン
▸ クラスに@Componentを
付加
▸ Java Configクラスに上記
クラスのパッケージ名を
指定
16
package com.service;
@Component
public class HelloService {
// omitted…
}
@Configuration
@ComponentScan(basePackages
= "com.service")
public class ServiceConfig {
// omitted…
}
(C) CASAREAL, Inc. All rights reserved.
正体が@Componentなアノテーション
▸ @Controller
▸ @RestController
▸ @Service
▸ @Repository
▸ @Configuration

・・・他にもいろいろ
▸ これらは「ステレオタイプアノテーション」と呼ばれる
17
(C) CASAREAL, Inc. All rights reserved.
Beanを定義する⽅法②
▸ Java Configにメソッ
ドを作成し@Beanを
付加
▸ 戻り値がBeanにな
る
▸ メソッド引数で他の
Beanを受け取れる
▸ ①と②は併⽤可能
18
@Configuration
public class DataSourceConfig {
@Bean
public DataSource dataSource() {
return new HogeDataSource();
}
@Bean
public JdbcTemplate jdbcTemplate(
DataSource ds) {
return new JdbcTemplate(ds);
}
}
(C) CASAREAL, Inc. All rights reserved.
DI
▸ @Autowiredで他のBeanを外から代⼊できる
▸ コンストラクタが1つのみの場合は省略可能
19
@Controller
public class HelloController {
private final HelloService service;
@Autowired // 省略可能
public HelloController(HelloService svc) {
this.service = svc;
}
// omitted...
}
@Service
public class HelloService {
// omitted...
}
(C) CASAREAL, Inc. All rights reserved.
Webアプリケーションの3層アーキテクチャー
20
View
Controller Service Repository
DB
プレゼンテーション層
ビジネス

ロジック層
永続化層
リクエスト
レス

ポンス
(C) CASAREAL, Inc. All rights reserved.
3層アーキテクチャーとDI
21
Controller Service RepositoryDIDI
(C) CASAREAL, Inc. All rights reserved.
⽬次
22
1. Core
3. Web
2. Data
4. Security
5. Test
6. Boot
(C) CASAREAL, Inc. All rights reserved.
Springのデータアクセス技術
▸ Spring JDBC
▸ JDBCの単純なラッパー
▸ Spring Data
▸ 様々なデータアクセスを共通化(JPA、Redis、MongoDB等)
▸ その他、各種ORマッパーがSpring連携機能を提供
▸ MyBatis、DBFlute等
23
(C) CASAREAL, Inc. All rights reserved.
Spring Data JDBC (ベータ版)
▸ Spring JDBCを利⽤したSpring Data
▸ MyBatisも利⽤可能
24
// インタフェースを作るだけ!
public interface EmployeeRepository
extends CrudRepository<Employee, Long> {
// アノテーションにSQLを書ける
@Query("SELECT ... FROM employee WHERE hoge = :hoge")
List<Employee> findByHoge(String hoge);
// CrudRepositoryのメソッドは全て使える パラメータ名を揃える※
※コンパイル時(javac)のオプションに「-parameters」が必要
(C) CASAREAL, Inc. All rights reserved.
CrudRepositoryで定義されたメソッド
▸ 継承して作成したインタフェースではこれらのメソッ
ドが全て使える
25
▸ <S extends T> S save(S entity)
▸ <S extends T> Iterable<S> saveAll(Iterable<S> entities)
▸ Optional<T> findById(ID id)
▸ boolean existsById(ID id)
▸ Iterable<T> findAll()
▸ Iterable<T> findAllById(Iterable<ID> ids)
▸ long count()
▸ void deleteById(ID id)
▸ void delete(T entity)
▸ void deleteAll(Iterable<? extends T> entities)
▸ void deleteAll()
(C) CASAREAL, Inc. All rights reserved.
作成したインタフェースの使い⽅
▸ 実装クラスおよびそのインスタンスは、

起動時に動的に作られる
▸ インスタンスはBeanとなる

→@AutowiredでDIできる
26
(C) CASAREAL, Inc. All rights reserved.
作成したインタフェースの使い⽅
27
@Service
public class EmployeeService {
private final EmployeeRepository repo;
@Autowired // 省略可能
public EmployeeService(EmployeeRepository repo) {
this.repo = repo;
}
public Iterable<Employee> findAll() {
// CrudRepositoryのメソッドを使える
Iterable<Employee> employees = repo.findAll();
return employees;
}
}
(C) CASAREAL, Inc. All rights reserved.
必要なBean定義
28
@ComponentScan(basePackages =
"com.example.persistence.repository.impl")
@EnableJdbcRepositories(basePackages =
"com.example.persistence.repository")
@Configuration
public class JdbcConfig {
@Bean
public NamedParameterJdbcTemplate
namedParameterJdbcTemplate(...) { ... }
@Bean
public DataAccessStrategy dataAccessStrategy(...) { ...}
@Bean
public NamingStrategy namingStrategy() { ... }
}
(C) CASAREAL, Inc. All rights reserved.
⽬次
29
1. Core
3. Web
2. Data
4. Security
5. Test
6. Boot
(C) CASAREAL, Inc. All rights reserved.
Spring MVCとは
▸ Webアプリケーションフレームワーク
▸ 中にDIコンテナを持っていて、

必要なインスタンスを取り出して

フレームワーク全体を動かしている
30
(C) CASAREAL, Inc. All rights reserved.
Spring MVCのアーキテクチャー
31
Dispatcher

Servlet
View

Resolver

(Bean)
Controller

(Bean)
①リクエスト
②URLを⾒て

処理を委譲
③ビューのパスの

 ⼀部を返す
⑥レスポンス
④ビューのパスの⼀部⑤ビューの完全パス
…
(C) CASAREAL, Inc. All rights reserved.
DispatcherServlet
▸ すべてのリクエストを
受け取る唯⼀の

サーブレットクラス
▸ 中にDIコンテナを持っ
ていて、必要なBeanを
都度取り出して使う
32
Dispatcher

Servlet
DIコンテナ
Cont

roller
View

Resolver
その他の

Bean
(C) CASAREAL, Inc. All rights reserved.
DispatcherServletの登録
33
public class MvcInitializer extends
AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() { ... }
@Override
protected Class<?>[] getServletConfigClasses() { ... }
@Override
protected String[] getServletMappings() {
return new String[]{ "/" };
}
}
▸ AbstractAnnotationConfigDispatcherServletInitializerのサブ
クラスを作成するだけで、サーバーにDispatcherServletが登録される
※web.xmlでも登録可能
(C) CASAREAL, Inc. All rights reserved.
ViewResolver
▸ コントローラーから
返ってきたビューの
パスの⼀部を元に、
完全なパスを返す
▸ ビュー技術に合わせ
た実装クラスが⽤意
されている
34
<<interface>>

ViewResolver
Internal

Resource

View

Resolver
Free

Marker

View

Resolver
Thymeleaf

View

Resolver
(JSP⽤) (Thymeleaf⽤)
(FreeMarker⽤)
(C) CASAREAL, Inc. All rights reserved.
Thymeleaf
▸ オープンソースのテンプレートエンジン
▸ Spring・Spring Bootでよく利⽤される
▸ 値を属性で埋め込むため、ブラウザから直接開くこともできる
35
<!--/* 全社員のID・名前を表⽰する */-->
<table>
<tr th:each="emp : ${employees}" th:object="${emp}">
<td th:text="*{id}">ダミーのID</td>
<td th:text="*{name}">ダミーの名前</td>
</tr>
</table>
(C) CASAREAL, Inc. All rights reserved.
コントローラー
36
@Controller
public class EmployeeController {
private final EmployeeService service;
@Autowired // 省略可能
public EmployeeController(EmployeeService service) {
this.service = service;
}
@GetMapping("/")
public String index(Model model) {
Iterable<Employee> employees = service.findAll();
model.addAttribute("employees", employees);
return "index";
}
}
コントローラーとしてBean定義
ビジネスロジックをDI
メソッドとURLをマッピング
値をビューに渡す
ビューのパスの⼀部を返す
(C) CASAREAL, Inc. All rights reserved.
必要なBean定義
37
@ComponentScan(basePackages =
"com.example.web.controller")
@EnableWebMvc
@Configuration
public class MvcConfig ... {
...
@Bean
public ThymeleafViewResolver
viewResolver(...) {
...
}
...
}
▸ ViewResolver
をBean定義する
▸ コントローラーク
ラスをコンポーネ
ントスキャン
▸ @EnableWebMvc
を付加
(C) CASAREAL, Inc. All rights reserved.
その他の機能
▸ ⼀通りの機能が揃っている
▸ ⼊⼒検証(Bean Validation連携)
▸ 例外処理
▸ ファイルアップロード
▸ RESTful Webサービス

・・・など
38
(C) CASAREAL, Inc. All rights reserved.
⽬次
39
1. Core
3. Web
2. Data
4. Security
5. Test
6. Boot
(C) CASAREAL, Inc. All rights reserved.
Spring Securityとは
▸ 主に認証・認可の機能を提供するセキュリティ
ライブラリ
▸ 何重ものサーブレットフィルターや、

AOP(割り込み処理)を使って、

ログインや権限チェックを⾏う
40
(C) CASAREAL, Inc. All rights reserved.
web.xmlへのフィルター設定
41
<web-app>
...
<filter>
<filter-name>springSecurityFilterChain</filter-name>
<filter-class>
org.springframework.web.filter.DelegatingFilterProxy
</filter-class>
</filter>
<filter-mapping>
<filter-name>springSecurityFilterChain</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
</web-app>
これだけで⼗数個のフィルターが動く!
(C) CASAREAL, Inc. All rights reserved.
認証・認可の設定
42
@EnableWebSecurity
public class SecurityConfig
extends WebSecurityConfigurerAdaptor {
@Override
protected void configure(HttpSecurity http) ... {
http.formLogin() // ログイン画⾯の設定
.loginPage("/login")
.permitAll();
http.authorizeRequests() // URLごとの権限設定
.mvcMatchers("/admin*").hasRole("ADMIN")
.anyRequest().authenticated();
http.logout() // ログアウトの設定
.permitAll();
}
...
}
(C) CASAREAL, Inc. All rights reserved.
PasswordEncoder
▸ DB等にはパスワードをハッシュ化して保存する
▸ ⼊⼒されたパスワードは、ハッシュ化してからDBのパ
スワードと照合する
43
@EnableWebSecurity
public class SecurityConfig
extends WebSecurityConfigurerAdaptor {
...
@Bean
public PasswordEncoder passwordEncoder(){
return new BCryptPasswordEncoder();
}
}
(C) CASAREAL, Inc. All rights reserved.
thymeleaf-extras-springsecurity
▸ Thymeleafが提供している、Spring Securityと
連携するためのライブラリ
▸ 認証や権限の有無などで表⽰/⾮表⽰を切り替え
ることができる
44
<!--/* ADMINロールのみ下記のリンクを表⽰する */-->
<a th:href="@{/admin}" sec:authorize="hasRole('ADMIN')">
管理画⾯へ
</a>
(C) CASAREAL, Inc. All rights reserved.
⽬次
45
1. Core 2. Web
3. Data4. Security
5. Test
6. Boot
(C) CASAREAL, Inc. All rights reserved.
Spring Testとは
▸ JUnitやTestNGと、Springを連携させるライブ
ラリ
▸ Spring 5でJUnit 5に対応!👏
▸ その他、Spring MVCやDBを利⽤したテストの
機能も提供
46
(C) CASAREAL, Inc. All rights reserved.
JUnit 5対応
▸ SpringExtension
▸ JUnit 5上でSpringのDI機能などを使えるようにする拡
張機能
47
@ExtendWith(SpringExtension.class)
@ContextConfiguration(
classes = HelloTestConfig.class)
public class HelloTest {
@Autowired HelloService service;
// テストを書く…
}
(C) CASAREAL, Inc. All rights reserved.
テストメソッド引数でもDI可能
▸ SpringExtensionは

JUnit 5のParameterResolverを実装
48
@ExtendWith(SpringExtension.class)
@ContextConfiguration(
classes = HelloTestConfig.class)
public class HelloTest {
@Test
void test(@Autowired HelloService service) {
// テストを書く…
}
}
(C) CASAREAL, Inc. All rights reserved.
便利なアノテーション
▸ @SpringJUnitConfig
▸ @ExtendWith(SpringExtension.class) 

+ @ContextConfiguration
▸ @SpringJUnitWebConfig
▸ @ExtendWith(SpringExtension.class)

+ @ContextConfiguration

+ @WebAppConfiguration
49
(C) CASAREAL, Inc. All rights reserved.
⽬次
50
1. Core
3. Web
2. Data
4. Security
5. Test
6. Boot
(C) CASAREAL, Inc. All rights reserved.
Spring Bootとは
① Auto Configurationクラス
▸ ⼤量のJava Configがあらかじめ提供済み!
② Starterライブラリ
▸ ⼤量の依存ライブラリが1つにまとめられている!
③ 組み込みサーバー⼊りFat JAR
▸ 単独で起動できる!
51
(C) CASAREAL, Inc. All rights reserved.
①Auto Configurationクラス
52
▸ Spring Boot
によって
Java Config
が

あらかじめ
⼤量に⽤意
されている
(C) CASAREAL, Inc. All rights reserved.
②Starterライブラリ
53
▸ Starterライブラ
リを指定すれば、
芋づる式に⼤量
のライブラリが
追加される
(C) CASAREAL, Inc. All rights reserved.
③組み込みサーバー⼊りFat JAR
54
$ jar -tvf target/04-boot2-answer-0.0.1-SNAPSHOT.jar
524 Thu Jun 21 13:27:06 JST 2018 META-INF/MANIFEST.MF
2688 Wed May 09 13:32:20 JST 2018 org/springframework/boot/loader
/data/RandomAccessDataFile$DataInputStream.class
...
607 Thu Jun 21 13:27:06 JST 2018 BOOT-INF/classes/com/example/web
/controller/LoginController.class
...
1650 Thu Jun 21 13:27:06 JST 2018 BOOT-INF/classes/com/example
/Application.class
604 Wed May 09 13:41:42 JST 2018 BOOT-INF/lib
/spring-boot-starter-security-2.0.2.RELEASE.jar
...
425493 Tue May 08 15:24:16 JST 2018 BOOT-INF/lib
/spring-security-core-5.0.5.RELEASE.jar
3115994 Fri Apr 27 21:24:52 JST 2018 BOOT-INF/lib
/tomcat-embed-core-8.5.31.jar
240244 Fri Apr 27 21:24:54 JST 2018 BOOT-INF/lib
/tomcat-embed-el-8.5.31.jar
256776 Fri Apr 27 21:24:54 JST 2018 BOOT-INF/lib
/tomcat-embed-websocket-8.5.31.jar
▸ ビルド成果物のJARに、作成したクラスやライブラリ、組み
込みサーバーなどが全て含まれている
(C) CASAREAL, Inc. All rights reserved.
つまり・・・
▸ 開発のセットアップが簡単にできる!😆
▸ Java Configの作成がほぼ不要に
▸ 追加するライブラリが少なくて済む
▸ 簡単に起動・デプロイできる!😆
▸ サーバーの設定の必要無し
▸ 特にクラウド向き
55
(C) CASAREAL, Inc. All rights reserved.
よくある勘違い🙅
▸ 開発を⾼速化できる❌
▸ Java Configはほぼ不要になるが、

機能開発する部分は⼀切変わらない
▸ Spring⾃体の知識は無くても良い❌
▸ 機能開発には変わらずSpringを利⽤する
▸ 設定は何も書かなくて良い❌
▸ Auto Configurationクラスが無いものは変わらず必要
56
(C) CASAREAL, Inc. All rights reserved.
main()メソッドからの起動
▸ あらかじめ⽤意された⼤量のJava Configを読み
込む
▸ 組み込みサーバーを起動する
57
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(
Application.class, args);
}
}
(C) CASAREAL, Inc. All rights reserved.
@SpringBootApplication
▸ 下記3つのアノテーションを組み合わせたもの
▸ @Configuration
▸ @CompomentScan
▸ @EnableAutoConfiguration
58
Auto Configurationを有効化する
(C) CASAREAL, Inc. All rights reserved.
おすすめスライド資料
▸ ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
▸ https://www.slideshare.net/masatoshitada7/reactivespring-5-spring-boot-2
▸ Spring Bootの本当の理解ポイント
▸ https://www.slideshare.net/masatoshitada7/spring-boot-jjug
▸ Spring Boot Actuator 2.0 & Micrometer
▸ https://www.slideshare.net/makingx/spring-boot-actuator-20-micrometer
▸ Introduction to Spring WebFlux
▸ https://www.slideshare.net/makingx/introduction-to-spring-webflux-jsug-
sfa1
59
(C) CASAREAL, Inc. All rights reserved.
おすすめ書籍
▸ 改訂新版Spring⼊⾨(技術評論社)
▸ アーキテクチャーの概要を理解する
▸ Spring徹底⼊⾨(翔泳社)
▸ リファレンスとして
60
(C) CASAREAL, Inc. All rights reserved.
頼りになるリファレンス
▸ Terasoluna Development Guideline (⽇本語)
▸ http://terasolunaorg.github.io/guideline/5.4.1.RELEASE/ja/
▸ Spring Framework Reference (英語)
▸ https://docs.spring.io/spring/docs/current/spring-framework-reference/
▸ Spring Security Reference (英語)
▸ https://docs.spring.io/spring-security/site/docs/current/reference/
htmlsingle/
▸ Spring Boot Reference (英語)
▸ https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/
61
(C) CASAREAL, Inc. All rights reserved.
次回の研修⽇程
▸ Pivotal認定Core Spring(4⽇間)
▸ ①7⽉5⽇〜(締切)、②9⽉10⽇〜
▸ はじめてのSpring MVCによるWebアプリケーション開発
(2⽇間)
▸ ①8⽉2⽇〜、②9⽉5⽇〜
▸ Spring Security⼊⾨(1⽇間)
▸ ①7⽉31⽇、②9⽉20⽇
62https://www.casareal.co.jp/ls/service/openseminar/top/index.html
(C) CASAREAL, Inc. All rights reserved.
Enjoy Spring 5 & Boot 2!!
▸ ご清聴ありがとうございました!
63

Más contenido relacionado

La actualidad más candente

Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント土岐 孝平
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと土岐 孝平
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Taku Miyakawa
 
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のことSpring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと心 谷本
 
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説Masatoshi Tada
 
基礎からの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
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところY Watanabe
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢apkiban
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)NTT DATA Technology & Innovation
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring土岐 孝平
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るGo Miyasaka
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーションssuser070fa9
 
バッチは地味だが役に立つ
バッチは地味だが役に立つバッチは地味だが役に立つ
バッチは地味だが役に立つapkiban
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)NTT DATA Technology & Innovation
 
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーションこれから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション土岐 孝平
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021Hiroshi Tokumaru
 
決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話Ryosuke Uchitate
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAkihiro Kuwano
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)NTT DATA Technology & Innovation
 

La actualidad más candente (20)

Springを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイントSpringを何となく使ってる人が抑えるべきポイント
Springを何となく使ってる人が抑えるべきポイント
 
これからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきことこれからSpringを使う開発者が知っておくべきこと
これからSpringを使う開発者が知っておくべきこと
 
Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方Javaのログ出力: 道具と考え方
Javaのログ出力: 道具と考え方
 
Spring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のことSpring Bootをはじめる時にやるべき10のこと
Spring Bootをはじめる時にやるべき10のこと
 
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説
 
基礎からの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による実装
 
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
ツール比較しながら語る O/RマッパーとDBマイグレーションの実際のところ
 
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
GraalVM の概要と、Native Image 化によるSpring Boot 爆速化の夢
 
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
今こそ知りたいSpring Batch(Spring Fest 2020講演資料)
 
今さら聞けないDiとspring
今さら聞けないDiとspring今さら聞けないDiとspring
今さら聞けないDiとspring
 
Spring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作るSpring Boot × Vue.jsでSPAを作る
Spring Boot × Vue.jsでSPAを作る
 
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web ServiceアプリケーションAngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
AngularとSpring Bootで作るSPA + RESTful Web Serviceアプリケーション
 
バッチは地味だが役に立つ
バッチは地味だが役に立つバッチは地味だが役に立つ
バッチは地味だが役に立つ
 
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
JAVA_HOME/binにあるコマンド、いくつ使っていますか?[JVM関連ツール編](JJUGナイトセミナー「Java解析ツール特集」 発表資料)
 
Metaspace
MetaspaceMetaspace
Metaspace
 
これから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーションこれから始めるSpringのwebアプリケーション
これから始めるSpringのwebアプリケーション
 
SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021SPAセキュリティ入門~PHP Conference Japan 2021
SPAセキュリティ入門~PHP Conference Japan 2021
 
決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話決済サービスのSpring Bootのバージョンを2系に上げた話
決済サービスのSpring Bootのバージョンを2系に上げた話
 
AWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティスAWSのログ管理ベストプラクティス
AWSのログ管理ベストプラクティス
 
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
Javaコードが速く実⾏される秘密 - JITコンパイラ⼊⾨(JJUG CCC 2020 Fall講演資料)
 

Similar a 初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー

SpringOneでの3⽇間とSpring 5.1最新情報
SpringOneでの3⽇間とSpring 5.1最新情報SpringOneでの3⽇間とSpring 5.1最新情報
SpringOneでの3⽇間とSpring 5.1最新情報CASAREAL, Inc.
 
はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)Masatoshi Tada
 
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetupこれで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線MeetupMasatoshi Tada
 
Java EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 FallJava EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 FallMasatoshi Tada
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説Masahiko Sawada
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーAyumu Kawaguchi
 
Springでdao 20070413
Springでdao 20070413Springでdao 20070413
Springでdao 20070413Funato Takashi
 
20220914_MySQLでDevOps!
20220914_MySQLでDevOps!20220914_MySQLでDevOps!
20220914_MySQLでDevOps!Machiko Ikoma
 
Spring 5 でSpring Test のここが変わる
Spring 5 でSpring Test のここが変わるSpring 5 でSpring Test のここが変わる
Spring 5 でSpring Test のここが変わるapkiban
 
Spring 5でSpring Testのここが変わる_公開版
Spring 5でSpring Testのここが変わる_公開版Spring 5でSpring Testのここが変わる_公開版
Spring 5でSpring Testのここが変わる_公開版Yuichi Hasegawa
 
「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用ESM SEC
 
Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019MKT-INTHEFOREST
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handsonNobuhiro Sue
 
アメブロの大規模システム刷新とそれを支えるSpring.
アメブロの大規模システム刷新とそれを支えるSpring.アメブロの大規模システム刷新とそれを支えるSpring.
アメブロの大規模システム刷新とそれを支えるSpring.Masaki Mukai
 
アメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpringアメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpringTakuya Hattori
 
rsyncやシェルでバックアップするよりも簡単にOSSのBaculaでバックアップしてみよう
rsyncやシェルでバックアップするよりも簡単にOSSのBaculaでバックアップしてみようrsyncやシェルでバックアップするよりも簡単にOSSのBaculaでバックアップしてみよう
rsyncやシェルでバックアップするよりも簡単にOSSのBaculaでバックアップしてみようKen Sawada
 
Beginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_studyBeginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_studyinatus
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaYuta Kawadai
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradlekimukou_26 Kimukou
 

Similar a 初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー (20)

SpringOneでの3⽇間とSpring 5.1最新情報
SpringOneでの3⽇間とSpring 5.1最新情報SpringOneでの3⽇間とSpring 5.1最新情報
SpringOneでの3⽇間とSpring 5.1最新情報
 
はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)はまる!JPA(初学者向けライト版)
はまる!JPA(初学者向けライト版)
 
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetupこれで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
これで怖くない!?コードリーディングで学ぶSpring Security #中央線Meetup
 
Java EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 FallJava EEハンズオン資料 JJUG CCC 2015 Fall
Java EEハンズオン資料 JJUG CCC 2015 Fall
 
PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説PostgreSQL 15の新機能を徹底解説
PostgreSQL 15の新機能を徹底解説
 
Java class design
Java class designJava class design
Java class design
 
Ec cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナーEc cube開発合宿 プラグインセミナー
Ec cube開発合宿 プラグインセミナー
 
Springでdao 20070413
Springでdao 20070413Springでdao 20070413
Springでdao 20070413
 
20220914_MySQLでDevOps!
20220914_MySQLでDevOps!20220914_MySQLでDevOps!
20220914_MySQLでDevOps!
 
Spring 5 でSpring Test のここが変わる
Spring 5 でSpring Test のここが変わるSpring 5 でSpring Test のここが変わる
Spring 5 でSpring Test のここが変わる
 
Spring 5でSpring Testのここが変わる_公開版
Spring 5でSpring Testのここが変わる_公開版Spring 5でSpring Testのここが変わる_公開版
Spring 5でSpring Testのここが変わる_公開版
 
「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用「Entity Framework Coreを使ってみる」 公開用
「Entity Framework Coreを使ってみる」 公開用
 
Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019Participation report of data stax accelerate 2019
Participation report of data stax accelerate 2019
 
Gws 20130315 gradle_handson
Gws 20130315 gradle_handsonGws 20130315 gradle_handson
Gws 20130315 gradle_handson
 
アメブロの大規模システム刷新とそれを支えるSpring.
アメブロの大規模システム刷新とそれを支えるSpring.アメブロの大規模システム刷新とそれを支えるSpring.
アメブロの大規模システム刷新とそれを支えるSpring.
 
アメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpringアメブロの大規模システム刷新と それを支えるSpring
アメブロの大規模システム刷新と それを支えるSpring
 
rsyncやシェルでバックアップするよりも簡単にOSSのBaculaでバックアップしてみよう
rsyncやシェルでバックアップするよりも簡単にOSSのBaculaでバックアップしてみようrsyncやシェルでバックアップするよりも簡単にOSSのBaculaでバックアップしてみよう
rsyncやシェルでバックアップするよりも簡単にOSSのBaculaでバックアップしてみよう
 
Beginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_studyBeginning Java EE 6 勉強会(3) #bje_study
Beginning Java EE 6 勉強会(3) #bje_study
 
TDD勉強会キックオフ for Java
TDD勉強会キックオフ for JavaTDD勉強会キックオフ for Java
TDD勉強会キックオフ for Java
 
明日から使えるgradle
明日から使えるgradle明日から使えるgradle
明日から使えるgradle
 

Más de Masatoshi Tada

Java EE 8新機能解説 -Bean Validation 2.0編-
Java EE 8新機能解説 -Bean Validation 2.0編-Java EE 8新機能解説 -Bean Validation 2.0編-
Java EE 8新機能解説 -Bean Validation 2.0編-Masatoshi Tada
 
JSUG SpringOne 2017報告会
JSUG SpringOne 2017報告会JSUG SpringOne 2017報告会
JSUG SpringOne 2017報告会Masatoshi Tada
 
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるとにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるMasatoshi Tada
 
Java EEでもOAuth 2.0!~そしてPayara Micro on Cloud Foundryで遊ぶ~
Java EEでもOAuth 2.0!~そしてPayara Micro on Cloud Foundryで遊ぶ~Java EEでもOAuth 2.0!~そしてPayara Micro on Cloud Foundryで遊ぶ~
Java EEでもOAuth 2.0!~そしてPayara Micro on Cloud Foundryで遊ぶ~Masatoshi Tada
 
Spring Data JPAによるデータアクセス徹底入門 #jsug
Spring Data JPAによるデータアクセス徹底入門 #jsugSpring Data JPAによるデータアクセス徹底入門 #jsug
Spring Data JPAによるデータアクセス徹底入門 #jsugMasatoshi Tada
 
Getting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with ThymeleafGetting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with ThymeleafMasatoshi Tada
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Masatoshi Tada
 
NetBeansでかんたんJava EE ○分間クッキング! #kuwaccho lt
NetBeansでかんたんJava EE ○分間クッキング! #kuwaccho ltNetBeansでかんたんJava EE ○分間クッキング! #kuwaccho lt
NetBeansでかんたんJava EE ○分間クッキング! #kuwaccho ltMasatoshi Tada
 
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2Masatoshi Tada
 
JPAの同時実行制御とロック20140518 #ccc_r15 #jjug_ccc
JPAの同時実行制御とロック20140518 #ccc_r15 #jjug_cccJPAの同時実行制御とロック20140518 #ccc_r15 #jjug_ccc
JPAの同時実行制御とロック20140518 #ccc_r15 #jjug_cccMasatoshi Tada
 

Más de Masatoshi Tada (10)

Java EE 8新機能解説 -Bean Validation 2.0編-
Java EE 8新機能解説 -Bean Validation 2.0編-Java EE 8新機能解説 -Bean Validation 2.0編-
Java EE 8新機能解説 -Bean Validation 2.0編-
 
JSUG SpringOne 2017報告会
JSUG SpringOne 2017報告会JSUG SpringOne 2017報告会
JSUG SpringOne 2017報告会
 
とにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みるとにかく分かりづらいTwelve-Factor Appの解説を試みる
とにかく分かりづらいTwelve-Factor Appの解説を試みる
 
Java EEでもOAuth 2.0!~そしてPayara Micro on Cloud Foundryで遊ぶ~
Java EEでもOAuth 2.0!~そしてPayara Micro on Cloud Foundryで遊ぶ~Java EEでもOAuth 2.0!~そしてPayara Micro on Cloud Foundryで遊ぶ~
Java EEでもOAuth 2.0!~そしてPayara Micro on Cloud Foundryで遊ぶ~
 
Spring Data JPAによるデータアクセス徹底入門 #jsug
Spring Data JPAによるデータアクセス徹底入門 #jsugSpring Data JPAによるデータアクセス徹底入門 #jsug
Spring Data JPAによるデータアクセス徹底入門 #jsug
 
Getting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with ThymeleafGetting start Java EE Action-Based MVC with Thymeleaf
Getting start Java EE Action-Based MVC with Thymeleaf
 
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
Java EE 8先取り!MVC 1.0入門 [EDR2対応版] 2015-10-10更新
 
NetBeansでかんたんJava EE ○分間クッキング! #kuwaccho lt
NetBeansでかんたんJava EE ○分間クッキング! #kuwaccho ltNetBeansでかんたんJava EE ○分間クッキング! #kuwaccho lt
NetBeansでかんたんJava EE ○分間クッキング! #kuwaccho lt
 
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
ステップ・バイ・ステップで学ぶラムダ式・Stream api入門 #jjug ccc #ccc h2
 
JPAの同時実行制御とロック20140518 #ccc_r15 #jjug_ccc
JPAの同時実行制御とロック20140518 #ccc_r15 #jjug_cccJPAの同時実行制御とロック20140518 #ccc_r15 #jjug_ccc
JPAの同時実行制御とロック20140518 #ccc_r15 #jjug_ccc
 

Último

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略Ryo Sasaki
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Danieldanielhu54
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000Shota Ito
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directoryosamut
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxAtomu Hidaka
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdffurutsuka
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。iPride Co., Ltd.
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムsugiuralab
 

Último (9)

[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
[DevOpsDays Tokyo 2024] 〜デジタルとアナログのはざまに〜 スマートビルディング爆速開発を支える 自動化テスト戦略
 
Postman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By DanielPostman LT Fukuoka_Quick Prototype_By Daniel
Postman LT Fukuoka_Quick Prototype_By Daniel
 
PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000PHP-Conference-Odawara-2024-04-000000000
PHP-Conference-Odawara-2024-04-000000000
 
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
Amazon SES を勉強してみる その12024/04/12の勉強会で発表されたものです。
 
20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory20240412_HCCJP での Windows Server 2025 Active Directory
20240412_HCCJP での Windows Server 2025 Active Directory
 
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptxIoT in the era of generative AI, Thanks IoT ALGYAN.pptx
IoT in the era of generative AI, Thanks IoT ALGYAN.pptx
 
UPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdfUPWARD_share_company_information_20240415.pdf
UPWARD_share_company_information_20240415.pdf
 
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
新人研修のまとめ       2024/04/12の勉強会で発表されたものです。新人研修のまとめ       2024/04/12の勉強会で発表されたものです。
新人研修のまとめ 2024/04/12の勉強会で発表されたものです。
 
スマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システムスマートフォンを用いた新生児あやし動作の教示システム
スマートフォンを用いた新生児あやし動作の教示システム
 

初めてでも30分で分かるSpring 5 & Spring Boot 2オーバービュー

  • 1. (C) CASAREAL, Inc. All rights reserved. Pivotal認定講師が解説! 初めてでも30分で分かる Spring 5 & Spring Boot 2 オーバービュー (株)カサレアル 多⽥真敏 2018年6⽉28⽇ 1
  • 2. (C) CASAREAL, Inc. All rights reserved. このセッションについて ▸ Spring 5・Spring Boot 2とはどんなものか、
 基礎から分かりやすく解説します ▸ 【初級者向け】ある程度Javaの経験があり、
 Springは初めての⽅が対象です 2
  • 3. (C) CASAREAL, Inc. All rights reserved. ⾃⼰紹介 ▸ 多⽥真敏(@suke_masa) ▸ 研修トレーナー@カサレアル ▸ Spring / Java EE / Microservices
 / Cloud Foundry ▸ Pivotal認定講師 ▸ ⽇本Springユーザ会スタッフ ▸ ⽇本GlassFishユーザー会運営メンバー 3
  • 4. (C) CASAREAL, Inc. All rights reserved. Thymeleaf 3のドキュメントを(ちょっと)和訳しました! 4 https://www.thymeleaf.org/doc/tutorials/3.0/usingthymeleaf_ja.html
  • 5. (C) CASAREAL, Inc. All rights reserved. 株式会社カサレアル ▸ 他社には無い⾊々なプログラミング⾔語の研修 を提供しています! 5
  • 6. (C) CASAREAL, Inc. All rights reserved. 世界⼀ハイレベルなSpring研修 ▸ Pivotal認定 Core Spring (4⽇間) ▸ DI、AOP、Test、JDBC、Tx、Data、Boot、Web、 Security、REST、Microservices、Reactive ▸ ロジカルな講義+演習で徹底理解 ▸ アーキテクトやリーダー向け ▸ もちろんSpring 5に対応! 6 https://www.casareal.co.jp/ls/service/openseminar/pivotal/p016
  • 7. (C) CASAREAL, Inc. All rights reserved. エントリー向けSpring研修 ▸ はじめてのSpring MVCによる
 Webアプリケーション開発 (2⽇間) ▸ Web、Thymeleaf、Bean Validation、例外処理、
 JDBC、REST、Boot(、付録でMyBatis) ▸ 初⼼者〜チームメンバー向け ▸ もちろんSpring 5に対応! 7 https://www.casareal.co.jp/ls/service/openseminar/java/j040
  • 8. (C) CASAREAL, Inc. All rights reserved. Spring Securityを完全マスター ▸ Spring Security⼊⾨ (1⽇間) ▸ Spring Security 5の基礎から
 OAuth 2.0までを演習中⼼で学習 ▸ 複雑と⾔われるSpring Securityの
 アーキテクチャーも完全解説! ▸ チームメンバー〜アーキテクトまで
 幅広いレベルに対応! 8 https://www.casareal.co.jp/ls/service/openseminar/java/j120
  • 9. (C) CASAREAL, Inc. All rights reserved. ⽬次 9 1. Core 3. Web 2. Data 4. Security 5. Test 6. Boot
  • 10. (C) CASAREAL, Inc. All rights reserved. ⽬次 10 1. Core 3. Web 2. Data 4. Security 5. Test 6. Boot
  • 11. (C) CASAREAL, Inc. All rights reserved. Springとは ▸ いろんなフレームワークの集合体 ▸ DI/AOP、Web、Data、Security、Test、Boot、 Cloud、・・・ ▸ 現在はPivotal社が中⼼となりオープンソースで開発 ▸ 元々はRod Johnson⽒が開発したもの ▸ 最新はSpring 5(2017年9⽉リリース) 11
  • 12. (C) CASAREAL, Inc. All rights reserved. Spring 5はJDK 8ベース ▸ JDK 8の機能が、Spring 5内部でも公開APIでも 使われている ▸ Date and Time API、ラムダ式、Stream API、
 Optional、インタフェースのデフォルトメソッド、
 メソッド引数名による解決、など ▸ JDK 7未満では動かない!!!😖 12
  • 13. (C) CASAREAL, Inc. All rights reserved. JDK 9/10対応 ▸ Spring 5はJDK 9/10上でも動作保証済み! ▸ JDK 9のモジュールシステムにも対応👏 ▸ JDK 11上でも動く予定 ▸ JDK 11は2018年9⽉リリース予定
 (LTS : Long Term Support) 13
  • 14. (C) CASAREAL, Inc. All rights reserved. Springの根幹「DI」 ▸ Dependency Injection(依存性の注⼊) ▸ 必要なインスタンス(=依存性)を外から代⼊すること ▸ テスト時のインスタンスの差し替えなどが可能になる 14 objA objB objA objB代⼊ new ⭕❌
  • 15. (C) CASAREAL, Inc. All rights reserved. DIコンテナ ▸ Springが内部で持ってい るインスタンス(Bean) の格納庫 ▸ すべてのBeanはDI済み になっている※ ▸ 必要に応じて取り出し可 能 15 DIコンテナ BeanBean Bean Bean Bean Bean Bean Bean DI DI DIDI DI D I ※デフォルトでは起動時に全てのBeanがインスタンス化&DIされる
  • 16. (C) CASAREAL, Inc. All rights reserved. Beanを定義する⽅法① ▸ コンポーネントスキャン ▸ クラスに@Componentを 付加 ▸ Java Configクラスに上記 クラスのパッケージ名を 指定 16 package com.service; @Component public class HelloService { // omitted… } @Configuration @ComponentScan(basePackages = "com.service") public class ServiceConfig { // omitted… }
  • 17. (C) CASAREAL, Inc. All rights reserved. 正体が@Componentなアノテーション ▸ @Controller ▸ @RestController ▸ @Service ▸ @Repository ▸ @Configuration
 ・・・他にもいろいろ ▸ これらは「ステレオタイプアノテーション」と呼ばれる 17
  • 18. (C) CASAREAL, Inc. All rights reserved. Beanを定義する⽅法② ▸ Java Configにメソッ ドを作成し@Beanを 付加 ▸ 戻り値がBeanにな る ▸ メソッド引数で他の Beanを受け取れる ▸ ①と②は併⽤可能 18 @Configuration public class DataSourceConfig { @Bean public DataSource dataSource() { return new HogeDataSource(); } @Bean public JdbcTemplate jdbcTemplate( DataSource ds) { return new JdbcTemplate(ds); } }
  • 19. (C) CASAREAL, Inc. All rights reserved. DI ▸ @Autowiredで他のBeanを外から代⼊できる ▸ コンストラクタが1つのみの場合は省略可能 19 @Controller public class HelloController { private final HelloService service; @Autowired // 省略可能 public HelloController(HelloService svc) { this.service = svc; } // omitted... } @Service public class HelloService { // omitted... }
  • 20. (C) CASAREAL, Inc. All rights reserved. Webアプリケーションの3層アーキテクチャー 20 View Controller Service Repository DB プレゼンテーション層 ビジネス
 ロジック層 永続化層 リクエスト レス
 ポンス
  • 21. (C) CASAREAL, Inc. All rights reserved. 3層アーキテクチャーとDI 21 Controller Service RepositoryDIDI
  • 22. (C) CASAREAL, Inc. All rights reserved. ⽬次 22 1. Core 3. Web 2. Data 4. Security 5. Test 6. Boot
  • 23. (C) CASAREAL, Inc. All rights reserved. Springのデータアクセス技術 ▸ Spring JDBC ▸ JDBCの単純なラッパー ▸ Spring Data ▸ 様々なデータアクセスを共通化(JPA、Redis、MongoDB等) ▸ その他、各種ORマッパーがSpring連携機能を提供 ▸ MyBatis、DBFlute等 23
  • 24. (C) CASAREAL, Inc. All rights reserved. Spring Data JDBC (ベータ版) ▸ Spring JDBCを利⽤したSpring Data ▸ MyBatisも利⽤可能 24 // インタフェースを作るだけ! public interface EmployeeRepository extends CrudRepository<Employee, Long> { // アノテーションにSQLを書ける @Query("SELECT ... FROM employee WHERE hoge = :hoge") List<Employee> findByHoge(String hoge); // CrudRepositoryのメソッドは全て使える パラメータ名を揃える※ ※コンパイル時(javac)のオプションに「-parameters」が必要
  • 25. (C) CASAREAL, Inc. All rights reserved. CrudRepositoryで定義されたメソッド ▸ 継承して作成したインタフェースではこれらのメソッ ドが全て使える 25 ▸ <S extends T> S save(S entity) ▸ <S extends T> Iterable<S> saveAll(Iterable<S> entities) ▸ Optional<T> findById(ID id) ▸ boolean existsById(ID id) ▸ Iterable<T> findAll() ▸ Iterable<T> findAllById(Iterable<ID> ids) ▸ long count() ▸ void deleteById(ID id) ▸ void delete(T entity) ▸ void deleteAll(Iterable<? extends T> entities) ▸ void deleteAll()
  • 26. (C) CASAREAL, Inc. All rights reserved. 作成したインタフェースの使い⽅ ▸ 実装クラスおよびそのインスタンスは、
 起動時に動的に作られる ▸ インスタンスはBeanとなる
 →@AutowiredでDIできる 26
  • 27. (C) CASAREAL, Inc. All rights reserved. 作成したインタフェースの使い⽅ 27 @Service public class EmployeeService { private final EmployeeRepository repo; @Autowired // 省略可能 public EmployeeService(EmployeeRepository repo) { this.repo = repo; } public Iterable<Employee> findAll() { // CrudRepositoryのメソッドを使える Iterable<Employee> employees = repo.findAll(); return employees; } }
  • 28. (C) CASAREAL, Inc. All rights reserved. 必要なBean定義 28 @ComponentScan(basePackages = "com.example.persistence.repository.impl") @EnableJdbcRepositories(basePackages = "com.example.persistence.repository") @Configuration public class JdbcConfig { @Bean public NamedParameterJdbcTemplate namedParameterJdbcTemplate(...) { ... } @Bean public DataAccessStrategy dataAccessStrategy(...) { ...} @Bean public NamingStrategy namingStrategy() { ... } }
  • 29. (C) CASAREAL, Inc. All rights reserved. ⽬次 29 1. Core 3. Web 2. Data 4. Security 5. Test 6. Boot
  • 30. (C) CASAREAL, Inc. All rights reserved. Spring MVCとは ▸ Webアプリケーションフレームワーク ▸ 中にDIコンテナを持っていて、
 必要なインスタンスを取り出して
 フレームワーク全体を動かしている 30
  • 31. (C) CASAREAL, Inc. All rights reserved. Spring MVCのアーキテクチャー 31 Dispatcher
 Servlet View
 Resolver
 (Bean) Controller
 (Bean) ①リクエスト ②URLを⾒て
 処理を委譲 ③ビューのパスの
  ⼀部を返す ⑥レスポンス ④ビューのパスの⼀部⑤ビューの完全パス …
  • 32. (C) CASAREAL, Inc. All rights reserved. DispatcherServlet ▸ すべてのリクエストを 受け取る唯⼀の
 サーブレットクラス ▸ 中にDIコンテナを持っ ていて、必要なBeanを 都度取り出して使う 32 Dispatcher
 Servlet DIコンテナ Cont
 roller View
 Resolver その他の
 Bean
  • 33. (C) CASAREAL, Inc. All rights reserved. DispatcherServletの登録 33 public class MvcInitializer extends AbstractAnnotationConfigDispatcherServletInitializer { @Override protected Class<?>[] getRootConfigClasses() { ... } @Override protected Class<?>[] getServletConfigClasses() { ... } @Override protected String[] getServletMappings() { return new String[]{ "/" }; } } ▸ AbstractAnnotationConfigDispatcherServletInitializerのサブ クラスを作成するだけで、サーバーにDispatcherServletが登録される ※web.xmlでも登録可能
  • 34. (C) CASAREAL, Inc. All rights reserved. ViewResolver ▸ コントローラーから 返ってきたビューの パスの⼀部を元に、 完全なパスを返す ▸ ビュー技術に合わせ た実装クラスが⽤意 されている 34 <<interface>>
 ViewResolver Internal
 Resource
 View
 Resolver Free
 Marker
 View
 Resolver Thymeleaf
 View
 Resolver (JSP⽤) (Thymeleaf⽤) (FreeMarker⽤)
  • 35. (C) CASAREAL, Inc. All rights reserved. Thymeleaf ▸ オープンソースのテンプレートエンジン ▸ Spring・Spring Bootでよく利⽤される ▸ 値を属性で埋め込むため、ブラウザから直接開くこともできる 35 <!--/* 全社員のID・名前を表⽰する */--> <table> <tr th:each="emp : ${employees}" th:object="${emp}"> <td th:text="*{id}">ダミーのID</td> <td th:text="*{name}">ダミーの名前</td> </tr> </table>
  • 36. (C) CASAREAL, Inc. All rights reserved. コントローラー 36 @Controller public class EmployeeController { private final EmployeeService service; @Autowired // 省略可能 public EmployeeController(EmployeeService service) { this.service = service; } @GetMapping("/") public String index(Model model) { Iterable<Employee> employees = service.findAll(); model.addAttribute("employees", employees); return "index"; } } コントローラーとしてBean定義 ビジネスロジックをDI メソッドとURLをマッピング 値をビューに渡す ビューのパスの⼀部を返す
  • 37. (C) CASAREAL, Inc. All rights reserved. 必要なBean定義 37 @ComponentScan(basePackages = "com.example.web.controller") @EnableWebMvc @Configuration public class MvcConfig ... { ... @Bean public ThymeleafViewResolver viewResolver(...) { ... } ... } ▸ ViewResolver をBean定義する ▸ コントローラーク ラスをコンポーネ ントスキャン ▸ @EnableWebMvc を付加
  • 38. (C) CASAREAL, Inc. All rights reserved. その他の機能 ▸ ⼀通りの機能が揃っている ▸ ⼊⼒検証(Bean Validation連携) ▸ 例外処理 ▸ ファイルアップロード ▸ RESTful Webサービス
 ・・・など 38
  • 39. (C) CASAREAL, Inc. All rights reserved. ⽬次 39 1. Core 3. Web 2. Data 4. Security 5. Test 6. Boot
  • 40. (C) CASAREAL, Inc. All rights reserved. Spring Securityとは ▸ 主に認証・認可の機能を提供するセキュリティ ライブラリ ▸ 何重ものサーブレットフィルターや、
 AOP(割り込み処理)を使って、
 ログインや権限チェックを⾏う 40
  • 41. (C) CASAREAL, Inc. All rights reserved. web.xmlへのフィルター設定 41 <web-app> ... <filter> <filter-name>springSecurityFilterChain</filter-name> <filter-class> org.springframework.web.filter.DelegatingFilterProxy </filter-class> </filter> <filter-mapping> <filter-name>springSecurityFilterChain</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> </web-app> これだけで⼗数個のフィルターが動く!
  • 42. (C) CASAREAL, Inc. All rights reserved. 認証・認可の設定 42 @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdaptor { @Override protected void configure(HttpSecurity http) ... { http.formLogin() // ログイン画⾯の設定 .loginPage("/login") .permitAll(); http.authorizeRequests() // URLごとの権限設定 .mvcMatchers("/admin*").hasRole("ADMIN") .anyRequest().authenticated(); http.logout() // ログアウトの設定 .permitAll(); } ... }
  • 43. (C) CASAREAL, Inc. All rights reserved. PasswordEncoder ▸ DB等にはパスワードをハッシュ化して保存する ▸ ⼊⼒されたパスワードは、ハッシュ化してからDBのパ スワードと照合する 43 @EnableWebSecurity public class SecurityConfig extends WebSecurityConfigurerAdaptor { ... @Bean public PasswordEncoder passwordEncoder(){ return new BCryptPasswordEncoder(); } }
  • 44. (C) CASAREAL, Inc. All rights reserved. thymeleaf-extras-springsecurity ▸ Thymeleafが提供している、Spring Securityと 連携するためのライブラリ ▸ 認証や権限の有無などで表⽰/⾮表⽰を切り替え ることができる 44 <!--/* ADMINロールのみ下記のリンクを表⽰する */--> <a th:href="@{/admin}" sec:authorize="hasRole('ADMIN')"> 管理画⾯へ </a>
  • 45. (C) CASAREAL, Inc. All rights reserved. ⽬次 45 1. Core 2. Web 3. Data4. Security 5. Test 6. Boot
  • 46. (C) CASAREAL, Inc. All rights reserved. Spring Testとは ▸ JUnitやTestNGと、Springを連携させるライブ ラリ ▸ Spring 5でJUnit 5に対応!👏 ▸ その他、Spring MVCやDBを利⽤したテストの 機能も提供 46
  • 47. (C) CASAREAL, Inc. All rights reserved. JUnit 5対応 ▸ SpringExtension ▸ JUnit 5上でSpringのDI機能などを使えるようにする拡 張機能 47 @ExtendWith(SpringExtension.class) @ContextConfiguration( classes = HelloTestConfig.class) public class HelloTest { @Autowired HelloService service; // テストを書く… }
  • 48. (C) CASAREAL, Inc. All rights reserved. テストメソッド引数でもDI可能 ▸ SpringExtensionは
 JUnit 5のParameterResolverを実装 48 @ExtendWith(SpringExtension.class) @ContextConfiguration( classes = HelloTestConfig.class) public class HelloTest { @Test void test(@Autowired HelloService service) { // テストを書く… } }
  • 49. (C) CASAREAL, Inc. All rights reserved. 便利なアノテーション ▸ @SpringJUnitConfig ▸ @ExtendWith(SpringExtension.class) 
 + @ContextConfiguration ▸ @SpringJUnitWebConfig ▸ @ExtendWith(SpringExtension.class)
 + @ContextConfiguration
 + @WebAppConfiguration 49
  • 50. (C) CASAREAL, Inc. All rights reserved. ⽬次 50 1. Core 3. Web 2. Data 4. Security 5. Test 6. Boot
  • 51. (C) CASAREAL, Inc. All rights reserved. Spring Bootとは ① Auto Configurationクラス ▸ ⼤量のJava Configがあらかじめ提供済み! ② Starterライブラリ ▸ ⼤量の依存ライブラリが1つにまとめられている! ③ 組み込みサーバー⼊りFat JAR ▸ 単独で起動できる! 51
  • 52. (C) CASAREAL, Inc. All rights reserved. ①Auto Configurationクラス 52 ▸ Spring Boot によって Java Config が
 あらかじめ ⼤量に⽤意 されている
  • 53. (C) CASAREAL, Inc. All rights reserved. ②Starterライブラリ 53 ▸ Starterライブラ リを指定すれば、 芋づる式に⼤量 のライブラリが 追加される
  • 54. (C) CASAREAL, Inc. All rights reserved. ③組み込みサーバー⼊りFat JAR 54 $ jar -tvf target/04-boot2-answer-0.0.1-SNAPSHOT.jar 524 Thu Jun 21 13:27:06 JST 2018 META-INF/MANIFEST.MF 2688 Wed May 09 13:32:20 JST 2018 org/springframework/boot/loader /data/RandomAccessDataFile$DataInputStream.class ... 607 Thu Jun 21 13:27:06 JST 2018 BOOT-INF/classes/com/example/web /controller/LoginController.class ... 1650 Thu Jun 21 13:27:06 JST 2018 BOOT-INF/classes/com/example /Application.class 604 Wed May 09 13:41:42 JST 2018 BOOT-INF/lib /spring-boot-starter-security-2.0.2.RELEASE.jar ... 425493 Tue May 08 15:24:16 JST 2018 BOOT-INF/lib /spring-security-core-5.0.5.RELEASE.jar 3115994 Fri Apr 27 21:24:52 JST 2018 BOOT-INF/lib /tomcat-embed-core-8.5.31.jar 240244 Fri Apr 27 21:24:54 JST 2018 BOOT-INF/lib /tomcat-embed-el-8.5.31.jar 256776 Fri Apr 27 21:24:54 JST 2018 BOOT-INF/lib /tomcat-embed-websocket-8.5.31.jar ▸ ビルド成果物のJARに、作成したクラスやライブラリ、組み 込みサーバーなどが全て含まれている
  • 55. (C) CASAREAL, Inc. All rights reserved. つまり・・・ ▸ 開発のセットアップが簡単にできる!😆 ▸ Java Configの作成がほぼ不要に ▸ 追加するライブラリが少なくて済む ▸ 簡単に起動・デプロイできる!😆 ▸ サーバーの設定の必要無し ▸ 特にクラウド向き 55
  • 56. (C) CASAREAL, Inc. All rights reserved. よくある勘違い🙅 ▸ 開発を⾼速化できる❌ ▸ Java Configはほぼ不要になるが、
 機能開発する部分は⼀切変わらない ▸ Spring⾃体の知識は無くても良い❌ ▸ 機能開発には変わらずSpringを利⽤する ▸ 設定は何も書かなくて良い❌ ▸ Auto Configurationクラスが無いものは変わらず必要 56
  • 57. (C) CASAREAL, Inc. All rights reserved. main()メソッドからの起動 ▸ あらかじめ⽤意された⼤量のJava Configを読み 込む ▸ 組み込みサーバーを起動する 57 @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run( Application.class, args); } }
  • 58. (C) CASAREAL, Inc. All rights reserved. @SpringBootApplication ▸ 下記3つのアノテーションを組み合わせたもの ▸ @Configuration ▸ @CompomentScan ▸ @EnableAutoConfiguration 58 Auto Configurationを有効化する
  • 59. (C) CASAREAL, Inc. All rights reserved. おすすめスライド資料 ▸ ReactiveだけじゃないSpring 5 & Spring Boot 2新機能解説 ▸ https://www.slideshare.net/masatoshitada7/reactivespring-5-spring-boot-2 ▸ Spring Bootの本当の理解ポイント ▸ https://www.slideshare.net/masatoshitada7/spring-boot-jjug ▸ Spring Boot Actuator 2.0 & Micrometer ▸ https://www.slideshare.net/makingx/spring-boot-actuator-20-micrometer ▸ Introduction to Spring WebFlux ▸ https://www.slideshare.net/makingx/introduction-to-spring-webflux-jsug- sfa1 59
  • 60. (C) CASAREAL, Inc. All rights reserved. おすすめ書籍 ▸ 改訂新版Spring⼊⾨(技術評論社) ▸ アーキテクチャーの概要を理解する ▸ Spring徹底⼊⾨(翔泳社) ▸ リファレンスとして 60
  • 61. (C) CASAREAL, Inc. All rights reserved. 頼りになるリファレンス ▸ Terasoluna Development Guideline (⽇本語) ▸ http://terasolunaorg.github.io/guideline/5.4.1.RELEASE/ja/ ▸ Spring Framework Reference (英語) ▸ https://docs.spring.io/spring/docs/current/spring-framework-reference/ ▸ Spring Security Reference (英語) ▸ https://docs.spring.io/spring-security/site/docs/current/reference/ htmlsingle/ ▸ Spring Boot Reference (英語) ▸ https://docs.spring.io/spring-boot/docs/current/reference/htmlsingle/ 61
  • 62. (C) CASAREAL, Inc. All rights reserved. 次回の研修⽇程 ▸ Pivotal認定Core Spring(4⽇間) ▸ ①7⽉5⽇〜(締切)、②9⽉10⽇〜 ▸ はじめてのSpring MVCによるWebアプリケーション開発 (2⽇間) ▸ ①8⽉2⽇〜、②9⽉5⽇〜 ▸ Spring Security⼊⾨(1⽇間) ▸ ①7⽉31⽇、②9⽉20⽇ 62https://www.casareal.co.jp/ls/service/openseminar/top/index.html
  • 63. (C) CASAREAL, Inc. All rights reserved. Enjoy Spring 5 & Boot 2!! ▸ ご清聴ありがとうございました! 63