spring-boot 常见注解

1. @Configuration
  • 相当于之前xml文件
  • 标在类型上,配合@bean注解定义bean
  • 其标注的类也会作为bean,被添加的容器中

属性说明

属性说明
valuebean名称
proxyBeanMethods指定由@Bean注解定义的对象是否需要cglib代理,如果不代理,那么在调用@Bean注解标注的方法时返回的不是容器中的bean,只是一个普通的方法调用new 了一个新对象。
2. @Bean
  • 定义容器中的bean,会被spring加入容器

属性说明

属性说明
value指定的bean 名称
name指定的bean 名称
autowireCandidate是否作为候选bean,存在多个相同类型的bean时,优先使用非候选bean
initMethod初始化方法名
destroyMethodbean在被垃圾回收时调用的方法名
3. @DependsOn
  • 该注解标注的bean,依赖指定bean,即依赖bean必须先创建。不是强依赖(字段属性注入,字段构造函数注入)。

属性说明

属性说明
value依赖的bean名称
4. @ComponentScan
  • 扫描指定包及其子包下的类

属性说明

属性说明
value不搜索哪些类
nameGenerator名称定义class,用于定义bean名称
scopeResolverbean所属域的解析器
basePackages指定从哪些包开始
basePackageClasses指定从哪些类所在的包开始
useDefaultFilters是否使用默认过滤器,过滤bean,默认搜索这些注解标注的类 @Component @Repository @Service @Controller
includeFilters包含过滤器,满足过滤条件的bean才会被添加到容器
excludeFilters忽略过滤器,满足过滤条件的bean不会被添加到容器
lazyInit指定bean是否需要懒加载
5. @ConditionalOnBean
  • 如果容器中存在满足指定条件的bean,则加载被标注的bean。

属性说明

属性说明
value指定的bean class
type指定的bean 类型名称
annotation指定的bean 要包含的注解
name指定的bean 名称
search是否搜寻父容器或所有祖先容器
parameterizedContainer指定的bean是该属性值(一个参数化类型class)的参数
6. @ConditionalOnMissingBean
  • 如果容器中不存在满足指定条件的bean,则加载被标注的bean。

属性说明

属性说明
value指定的bean class
type指定的bean 类型名称
annotation指定的bean 要包含的注解
name指定的bean 名称
search是否搜寻父容器或所有祖先容器
parameterizedContainer指定的bean是该属性值(一个参数化类型class)的参数
ignored不匹配指定的class
ignoredType不匹配指定的class的类型名称
5. @ConditionalOnClass
  • 如果类路径中存在满足指定条件的class,则加载被标注的bean。

属性说明

属性说明
value指定的class 类型
name指定的class 名称
6. @ConditionalOnMissingClass
  • 如果类路径中不存在满足指定条件的class,则加载被标注的bean。

属性说明

属性说明
value指定的bean class
7. @ConditionalOnProperty
  • 如果容器存在满足指定条件的属性,则加载被标注的bean。

属性说明

属性说明
value属性名
prefix属性名前缀
name属性名
havingValue指定属性值
matchIfMissing如果容器中不存在该属性,是否匹配,默认不匹配
7. @ConditionalOnResource
  • 如果类路径中存在满足指定条件的资源(文件等),则加载被标注的bean。

属性说明

属性说明
value资源路径
8. @ConditionalOnSingleCandidate
  • 如果容器中只有一个指定类型的主bean或候选bean,则加载被标注的bean。

属性说明

属性说明
valuebean 的class
typebean 的class名称
search是否搜寻父容器或所有祖先容器
9. @Import
  • 导入bean,三种方式。
  • ImportSelector实现类:返回的是类全路径名
  • ImportBeanDefinitionRegistrar实现类:直接注册beanDefinition
  • 直接当做@Configuration注解的类处理

属性说明

属性说明
value可以是三种class,分别为ImportSelector实现类,ImportBeanDefinitionRegistrar实现类,标注@Configuration注解的类
10. @ImportResource
  • 一般用于引入xml文件中的bean

属性说明

属性说明
value文件位置
locations文件位置,可以时多个
reader用于从文件中解析并读取bean
11. @Lazy
  • 是否懒加载bean

属性说明

属性说明
value是否懒加载bean
12. @Primary
  • 标记bean为主bean,如果有同类型多个相同bean,该bean被注入。
13. @Profile
  • 如果环境匹配才会加载其标注的bean
  • 一般环境分为三种,开发(dev),测试(test),生产(prod)

属性说明

属性说明
value环境名称
13. @PropertySource
  • 读取配置文件并返回PropertySource实现对象,交由spring使用

属性说明

属性说明
namePropertySource实现对象的名称
value配置文件位置
ignoreResourceNotFound是否忽略不存在的配置文件
encoding配置文件使用的编码
factory读取并解析配置文件,返回PropertySource实现对象
14. @Role
  • 定义bean的角色
  • 如果标注在@Configuration标注的类上,只影响@Configuration标注的类(也会被当做bean)本身,不影响其中@Bean定义
  • 角色有三种
    • ROLE_APPLICATION:默认值
    • ROLE_INFRASTRUCTURE:三方框架内部使用的bean,对于框架使用者来说没有意义
    • ROLE_SUPPORT:

属性说明

属性说明
value角色名称
15. @Scope
  • 定义bean的生命周期范围,常见的几种
    • SCOPE_PROTOTYPE:每次获取都是新的一个
    • SCOPE_SINGLETON:每次获取都是同一个
    • SCOPE_REQUEST:每个新的请求期间都是同一个
    • SCOPE_SESSION:每个session期间都是同一个

属性说明

属性说明
valuescope名称
scopeNamescope名称
proxyModebean初始化依赖了还没有生成的某个bean,比如SCOPE_REQUEST在请求期间才会生成的bean,那么可以为这个依赖先生成一个代理对象
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值