您的位置:首页 > 编程语言 > Java开发

Spring学习(3)Spring注入的三种方式

2014-11-29 10:29 423 查看
Spring 注入的3中方式

1) setter注入(重要),也叫设值注入

2) 构造方法(可以忘记)

3) 接口注入(一般不用)


1、set注入
Set注入指的就是在接受注入的类中定义一个Set方法,并在参数中定义需要注入的元素。java类中通过写set方法来实现,bean中通过属性设值property的ref值来进行注入<property name="userDAO"ref="u" />
例如service中有个UserService的类,该类中定义了一个UserDao的对象
UserService.java

public class UserService {
	private UserDAO userDAO; //此处的userDao名称要和beans.xml中的property的名字一样
	public void add(User user) {
		userDAO.save(user);
	}
	public UserDAO getUserDAO() {
		return userDAO;
	}
	public void setUserDAO(UserDAO userDAO) {
		this.userDAO = userDAO;
	}
}


则在spring配置文件beans.xml中只需要作如下配置
beans.xml
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">   <bean id="u" class="com.ynw.dao.impl.UserDAOImpl"/>

  <bean id="userService" class="com.ynw.service.UserService">
  	<property name="userDAO" ref="u" />
  </bean>
</beans>


2、构造注入
构造注入指的就是在接受注入的类中定义一个构造方法,并在参数中定义需要注入的元素。和set注入不一样,他需要写一个构造函数,在构造函数中将bean注入进去,就不需要get、set方法了
UserService.java
public class UserService {
	
	private UserDAO userDAO;  
	public void add(User user) {
		userDAO.save(user);
	}
	public UserService(UserDAO userDAO) {
		super();
		this.userDAO = userDAO;
	}	
}


在beans.xml中也做了相应的变化
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
       xsi:schemaLocation="http://www.springframework.org/schema/beans
           http://www.springframework.org/schema/beans/spring-beans-2.5.xsd">   <bean id="u" class="com.ynw.dao.impl.UserDAOImpl"/>
  <bean id="userService" class="com.ynw.service.UserService">
  	 <constructor-arg>
  	 	<ref bean="u"/>
  	 </constructor-arg>
  </bean>
</beans>


3、接口注入
一般不需要记住!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: