2018-07-29
spring的依賴注入分為三種方式
構(gòu)造器注入和setter注入是依賴注入的兩種主要方式,接口注入是指從別的地方注入的方式。(通過在xml中描述,實(shí)現(xiàn)注入)
一、構(gòu)造器注入
構(gòu)造器注入依賴于構(gòu)造方法的實(shí)現(xiàn),----------構(gòu)造方法可以是有參數(shù)的,也可以是無參數(shù)的 。
在沒有spring之前,我們在大多數(shù)情況下,我們都是通過構(gòu)造方法來創(chuàng)建類對象,
Spring可以采用反射的方式,通過構(gòu)造方法來完成注入,這就是構(gòu)造方法的原理。
1.引入spring的支持
2.通過描述具體的類,構(gòu)造方法和其中的參數(shù),這樣spring就可以通過相應(yīng)的信息用反射的方式創(chuàng)建對象。
3.在test文件中加載spring配置文件的方法
String configLocation ="applicationContext.xml";
ApplicationContext context = new ClassPathXmlApplicationContext(configLocation);
Role role = context.getBean("role", Role.class);
在spring中一切的資源都是bean。
二、spring中最主流的注入方式:setter注入
setter注入利用JAVA Bean規(guī)范所定
注意: 構(gòu)造器注入是通過構(gòu)造方法注入,
setter注入是通過setter方法注入
首先將構(gòu)造方法設(shè)置為無參的構(gòu)造方法,然后利用setter注入為其設(shè)置新的值,
這也是通過java的反射技術(shù)得以實(shí)現(xiàn)的
注意:構(gòu)造器注入和setter注入都是通過java的反射技術(shù)得以實(shí)現(xiàn)的。
1 <!-- 下面是setter注入,需要一個無參的構(gòu)造方法 -->2 <bean id="role1" class="com.pojo.Role" >3 <property name="id" value="124"></property>4 <property name="name" value="張三"></property>5 <property name="age" value="2324"></property>6 </bean>
三、spring依賴注入的第三種方式:接口注入
有時候資源并非來自于自身的系統(tǒng),而是來自于外界,
比如說數(shù)據(jù)庫連接資源完全可以在Tomcat下配置,
然后通過JNDI的方式去獲取它,這樣的數(shù)據(jù)庫連接資源就屬于開發(fā)工程外的資源。