SpringBootの3つの機能
-
コンポーネントの自動アセンブリ:Web MVC、JDBCなど。
- 自動アセンブリをアクティブ化:@EnableAutoConfiguration
@SpringBootApplication 在SpringBoot中的Application.java中的SpringBootApplication注解包括了如下注解: @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited @SpringBootConfiguration @EnableAutoConfiguration @ComponentScan( excludeFilters = {@Filter( type = FilterType.CUSTOM, classes = {TypeExcludeFilter.class} ), @Filter( type = FilterType.CUSTOM, classes = {AutoConfigurationExcludeFilter.class} )} )
- 構成:/META-INF/spring.factories
# AutoConfigureDataRedis auto-configuration imports ... # Auto Configure ... // MVC的自动配置 # AutoConfigureWebMvc auto-configuration imports ... # AutoConfigureJdbc auto-configuration imports org.springframework.boot.test.autoconfigure.jdbc.AutoConfigureJdbc=\ org.springframework.boot.autoconfigure.flyway.FlywayAutoConfiguration,\ org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration,\ org.springframework.boot.autoconfigure.jdbc.DataSourceTransactionManagerAutoConfiguration,\ org.springframework.boot.autoconfigure.jdbc.JdbcTemplateAutoConfiguration,\ org.springframework.boot.autoconfigure.liquibase.LiquibaseAutoConfiguration,\ org.springframework.boot.autoconfigure.transaction.TransactionAutoConfiguration
対応する実装のエージェント-さまざまな構成
- 実装:XXX(JDBC / MVC)AutoConfiguration
@Configuration(proxyBeanMethods = false) @ConditionalOnWebApplication(type = Type.SERVLET) @ConditionalOnClass({ Servlet.class, DispatcherServlet.class, WebMvcConfigurer.class }) @ConditionalOnMissingBean(WebMvcConfigurationSupport.class) @AutoConfigureOrder(Ordered.HIGHEST_PRECEDENCE + 10) @AutoConfigureAfter({ DispatcherServletAutoConfiguration.class, TaskExecutionAutoConfiguration.class, ValidationAutoConfiguration.class }) public class WebMvcAutoConfiguration { ... }
実装
-
埋め込みWebコンテナ:Tomcat、Jetty
-
生産準備機能:インジケーター、ヘルスチェック、外部構成など。
- メトリック:/アクチュエータ/メトリック
- ヘルスチェック:/アクチュエータ/ヘルス
- 外部構成:/アクチュエータ/ configprops