Trois fonctionnalités de Spring Boot
-
Assemblage automatique de composants: Web MVC, JDBC, etc.
- Activer l'assemblage automatique : @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} )} )
- Configuration : /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
Agent l'implémentation correspondante - diverses configurations
- Implémentation : AutoConfiguration XXX (JDBC / MVC)
@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 { ... }
Mise en œuvre
-
Conteneur Web intégré: Tomcat, Jetty
-
Fonctionnalités de préparation de la production: indicateurs, bilans de santé, configuration externe, etc.
- Métriques: / actionneur / métriques
- Bilan de santé: / actionneur / santé
- Configuration externalisée : / actionneur / configprops