spring bootの本当の理解ポイント #jjug
TRANSCRIPT
![Page 1: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/1.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3 1
![Page 2: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/2.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
2
![Page 3: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/3.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
3
基礎を固めよ!
![Page 4: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/4.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
4
![Page 5: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/5.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
5
![Page 6: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/6.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
6
![Page 7: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/7.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
▸
▸7
![Page 8: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/8.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
8
![Page 9: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/9.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
▸
▸
9
![Page 10: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/10.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
10
Spring Web 4 Spring MVC
Spring Boot Developer 2 Spring Boot
Spring Cloud Services3
( )
Spring Cloud Microservices
![Page 11: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/11.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
11
![Page 12: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/12.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
12
![Page 13: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/13.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
13
Spring Framework
Spring Boot
Spring Cloud
Data, Security, Batch, …
![Page 14: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/14.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
14
![Page 15: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/15.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
15
※CoC : Convention over Configuration ( )
Seasar2 Ruby on Rails
![Page 16: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/16.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
16
![Page 17: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/17.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
17
![Page 18: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/18.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
18
![Page 19: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/19.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
▸
▸
19
![Page 20: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/20.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
20
![Page 21: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/21.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ @Component
21
packagehoge.service.impl;
@ComponentpublicclassFooServiceImplimplementsFooService{// }※ ( FooService)
![Page 22: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/22.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ @Configuration @ComponentScan
22
packagehoge.config;
@Configuration@ComponentScan(basePackages={“hoge.service.impl”})publicclassAppConfig{// OK}
![Page 23: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/23.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ basePackages
@Component
23
hoge
config
service
impl
bar
AppConfig
FooServiceImpl
Bar
FooService
![Page 24: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/24.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ AnnotationConfigApplicationContext
▸ ApplicationContext
24
// // ApplicationContextcontext=newAnnotationConfigApplicationContext(AppConfig.class);※ Java Config
![Page 25: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/25.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸ getBean()
25
ApplicationContextcontext=…;FooServicefs=context.getBean(FooService.class);
![Page 26: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/26.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
26
@Component// publicclassFooController{privatefinalFooServicefs;// @Autowired// publicFooController(FooServicefs){this.fs=fs;}}
![Page 27: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/27.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ @Bean
27
@Configuration//@ComponentScan publicclassAppConfig2{@BeanpublicBarServicebarService(){//
returnnewBarServiceImpl();}}
![Page 28: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/28.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ @Bean
28
@ConfigurationpublicclassAppConfig3{@BeanpublicBarServicebarService(BarRepositorybr){returnnewBarServiceImpl(br);}}
Bean
![Page 29: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/29.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ @Component
29
ApplicationContextcontext=newAnnotationConfigApplicationContext(AppConfig2.class);BarServicebs=context.getBean(BarService.class);
@ComponentpublicclassBarController{privatefinalBarServicebs;@Autowired// publicBarController(BarServicebs){this.bs=bs;}}
![Page 30: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/30.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸ @Bean
▸ basePackages @Component
30
@Configuration@ComponentScan(basePackages=“hoge.service.impl”)publicclassAppConfig4{@BeanpublicBarServicebarService(){returnnewBarServiceImpl();}}
![Page 31: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/31.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸ @Component
▸ @Bean
31
![Page 32: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/32.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
32
![Page 33: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/33.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
33
![Page 34: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/34.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
34
ViewResolver ※
Spring Spring
DispatcherServlet
![Page 35: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/35.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
DispatcherServlet
▸
▸WebApplicationInitialzer
▸
▸35
DispatcherServlet
![Page 36: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/36.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸ DispatcherServlet
36
![Page 37: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/37.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
ViewResolver▸
▸ ”employee/index””/WEB-INF/views/employee/index.jsp”
▸
▸ InternalResourceViewResolver
▸ ThymeleafViewReseolver
▸ FreeMarkerViewResolver
37
![Page 38: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/38.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
ViewResolver
38
@ConfigurationpublicclassMvcConfig…{@BeanpublicInternalResourceViewResolverviewResolver(){InternalResourceViewResolvervr=newInternalResourceViewResolver();vr.setPrefix("/WEB-INF/views/");vr.setSuffix(".jsp");returnvr;}}
![Page 39: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/39.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
ViewResolver▸ DispatcherServlet ViewResolver
39
https://github.com/spring-projects/spring-framework/blob/master/spring-webmvc/src/main/java/org/springframework/web/servlet/DispatcherServlet.java#L733
![Page 40: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/40.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ ViewResolver
▸
▸
▸
▸
40
![Page 41: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/41.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ ViewResolver
▸
▸
▸
▸
41
@EnableW
ebMvc
![Page 42: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/42.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
@EnableWebMvc▸ @Import
▸
▸ @EnableXxx
42
https://github.com/spring-projects/spring-framework/blob/master/spring-webmvc/src/main/java/org/springframework/web/servlet/config/annotation/EnableWebMvc.java#L101
![Page 43: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/43.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ @Controller
▸ @Component
43
packagehoge.controller
@Controller@RequestMapping(“/employee”)publicclassEmployeeController{@GetMapping(“/index”)publicStringindex(){return“employee/index”;}
![Page 44: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/44.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ @Component
▸ @Controller
▸ @RestController
▸ @Configuration👈
▸ @Service
▸ @Repository
44
![Page 45: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/45.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
45
@ComponentScan(basePackages=“hoge.controller”)@ConfigurationpublicclassMvcConfig{…}
![Page 46: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/46.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
46
@EnableWebMvc@ComponentScan(basePackages=“hoge.controller”)@ConfigurationpublicclassMvcConfig…{@BeanpublicInternalResourceViewResolverviewResolver(){…}}
![Page 47: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/47.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
47
DispatcherServlet
ViewResolverBean
Bean
Bean
Bean
![Page 48: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/48.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ DispatcherServlet
▸
▸ @EnableWebMvc
▸ @Controller @ComponentScan
48
![Page 49: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/49.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
▸49
https://www.casareal.co.jp/recruit/jobs/ls_teacher.php
![Page 50: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/50.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ ✕ ✕
▸
50
https://www.casareal.co.jp/ls/service/shinjinseminar/course01
![Page 51: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/51.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
51
![Page 52: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/52.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
52
ViewResolverBean
Bean
DataSourceBean
Bean
Bean
Bean
Bean
Bean
![Page 53: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/53.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
53
ViewResolverBean
Bean
DataSourceBean
Bean
Bean
Bean
Bean
Bean
Bean
Bean
![Page 54: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/54.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
54
![Page 55: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/55.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
55
@ConfigurationpublicclassThymeleafAutoConfiguration{…@ConfigurationpublicstaticclassXxxConfiguration{@BeanpublicThymeleafViewResolverthymeleafViewResolver(){…}…
※static Java Config
ViewResolver
https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration.java#L183
![Page 56: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/56.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
▸
▸56
![Page 57: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/57.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
▸
57
![Page 58: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/58.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
@ConfigurationProperties
▸
58
@ConfigurationProperties(prefix=“spring.thymeleaf”)publicclassThymeleafProperties{…privateCharsetencoding=DEFAULT_ENCODING;privatebooleancache=true;// }
spring.thymeleaf.encoding=Shift_JISspring.thymeleaf.cache=falsehttps://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/thymeleaf/ThymeleafProperties.java
![Page 59: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/59.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
@EnableConfigurationProperties
▸ @ConfigurationProperties
▸ @Component/@Bean
59https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration.java#L74
@EnableConfigurationProperties(ThymeleafProperties.class)@ConfigurationpublicclassThymeleafAutoConfiguration{…
![Page 60: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/60.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸ @ConfigurationProperties
60
![Page 61: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/61.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
61
![Page 62: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/62.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
62
![Page 63: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/63.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
63
@SpringBootApplicationpublicclassSampleApplication{publicstaticvoidmain(String[]args){SpringApplication.run(SampleApplication.class);}}
@EnableAutoConfiguration@Configuration@ComponentScanpublic@interfaceSpringBootApplication{…
![Page 64: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/64.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
64
@EnableAutoConfiguration
org.springframework.boot.autoconfigure.EnableAutoConfiguration=\org.springframework.boot.autoconfigure.admin.SpringApplicationAdminJmxAutoConfiguration,\org.springframework.boot.autoconfigure.aop.AopAutoConfiguration,\org.springframework.boot.autoconfigure.amqp.RabbitAutoConfiguration,\…
AutoConfiguration
https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/resources/META-INF/spring.factories
![Page 65: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/65.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
65
![Page 66: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/66.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
66
![Page 67: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/67.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
@ConditionalOnXxx
▸ @Bean
▸
67
![Page 68: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/68.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
ThymeleafAutoConfiguration
68
@Configuration@ConditionalOnClass(TemplateMode.class) @AutoConfigureAfter({WebMvcAutoConfiguration.class,…})publicclassThymeleafAutoConfiguration{…@Configuration@ConditionalOnWebApplication(…)publicstaticclassXxxConfiguration{@Bean@ConditionalOnMissingBean(name=“thymeleafViewResolver”)publicThymeleafViewResolverthymeleafViewResolver(){…https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration.java#L183
![Page 69: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/69.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
@ConditionalOnClass
▸
@ConditionalOnBean
▸
@ConditionalOnMissingBean
▸69
![Page 70: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/70.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
@ConditionalOnProperty
▸
@ConditionalOnWebApplication
▸
@AutoConfigureAfter/@AutoConfigureBefore
▸70
![Page 71: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/71.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ @EnableAutoConfiguration
▸ @ConditionalOnXxx
71
![Page 72: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/72.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
72
![Page 73: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/73.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
😭
@ConditionalOnMissingBean(Bean_1.class)
@ConditionalOnBean(Bean_2.class)
73
![Page 74: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/74.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
Spring Bootのべからず集
一.フレームワークを動かすBeanは、なるべく自前で定義するべからず
二.@EnableXxxはなるべく付けるべからず
74
![Page 75: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/75.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸ @EnableXxx
▸
▸
75
![Page 76: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/76.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
76
![Page 77: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/77.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
77https://docs.spring.io/spring-boot/docs/current/reference/html/common-application-properties.html
![Page 78: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/78.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
78
@ConfigurationpublicclassSomeConfiguration{privatefinalSomeBeansb;
@Autowired// publicSomeConfiguration(SomeBeansb){this.sb=sb;}
@PostConstruct// publicvoidinit(){sb.setXxx(…);//SomeBean }}
![Page 79: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/79.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
79
@ConfigurationpublicclassMyThymeleafConfiguration{@BeanpublicFooDialectfooDialect(){returnnewFooDialect();}@BeanpublicBarDialectbarDialect(){returnnewBarDialect();}}
![Page 80: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/80.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ ThymeleafAutoConfiguration Dialect
TemplateEngine Dialect
80
FooDialectBean
BarDialectBean
&TemplateEngine
Bean &
![Page 81: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/81.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
81
@ConfigurationprotectedstaticclassThymeleafDefaultConfiguration{//Dialect Bean DI publicThymeleafDefaultConfiguration(...,ObjectProvider<Collection<IDialect>>dProvider){…}@BeanpublicSpringTemplateEnginetemplateEngine(){SpringTemplateEngineengine=newSpringTemplateEngine();//Dialect this.dialects.forEach(engine::addDialect);returnengine;https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/thymeleaf/ThymeleafAutoConfiguration.java#L140
![Page 82: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/82.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ XxxCustomizer
▸
▸
82
@FunctionalInterfacepublicinterfaceJackson2ObjectMapperBuilderCustomizer{
voidcustomize(Jackson2ObjectMapperBuilderbuilder);}https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jackson/Jackson2ObjectMapperBuilderCustomizer.java
![Page 83: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/83.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
83
@ConfigurationpublicclassMyJacksonConfiguration{@BeanpublicJackson2ObjectMapperBuilderCustomizerjackson2ObjectMapperBuilderCustomizer(){// OKreturnbuilder->{// builder.modules(…).locale(…).indentOutput(…);};}}
![Page 84: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/84.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
84
@ConfigurationstaticclassJacksonObjectMapperBuilderConfiguration{@BeanpublicJackson2ObjectMapperBuilder…(List<Jackson2ObjectMapperBuilderCustomizer>customizers){Jackson2ObjectMapperBuilderbuilder=newJackson2ObjectMapperBuilder();for(Jackson2ObjectMapperBuilderCustomizercustomizer:customizers){customizer.customize(builder);}returnbuilder;}}https://github.com/spring-projects/spring-boot/blob/master/spring-boot-project/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/jackson/JacksonAutoConfiguration.java#L172
![Page 85: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/85.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ FilterRegistrationBean
85
@BeanpublicFilterRegistrationBeanmyFilter(){MyFilterfilter=newMyFilter();FilterRegistrationBeanfrb=newFilterRegistrationBean(filter);// url-patternfrb.addUrlPatterns(“/*”);//
frb.setOrder(Ordered.HIGHEST_PRECEDENCE+10);returnfrb;}
![Page 86: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/86.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
▸
86
![Page 87: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/87.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
87
![Page 88: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/88.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
▸
88
![Page 89: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/89.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
89
![Page 90: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/90.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
▸
▸
90
![Page 91: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/91.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
▸
▸
▸
▸
▸
▸ 91
![Page 92: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/92.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸ 😡
▸
▸
92
![Page 93: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/93.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
▸
93
![Page 94: Spring Bootの本当の理解ポイント #jjug](https://reader034.vdocuments.mx/reader034/viewer/2022050613/5a64777b7f8b9afc4d8b47b5/html5/thumbnails/94.jpg)
(C) CASAREAL, Inc. All rights reserved.
#jjug #ccc_ef3
▸
94