Autowired注解起什么作用呢?

Autowired注解起什么作用呢?

转自:

http://www.java265.com/JavaCourse/202205/3427.html

下文笔者将讲述Autowired注解的功能简介说明,如下所示:

Autowired注解的功能:
     用于依赖注入,最常见的是属性注入,构造函数的参数注入
下文笔者将详细讲述各种注入的详细说明,如下所示:

构造函数上使用@Autowired注解

1.当在构造函数上加入@Autowired注解时,Spring容器初始化实例时,会调用此构造函数,进行实例化 
2.当构造方法上带有了@Autowired注解,但构造函数是使用private修饰的,此时类也可以被实例化
3.当一个对象只有一个构造函数时,Spring实例化对象会默认选择这个构造方法进行实例化,无需加@Autowired注解
   当多个构造方法存在时,才用加@Autowired注解,告诉Spring选择哪个构造方法进行实例化
4.多个构造函数上使用@Autowired,此时只能允许一个required属性为true,其他的@Autowired直接的required属性必须设置为false
5.实例化带参数的构造方法时,Spring有先实例化参数对象中的其他值(这是spring循环依赖处理的问题)

注意事项:
    通常当一个类中有多个构造函数时,我们可选择一个构造方法上加@Autowired注解,spring则会使用此构造函数进行实例化对象

类属性上使用@Autowired注解

类的属性无论是private ,public ,Spring在构造bean的时候,都会将起属性进行注入

方法上使用Autowired注解

当在方法上加入Autowired注解,则Spring会自动运行此方法
注意事项:
    在BeanPostProcessor类和BeanFactoryPostProcessor类中无法使用@Autowired注解
     因为@Autowired注解的收集工作就是由BeanPostProcessor类来完成的
    且BeanFactoryPostProcessor类的调用时机先于BeanPostProcessor类。所以这两个类无法使用@Autowired注解。
hmoban主题是根据ripro二开的主题,极致后台体验,无插件,集成会员系统
自学咖网 » Autowired注解起什么作用呢?