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,在指定配置类初始化前加载
@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,注册属性转换器,做什么用?

Spring Boot注解Spring Boot框架中用于简化配置和开发的一个重要特性。通过注解,开发者可以无需编写大量的XML配置文件,而是通过简单的标记来定义和配置beans,以及实现各种功能。以下是一些常用的Spring Boot注解及其作用: 1. `@SpringBootApplication`:这个注解Spring Boot应用的核心注解,它是一个组合注解,包含了`@Configuration`、`@EnableAutoConfiguration`和`@ComponentScan`。它告诉Spring Boot根据添加的jar依赖猜测如何配置Spring。通常用于主类上,标识这是一个Spring Boot应用的入口。 2. `@RestController`:这个注解用于标注一个类是RESTful风格的控制器,相当于`@Controller`和`@ResponseBody`的结合。使用它可以简化RESTful服务的开发,每个方法的返回值都会自动写入到HTTP响应体中。 3. `@RequestMapping`:这个注解用于将HTTP请求映射到特定的处理程序方法。它可以用在类和方法上,定义类级别的请求路径,或者与方法一起定义方法级别的路径。 4. `@ResponseBody`:该注解用于指示方法的返回值应该直接写入HTTP响应体。通常与Spring MVC的`@Controller`一起使用。 5. `@Autowired`:该注解用于自动注入Spring容器管理的bean。它可以用在字段、setter方法或者构造器上,Spring会根据类型或者名称自动寻找匹配的bean进行注入。 6. `@Service`:这个注解用于标注一个业务层组件的类,表明该类包含业务逻辑。 7. `@Repository`:该注解用于标注数据访问组件,即DAO组件。它可以让Spring对数据访问异常进行转换。 8. `@Configuration`:用于标注一个类作为Spring应用中的配置类。它允许应用内定义一个或多个bean,并由Spring的容器管理。 9. `@Value`:该注解用于注入外部属性文件中的值。通常与Spring的`@PropertySource`注解一起使用,将属性文件中定义的属性值注入到字段中。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值