Spring 中的一些关于bean的注解

不知道理解正确不正确,只用于记录

@Component 和 @Bean 的区别
1.作用对象不同:

@Component 注解作用于类,而 @Bean 注解作用于方法

2.@Component 通常是通过路径扫描来自动侦测以及自动装配到 Spring 容器中(我们可以使用 @ComponentScan 注解定义要扫描的路径从中找出标识了需要装配的类自动装配到 Spring 的 bean 容器中)。@Bean 注解通常是我们在标有该注解的方法中定义产生这个 bean,@Bean 告诉了 Spring 这是某个类的实例,当我们需要用它的时候还给我。

3.@Bean 注解比 @Component 注解的自定义性更强,而且很多地方我们只能通过 @Bean 注解来注册 bean。比如当我们引用第三方库中的类需要装配到 Spring 容器时,只能通过 @Bean 来实现。

@Configuration :配置类注解
这个注解相当于以前spring的xml配置文件,作用在类上面,此类中可以添加一些bean实例,被springIOC管理,可以使用 @ComponentScan 注解自行配置组件扫描,类似于以前xml中的<bean>标签

Autowire 和 @Resource 的区别
1.@Autowire 和 @Resource都可以用来装配bean,都可以用于字段或setter方法。

2.@Autowire 默认按类型装配

默认情况下必须要求依赖对象必须存在,如果要允许 null 值,可以设置它的 required 属性为 false

3.@Resource 默认按名称装配

当找不到与名称匹配的 bean 时才按照类型进行装配。名称可以通过 name 属性指定,如果没有指定 name 属性,当注解写在字段上时,默认取字段名,当注解写在 setter 方法上时,默认取属性名进行装配。

@EnableConfigurationProperties

@EnableConfigurationProperties注解的作用是:
使使用 @ConfigurationProperties 注解的类生效.

一般来说获取配置文件会使用 @ConfigurationProperties 加@Compoment,如果只使用了@ConfigurationProperties,而没有使用@Component,那么在IOC容器中是获取不到properties 配置文件转化的bean。 @EnableConfigurationProperties 相当于把使用 @ConfigurationProperties 的类进行了一次注入,这样spring在启动项会少一个bean实例,变相类似于按需加载。

@ConditionalOnBean
如果容器中加载了某个bean 那么加载当前注解的bean,反之则返回空

@ControllerAdvice :处理全局异常利器
默认情况下,@ControllerAdvice 中的方法应用于全局所有的 Controller。而使用选择器 annotations(),basePackageClasses() 和 basePackages() (或其别名value())来定义更小范围的目标 Controller 子集.
@ControllerAdvice 最常使用的是结合 @ExceptionHandler 用于全局异常的处理,可以给前端更舒适的数据返回。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值