19/7/24/1:09
set注入:
首先你要明白注入一词在spring的意义,为什么要进行注入操作,当我们准备将对象交由spring容器进行管理时,
你需要这个对象的已有属性,具备那些属性值,从而使用注入,将准备交给spring管理的对象的属性进行赋值,叫做注入。
在spring的set注入和构造注入不同层之间注入需要准备什么(例如:service层,dao层)
解答:
1.在set注入中,例如:service需要到dao对象,那么service就需要声明dao的私有变量,
也就是说dao成为了service的一个属性( 正确应该这么说:service中有个属性是 dao),我们在将service交给spring管理时,希望service的 dao属性具备什么具体的值
所以需要生成service中声明的dao属性对应的set方法,这样spring无论是@注解的set注入,还是xml配置文件的set注入
都是将容器中的dao进行注入,(前提dao已经交由spring管理),从而在service交给spring管理时,
service的dao属性具备了我们想要的注入的值。所以注入其实就是在为让我们的对象交给spring管理时所做的准备工作。
构造注入:
2.同上问题,service需要写一个构造方法,构造参数是我们service需要的dao,在进行将service准备交给spring容器管理时
我们需要对构造函数进行赋值,xml的方式是bean里面的property改为constructor-arg,并将需要的构造参数进行注入
注解方式是在service中dao属性上进行注解方式的“值类型”或者“引用类型”的注入在私有变量上进行构造参数的注解注入,
注意:引用类型的注入前提是该引用值已经交由spring管理,(一般的构造注入我都是使用xml方式进行注入,注解方式没有用过,需带确定以上所诉操作是否正确)