spring注入对象类型属性(重点)
2018-05-26 本文已影响26人
DouDouZH
一、实现过程
(1)在service里面把dao作为类属性
(2)生成dao类型属性的set方法
(3)在配置文件完成注入关系
![](https://img.haomeiwen.com/i7900186/52d04139f532ae22.png)
二、代码
service层 UserService.java
package work.zhangdoudou.service;
import work.zhangdoudou.dao.UserDao;
public class UserService {
//1定义一个dao类型的属性
private UserDao userDao;
//2生成set方法
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void add(){
System.out.println("service-------");
//在service里面调用dao类对象,才能调用dao里面的方法
userDao.add();
}
}
dao层 UserDao.java
package work.zhangdoudou.dao;
public class UserDao {
public void add(){
System.out.println("dao--------");
}
}
配置文件applicationContext.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-3.0.xsd">
<!-- 注入对象类型属性 -->
<!-- 配置service和dao对象 -->
<bean id="userDao" class="work.zhangdoudou.dao.UserDao"></bean>
<bean id="userService" class="work.zhangdoudou.service.UserService">
<!-- 注入dao对象,不写value属性,现在是对象写ref
name:写service类里面属性名称
ref:写dao配置的id名称
-->
<property name="userDao" ref="userDao"></property>
</bean>
</beans>
测试类TestUser.java
package work.zhangdoudou.test;
import static org.junit.Assert.*;
import org.junit.Test;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import work.zhangdoudou.service.UserService;
public class TestUser {
@Test
public void test() {
ApplicationContext context=new ClassPathXmlApplicationContext("applicationContext.xml");
UserService userService= (UserService)context.getBean("userService");
userService.add();
}
}
三、运行结果
![](https://img.haomeiwen.com/i7900186/83dcf4dd4bb443f5.png)