SpringBoot常⽤注解及其作⽤
@SpringBootApplication,替代@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan
@ImportAutoConfiguration,导⼊配置类,⼀般做测试的时候⽤,正常优先使⽤@EnableAutoConfiguration
@SpringBootConfiguration,替代@Configuration
@ImportResource,将资源导⼊容器中
@PropertySource,导⼊properties⽂件
@PropertySources,@PropertySource的集合
@Role,bean⾓⾊定义ROLE_APPLICATION(默认值)、ROLE_SUPPORT(辅助⾓⾊)、ROLE_INFRASTRUCTURE(后台⾓⾊,⽤户⽆感)
@Scope,指定bean的作⽤域,默认singleton,其他包括prototype、request、session、globalSession
@Lazy,使bean懒加载,取消bean预初始化。⽤法:bean注册的地⽅加上@Lazy和⽤的地⽅加上@Lazy
@Primary,⾃动装配时当出现多个Bean候选者时,被注解为@Primary的Bean将作为⾸选者,否则将抛出 异常
@Profile,指定bean在哪个环境被激活
@DependsOn,依赖的bean注册完成,才注册当前类,依赖bean不存在会报错。⽤于控制bean加载的顺序
@PostConstruct,bean的属性都注⼊完之后,执⾏注解标注的⽅法进⾏初始化⼯作
@Autowired, 默认按类型装配,如果我们想使⽤按名称装配,可以结合@Qualifier注解⼀起使⽤
@Lookup,根据⽅法返回的类型,去容器中捞出对应的bean。适合单例作⽤域引⽤⾮单例的情况。
@Qualifier,申明bean名字,且可以按bean名字加载bean
@Required,检查bean的属性setXXX()⽅法,要求属性在配置阶段必须已配置
@Value,值注⼊,@Value("${xxx}")注⼊配置⽂件中的值;@Value("#{xxx}")⽀持spel,可注⼊bean、常量等
@SpringBootConfiguration,包装@Configuration
@Description,添加bean的⽂字描述
@EnableAspectJAutoProxy,启动AspectJ⾃动代理
@EnableLoadTimeWeaving,启⽤类加载器动态增强功能,使⽤Instrumentation实现
@AutoConfigurationPackage,包含该注解的package会被AutoConfigurationPackages注册
@AutoConfigureBefore,在指定配置类初始化前加载springboot框架的作用
@AutoConfigureAfter,在指定配置类初始化后加载
@AutoConfigureOrder,指定配置类初始化顺序,越⼩初始化越早
组件注册
@ComponentScans,@ComponentScan集合
@ComponentScan,扫描启动类⽬录下的所有符合条件的Bean,并注⼊容器
@Component,泛指组件,当组件不好归类的时候,我们可以使⽤这个注解进⾏标注
@Controller,⽤于标注控制层组件
@Repository,⽤于标注数据访问组件,即DAO组件
@Service,⽤于标注业务层组件
@Configuration,表名类⾥的包含@Bean注解标注的⽅法
@Bean,⽤在@Configuration和@Component注解下的类⾥⾯的⽅法上。@Configuration类⾥⾯,@Bean注解的⽅法被类中其他⽅法调⽤时,会注⼊bean⽽不会执⾏⽅法本⾝;@Component类⾥⾯,@Bean注解的⽅法被类中其他⽅法调⽤时,会执⾏⽅法本⾝,不会注⼊bean;被注解的⽅法如果是静态(static),bean的注册时间可能⽐所在类的注册时间早。
@EnableAutoConfiguration,开启⾃动注册配置⽂件,例如会去META-INF/spring.factories需要⾃动转载的类
@Import,将class导⼊容器中
选择器
@Conditional,当指定的条件都满⾜时,组件才被注册
@ConditionalOnBean,指定bean在上下⽂中时,才注册当前bean。⽤在⽅法上,则默认依赖类为⽅法的返回类型
@ConditionalOnClass,指定类在classpath上时,才初始化当前bean。⽤在⽅法上,则默认依赖类为⽅法的返回类型
@ConditionalOnCloudPlatform,在指定云平台才注册配置
@ConditionalOnExpression,指定spel为true时注册配置
@ConditionalOnJava,在指定java版本时注册配置
@ConditionalOnJndi
@ConditionalOnMissingBean,指定bean不在上下⽂中时,才初始化当前bean。⽤在⽅法上,则默认依赖类为⽅法的返回类型
@ConditionalOnMissingClass,指定类不在classpath上时,才初始化当前bean。⽤在⽅法上,则默认依赖类为⽅法的返回类型
@ConditionalOnNotWebApplication,不是在web环境才注册配置
@ConditionalOnProperty,配置⽂件中的值与指定值是否相等,相等才注册配置
@ConditionalOnResource,指定resources都在classpath上才注册配置
@ConditionalOnSingleCandidate,上下⽂中只有⼀个候选者bean时才注册配置
@ConditionalOnWebApplication,是在web环境才注册配置
缓存
@EnableCaching,开启缓存配置,⽀持⼦类代理或者AspectJ增强
@CacheConfig,在⼀个类下,提供公共缓存配置
@Cacheable,放着⽅法和类上,缓存⽅法或类下所有⽅法的返回值
@CachePut,每次先执⾏⽅法,再将结果放⼊缓存
@CacheEvict,删除缓存
@Caching,可以配置@Cacheable、@CachePut、@CacheEvict
定时器
@EnableScheduling,开启定时任务功能
@Scheduled,按指定执⾏周期执⾏⽅法
@Schedules,包含多个@Scheduled,可同时运⾏多个周期配置
@EnableAsync,开启⽅法异步执⾏的能⼒,通过@Async或者⾃定义注解到需要异步执⾏的⽅法。通过实现AsyncConfigurer接⼝的getAsyncExecutor()和getAsyncUncaughtExceptionHandler()⽅法⾃定义Executor和异常处理。
@Async,标记⽅法为异步线程中执⾏
注⼊配置⽂件properties
@EnableConfigurationProperties,启动@ConfigurationProperties功能
@ConfigurationProperties,将properties⽂件⾥的内容,⾃动注⼊bean对应的属性中
@DeprecatedConfigurationProperty,⽤在配置⽂件的getter()⽅法上,标记字段已经过期,并提⽰替换的字段。⼀般给spring-boot-configuration-processor使⽤。
@NestedConfigurationProperty,标记在配置⽂件的字段上,提⽰spring-boot-configuration-processor,配置包含嵌套的配置。spring-configuration-metadata.json 提供配置的元信息,在写properties配置时,会有语法提⽰。在项⽬中引⼊spring-boot-configuration-processor项⽬,会扫描@ConfigurationProperties注解,⾃动⽣成spring-configuration-metadata.json
未理解
@Configurable
@ConfigurationPropertiesBinding,注册属性转换器,做什么⽤?

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。