众所周知,SpringBoot是Pivotal团队的一个全新框架,旨在简化java中Spring应用程序的开发。该框架采用了一种固定的配置方法,使开发人员无需定义样板配置。它提供了代码和注释配置的默认值,可以在短时间内快速启动新的Spring项目。
Springboot在org.springframework.boot.autoconfigure和org.springframework.boot.autoconfigure.condition包中提供了许多自动配置注释。
让我们列出这些包中的所有注释:
1.
SpringBootApplicationSpringBootApplication注释表示一个配置类,它声明一个或多个Bean方法,并触发自动配置和组件扫描。该SpringBootApplication注释等同采用Configuration,EnableAutoConfiguration和ComponentScan使用默认的属性。示例:我们使用此注释来标记SpringBoot应用程序的主类:
2.
EnableAutoConfiguration该
EnableAutoConfiguration注解根据您添加的jar依赖,让SpringBoot去“猜”出你想怎么配置Spring。例如配置Tomcat和SpringMVC时,我们将spring-boot-starter-web添加到类路径,SpringBoot会假定您正在开发Web应用程序并相应地设置Spring。示例:让我们将
EnableAutoConfiguration注释添加到Application类或Main中以启用自动配置功能:3.
ConditionalOnClass和ConditionalOnMissingClass这两个注释应用在类的条件上,它们会基于特定类的存在与否而自动被加载。
示例:如果注释参数中的类存在或者不存在,Spring将仅使用标记的自动配置的bean:
4.
ConditionalOnBean和ConditionalOnMissingBean这两个注解会基于特定Bean的存在与否而自动被加载。
ConditionalOnBean示例:当我们想要根据特定bean的存在与否来定义条件时使用:ConditionalOnMissingBean示例:当放置在Bean方法上时,目标类型默认为方法的返回类型,如下所示:5.
ConditionalOnProperty该注解会基于Spring的配置环境来加载配置。
示例:使用此注释,我们可以对属性的值进行条件判断:
6.
ConditionalOnResource该注解会基于特定的资源存在时加载:
7.
ConditionalOnWebApplication和ConditionalOnNotWebApplication这两个注解会基于是否是Web应用程序来加载配置,而这个Web应用程序是指使用了SpringWebApplicationContext,定义了sessionscope,或者具有StandardServletEnvironment。
示例:我们可以根据当前应用程序是否是Web应用程序创建条件:
8.
ConditionalExpression我们可以在更复杂的情况下使用此注释,当SpEL表达式值为true时,Spring将使用标记的定义:
9.
Conditional对于更复杂的条件,我们可以创建一个评估自定义条件的类。我们通过
Conditional注解来告诉Spring使用这个自定义条件:以上是SpringBoot中的几种不同的注解,如有错误,请批评指正,也欢迎点赞和转发。