依赖注入(DI注入)
向一个类中传递数据的方法有几种
(1)set方法
(2)构造方法
依赖注入描述了在容器中建立bean与bean之间依赖关系的过程,bean分为两类
(1)引用类型(类)
(2)简单类型(基本数据类型与String)
依赖注入方式
(1)setter注入
(2)构造器注入
代码实现
①setter注入-引用类型
在bean中定义引用类型属性并提供可访问的set方法
1 public class BookServiceImpl implements BookService { 2 private BookDao bookDao; 3 4 public void setBookDao(BookDao bookDao) { 5 this.bookDao = bookDao; 6 } 7 }
在配置中使用property小钱ref属性注入引用类型对象
1 <bean id="bookService" class="org.wcx.service.impl.BookServiceImpl"> 2 <property name="bookDao " ref="bookDao"/> 3 </bean> 4 <bean id="bookDao" class="org.wcx.service.impl.BookDaoImpl"/>
②setter注入-简单类型
在bean中定义简单类型并提供可访问的set方法
1 public class BookServiceImpl implements BookService { 2 3 private int num; 4 private String string; 5 6 public void setNum(int num) { 7 this.num = num; 8 } 9 10 public void setString(String string) { 11 this.string = string; 12 } 13 14 }
配置中使用property标签value属性注入简单类型属性
1 <bean id="bookService" class="org.wcx.service.impl.BookServiceImpl"> 2 <property name="num" value="10"/> 3 <property name="string" value="sss"/> 4 </bean>
③构造器注入-引用类型
在bean中定义引用类型并提供可方位的构造方法
1 public class BookServiceImpl implements BookService { 2 private BookDao bookDao; 3 4 public BookServiceImpl(BookDao bookDao) { 5 this.bookDao = bookDao; 6 } 7 }
在配置中使用construction-arg标签ref属性注入引用型对象
1 <bean id="bookService" class="org.wcx.service.impl.BookServiceImpl"> 2 <constructor-arg name="bookDao" ref="bookDao" /> 3 <!-- name是构造函数里形参的名字--> 4 </bean> 5 <bean id="bookDao" class="org.wcx.service.impl.BookDaoImpl"/>
④构造器注入-简单类型
在bean中定义简单类型属性并提供可访问的构造方法
1 public class BookServiceImpl implements BookService { 2 private int num; 3 private String s; 4 5 public BookServiceImpl(int num, String s) { 6 this.num = num; 7 this.s = s; 8 } 9 10 }
在配置中使用construction-arg标签value属性注入简单型属性
<bean id="bookService" class="org.wcx.service.impl.BookServiceImpl">
<constructor-arg name="num" value="10"/>
<constructor-arg name="s" value="sss"/>
</bean>

浙公网安备 33010602011771号