Spring核心注解

1.Spring核心注解

 

1、Spring核心注解概览:

 Spring底层特别是Spring4跟Spring3最大的区别就是Spring4里面加了特别多的注解,所以从Spring4以后,SpringBoot也就诞生了,所以Spring4以后,要把核心注解都要掌握。

 

1、@Bean  

它是可以标注在一个方法上,并且方法返回的这个对象就会注册到Spring容器中。

 

2、@Primary

同样的这些组件,比如两个方法都返回了数据源DataSource,可以给某一个方法上面标注一个@Primary这样的话,就能够标识这是一个主要组件,那么就默认使用这个标注了@Primary这个方法的组件。

3、@DependsOn

这个是声明组件之间的依赖关系的,比如A要创建,@DependsOn  B跟C,那么就是创建A这个组件的时候,就会把B跟C先提前准备好

4、@Lazy

组件的懒加载,也就是说在用的时候才进行创建,不用的话不创建。因为默认的组件,Spring容器一启动,容器中的所有组件都会进行创建。

5、@Scope

声明组件的作用范围,常用的作用范围是:SCOPE_PROTOTYPE(原型),SCOPE_SINGLETON(单例)

单例就是获取到的东西跟他原本的是一模一样的,独一份的。

而原型就是有一个本体,但你获取的都是这个本体的克隆对象,就跟这个本体不是一个对象,但是内容是一样的。

如果学过原型设计模式和单例设计模式就知道这两者的用途。

6、@Configuration

这个注解在SpringBoot大量使用到,这个注解用来标注一个类,就说明这个类是一个配置类来替换以前的Spring的Xml配置文件。

7、@Component

这个用来编写Spring/WEB应用的时候,标注在一个类上,那么这个类就自动添加到容器中。

8、@Indexed

这个是Spring5.0里面新加入的一个注解,它是一个加速注解,也就是说默认Spring容器一启动的时候,所有的组件才会进行加载创建对象,如果有大量的组件经常要用到,又不想等Spring容器启动的时候才加载并创建对象,那么就可以标注@Indexed 这个注解,这样的话就相当于给组件直接生成相关的class缓存并全部放好,那么以后Spring容器一旦启动就直接能用了,就不用再走整个Spring容器的启动流程了。

9、@Order

这个是组件之间的顺序,设置的数字越小,优先级就会越高,一旦优先级越高就优先创建这个组件。

10、@ComponentScan

这个大家估计都知道了,就是包扫描,可以批量扫描某一个包下的所有组件(该包和下面的子包)。

11、@Conditional

这个在SpringBoot里面的核心注解,他是根据有没有满足相关条件,再来进行组件注入。

12、@Import

这个是用于导入第三方的jar的,如果自己来写注解,那么这些自己写的注解只能标注在自己的类上,但是引入别人开发好的第三方包,并且这个第三方包这个源码在包里面已经压缩好了,所以就可以使用@Import 这个注解来把第三方的包里面的组件导入到容器中。

13、@ImportResource

这个是用于导入以前的Xml配置文件。

 

14、@Profile

这个是在SpringBoot里面的多环境激活。

 

15、@PropertySource

这个是导入外部的properties配置文件

 

16、@PropertySources

跟@PropertySource的组件注解

17、@Autowired

都是组件的装配功能

 

18、@Qualifier

都是组件的装配功能

19、@Value

获取环境变量里面的值或者是获取配置文件中的值 @Value("#{xxx}")  @Value("${xxx}")  

#:可以对象调用方法

$:代表的是一个取值

 

20、@Lookup

这个注解只能标注在方法上,这个注解用于有时候这个单实例组件就想使用原型模式引用另外的原型的组件,使其能够获取不一样的对象。  这个注解标注在方法上以后,它会去容器中找相关组件。

更具体的解释就是:

A是单实例组件,A要使用B这个原型组件,在A获取B还是获取的是单实例的,如果用了这个@Lookup注解,那么A获取B,就是获取的是原型的B。

注意:@Lookup若标注在get()的方法上,使用@Bean的这种方式注册的组件,那么@Lookup这个注解就不不生效。

 

 

 

 

 

  • 2
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱敲代码的小松

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值