@Autowired 作用范围
Posted 方方方方方方
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了@Autowired 作用范围相关的知识,希望对你有一定的参考价值。
一、@AutoWired 可以作用于:构造器、方法、参数、属性
二、作用在方法上
@Component public class Student{ private Book book; public Book getBook() { return book; } //@Autowired 标注在方法上, Spring 容器在创建当前对象的时候,就会调用该方法,完成赋值 //方法使用的参数,自定义类型的的值从容器中获取 @Autowired public void setBook(Book book) { this.book = book; } }
三、作用在构造器上( 如果只用一个有参构造器 @Autowired 可以省略 )
@Component public class Student{ private Book book; //容器启动会默认调用无参构造器,再进行初始化赋值等操作 //@Autowired 加载构造方法上,容器启动的时候,就会调用该构造方法创建对象。构造器要用的参数,都是从容器中获取 @Autowired public Student(Book book) { super(); this.book = book; } public Book getBook() { return book; } public void setBook(Book book) { this.book = book; } }
四、作用在参数上( 效果和作用在方法上 或者 作用在构造器上是一样的 )
@Component public class Student{ private Book book; //容器启动会默认调用无参构造器,再进行初始化赋值等操作 //@Autowired 加载构造方法上,容器启动的时候,就会调用该构造方法创建对象。构造器要用的参数,都是从容器中获取 public Student(@Autowired Book book) { super(); this.book = book; } public Book getBook() { return book; } public void setBook(Book book) { this.book = book; } }
五、作用在属性上面
@Autowired private Student student;
以上是关于@Autowired 作用范围的主要内容,如果未能解决你的问题,请参考以下文章
初识Spring源码 -- doResolveDependency | findAutowireCandidates | @Order@Priority调用排序 | @Autowired注入(代码片段