zl程序教程

您现在的位置是:首页 >  其他

当前栏目

依赖注入(DI注入)

2023-04-18 15:23:58 时间

向一个类中传递数据的方法有几种

(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 }
setter注入-引用类型

在配置中使用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 }
setter注入-简单类型

配置中使用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 }
View Code

在配置中使用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>
View Code