1 、 @ SpringBootApplication
Esta es la anotación más importante de Spring Boot. Se usa en la clase principal de Spring Boot para identificar que se trata de una aplicación Spring Boot y se usa para habilitar las diversas capacidades de Spring Boot.
De hecho, esta anotación es una combinación de estas tres anotaciones @SpringBootConfiguration
, @EnableAutoConfiguration
y @ComponentScan
estas tres anotaciones también se pueden utilizar en lugar de @SpringBootApplication
anotaciones.
2 、 @ EnableAutoConfiguration
Permita que Spring Boot configure automáticamente las anotaciones. Después de activar esta anotación, Spring Boot puede configurar Spring Beans de acuerdo con los paquetes o clases en la ruta de clases actual.
Por ejemplo, existe el paquete Mybatis JAR en la ruta de clases actual, y las MybatisAutoConfiguration
anotaciones pueden configurar cada Spring Bean de Mybatis de acuerdo con los parámetros relevantes.
3 、 @ Configuración
Esta es una anotación agregada por Spring 3.0 para reemplazar el archivo de configuración applicationContext.xml Todas las cosas que se pueden hacer en este archivo de configuración se pueden registrar a través de la clase de esta anotación.
4 、 @ SpringBootConfiguration
Esta anotación es una variante de la anotación @Configuration, que solo se usa para modificar la configuración de Spring Boot, o puede ser beneficiosa para la expansión posterior de Spring Boot.
5 、 @ ComponentScan
Esta es una anotación agregada por Spring 3.1 para reemplazar la configuración de escaneo de componentes en el archivo de configuración para habilitar el escaneo de componentes, es decir, escanear automáticamente la anotación @Component en la ruta del paquete para registrar instancias de bean en el contexto.
6 、 @ Condicional
Esta es una nueva anotación agregada por Spring 4.0.Se usa para identificar un Spring Bean o un archivo de configuración, y la configuración se inicia cuando se cumplen las condiciones especificadas.
7 、 @ ConditionalOnBean
Combinación de @Conditional
anotaciones, cuando hay un Bean especificado en el contenedor, se abre la configuración.
8 、 @ ConditionalOnMissingBean
Las @Conditional
anotaciones combinadas , a @ConditionalOnBean
diferencia de las anotaciones, inician la configuración cuando no hay ningún Bean especificado en el contenedor.
9 、 @ ConditionalOnClass
Combinación de @Conditional
anotaciones, la configuración se activa cuando hay una Clase especificada en el contenedor.
10 、 @ ConditionalOnMissingClass
Las @Conditional
anotaciones combinadas , a @ConditionalOnMissingClass
diferencia de las anotaciones, permiten la configuración solo cuando no hay una Clase especificada en el contenedor.
11 、 @ ConditionalOnWebApplication
@Conditional
Notas de combinación , el tipo de proyecto actual es proyecto WEB para iniciar la configuración.
El proyecto actual tiene los siguientes 3 tipos.
enum Type {
/**
* Any web application will match.
*/
ANY,
/**
* Only servlet-based web application will match.
*/
SERVLET,
/**
* Only reactive-based web application will match.
*/
REACTIVE
}
12 、 @ ConditionalOnNotWebApplication
Combinación de @Conditional
anotaciones, a @ConditionalOnWebApplication
diferencia de las anotaciones, la configuración se inicia solo cuando el tipo de proyecto actual no es un proyecto WEB.
13 、 @ ConditionalOnProperty
@Conditional
Anotación de combinación , cuando el atributo especificado tiene el valor especificado, se abre la configuración.
14 、 @ ConditionalOnExpression
Combinación de @Conditional
anotaciones, la configuración solo se habilita cuando la expresión SpEL es verdadera.
15 、 @ ConditionalOnJava
Combinación de @Conditional
anotaciones, cuando la JVM de Java en ejecución está en el rango de versión especificado, la configuración está activada.
16 、 @ ConditionalOnResource
Combinaciones de @Conditional
anotaciones, cuando hay un recurso especificado en la ruta de clase, se abre la configuración.
17 、 @ ConditionalOnJndi
Combinación de @Conditional
anotaciones, la configuración solo se abre cuando existe el JNDI especificado.
18 、 @ ConditionalOnCloudPlatform
Combinación de @Conditional
anotaciones, la configuración solo se habilita cuando se activa la plataforma en la nube especificada.
19 、 @ ConditionalOnSingleCandidate
@Conditional
Anotación combinada , cuando la clase especificada tiene solo un Bean en el contenedor, o hay varios al mismo tiempo pero es la primera opción, la configuración está activada.
20 、 @ ConfigurationProperties
Se utiliza para cargar configuraciones adicionales (como archivos .properties), que se pueden utilizar en @Configuration
clases de @Bean
anotación o métodos de anotación.
21 、 @ EnableConfigurationProperties
Generalmente se @ConfigurationProperties
usa junto con anotaciones para habilitar el soporte para @ConfigurationProperties
beans de configuración de anotaciones.
22 、 @ AutoConfigureAfter
Usado en la clase de configuración automática, significa que la clase de configuración automática debe configurarse después de configurar la clase de configuración automática especificada por otros.
Por ejemplo, la clase de configuración automática de Mybatis debe ser posterior a la clase de configuración automática de la fuente de datos.
@AutoConfigureAfter(DataSourceAutoConfiguration.class)
public class MybatisAutoConfiguration {
23 、 @ AutoConfigureBefore
Esto es @AutoConfigureAfter
contrario al uso de anotaciones, lo que significa que la clase de configuración automática debe configurarse antes que la clase de configuración automática que se especifica de otro modo.
24 、 @ Importar
Esta es una nueva anotación agregada por Spring 3.0, que se usa para importar una o más @Configuration
clases modificadas por anotaciones, que se usan en Spring Boot.
25 、 @ ImportResource
Esta es una nueva anotación agregada por Spring 3.0 para importar uno o más archivos de configuración de Spring. Esto es muy útil para proyectos antiguos compatibles con Spring Boot, porque algunas configuraciones no se pueden configurar en forma de Java Config y solo se pueden importar usando esta anotación.