Libros de análisis del código fuente de Springboot
1, @ aplicación Spring Boot
Esta es la anotación principal de Spring Boot. Se utiliza en la clase principal de Spring Boot para identificar esta aplicación. de Spring Boot, utilizado para habilitar varias capacidades de Spring Boot.
De hecho, esta anotación es una combinación de tres anotaciones: @SpringBootConfiguration, @EnableAutoConfiguration y @ComponentScan, y también se puede usar para reemplazar la anotación @SpringBootApplication.
2. @Enable configuración automática
Permitir que Spring Boot configure las anotaciones automáticamente. Cuando esta anotación está habilitada, Spring Boot puede configurar Spring beans en función de paquetes o clases en el classpath actual.
Por ejemplo, si existe el paquete JAR Mybatis en la ruta de clase actual, la anotación MybatisAutoConfiguration puede configurar cada Spring Bean de Mybatis de acuerdo con los parámetros relevantes.
3. @Configuration
Esta es una anotación agregada por Spring 3.0 para reemplazar el archivo de configuración applicationContext.xml. Todo lo que se puede hacer en este archivo de configuración se puede registrar a través de la clase a la que pertenece esta anotación.
4. @SpringBootConfiguration
Esta anotación es una variante de la anotación @Configuration. Solo se utiliza para modificar la configuración de Spring Boot y también puede ser beneficiosa para la posterior expansión de. Bota de primavera.
5. @Component Scan
Esta es una anotación agregada por Spring 3.1. Se utiliza para reemplazar la configuración de escaneo de componentes en el archivo de configuración e iniciar el escaneo de componentes. escanea automáticamente la ruta del paquete. La anotación @Component registra la instancia del bean con el contexto.
Para obtener detalles sobre las primeras cinco anotaciones, consulte este artículo "Explicación detallada de las tres anotaciones principales de Spring Boot".
6. @conditional
Esta es una nueva anotación en Spring 4.0, que se utiliza para identificar un Spring Bean o un archivo de configuración. La configuración no se abrirá hasta que se cumplan las condiciones especificadas.
7. @ConditionalOnBean
Combinado con la anotación @Conditional, la configuración se abrirá solo cuando haya un Bean específico en el contenedor.
8. @ConditionalOnMissingBean
A diferencia de la anotación @conditional Bean, la combinación de la anotación @Conditional abrirá la configuración cuando no haya ningún Bean especificado en el contenedor.
9. @ConditionalOnClass
Combine la anotación @Conditional para abrir la configuración solo cuando haya una clase específica en el contenedor.
10, @conditionalomissingclass
A diferencia de la anotación @ConditionalOnMissingClass, la anotación @Conditional combinada abre la configuración cuando no hay una clase especificada en el contenedor.
11, @ConditionalOnWebApplication
Anotación @conditional combinada, el tipo de proyecto actual es una configuración abierta de proyecto WEB.
Actualmente existen tres tipos de proyectos.
Tipo de enumeración {
}
12, una combinación de la anotación @ConditionalOnNotWebApplication
@Conditional, lo opuesto a la anotación @ConditionalOnWebApplication, only La configuración solo se abre cuando el tipo de proyecto actual no es un proyecto WEB.
13, @ propiedad condicional
Combina la anotación @Conditional para abrir el diseño solo cuando la propiedad especificada tiene el valor especificado.
14, @ expresión condicional
Combina la anotación @Conditional y abre la configuración cuando la expresión SpEL es verdadera.
15, @ConditionalOnJava
Cuando la JVM Java en ejecución esté dentro del rango de versión especificado, combine la anotación @Conditional para abrir la configuración.
16, @ recurso condicional
Combinado con la anotación @Conditional, la configuración solo se abrirá cuando el recurso especificado esté en la ruta de clase.
17, @ConditionalOnJndi
Combina la anotación @Conditional para abrir la configuración cuando existe el JNDI especificado.
18, @ conditionalonludplatform
Combinado con la anotación @Conditional, la configuración solo se abrirá cuando se active la plataforma en la nube especificada.
19, @ conditionalonsingcandidate
Combinado con la anotación @Conditional para abrir la configuración de la clase especificada cuando solo hay un Bean en el contenedor o hay varios Beans al mismo tiempo. tiempo, pero es preferible.
20. El atributo @Configuration
se usa para cargar configuraciones adicionales (como archivos de propiedades), que se pueden usar en clases anotadas con @Configuration o métodos anotados con @Bean.
21, @EnableConfigurationProperties
Por lo general, debe usarse junto con la anotación @ConfigurationProperties para admitir los beans de configuración de la anotación @ConfigurationProperties.
22. @Después de la configuración automática
Se utiliza para clases de configuración automática, lo que indica que la clase de configuración automática debe configurarse después de otra clase de configuración automática especificada.
Por ejemplo, la clase de configuración automática de Mybatis debe estar después de la clase de configuración automática de la fuente de datos.
23. Antes de @AutoConfiguration
Esto es contrario al uso de la anotación @AutoConfigureAfter, lo que indica que la clase de configuración automática debe configurarse antes que otra clase de configuración automática especificada.
24, @import
Esta es una nueva anotación en Spring 3.0, que se usa para importar una o más clases modificadas por la anotación @Configuration. Esta anotación se usa ampliamente en Spring. Uso de botas.
25, @ImportResource
Esta es una nueva anotación agregada por Spring 3.0, utilizada para importar uno o más archivos de configuración de Spring. Esto es útil para proyectos heredados compatibles con Spring Boot, ya que algunas configuraciones solo se pueden importar con esta anotación porque no se pueden configurar en forma de Java Config.
Los amigos ingenieros de Java pueden unirse a Java High Concurrency: 957734884, que proporciona materiales gratuitos de aprendizaje de arquitectura Java (que incluyen alta disponibilidad, alta concurrencia, alto rendimiento y distribución, ajuste del rendimiento de Jvm, código fuente de Spring, MyBatis, Netty, Redis, Kafka, MySQL, Zookeeper, Tomcat, Docker, Dubbo, Nginx y otros puntos de conocimiento) haga un uso razonable de cada minuto de su tiempo para aprender y mejorar, y no use "sin tiempo" para encubrir su pereza mental! ¡Trabaja duro mientras eres joven y date una explicación en el futuro!