Spring IoC实现解耦合
1 public class UserDaoImpl implements UserDao{ 4 @Override 5 public void save(User user) { 6 // TODO Auto-generated method stub 7 System.out.println("保存用户信息到数据库");
1 public class UserServiceImpl implements UserService{ 2 private UserDao userDao; 3 4 public UserDao getUserDao() { 5 return userDao; 6 } 7 //后面要调用该方法 8 public void setUserDao(UserDao userDao) { 9 this.userDao = userDao; 10 } 11 @Override 12 public void addUser(User user) { 13 // TODO Auto-generated method stub 14 userDao.save(user); 15 } 16 }
测试类 获取Bean的实例,调用功能方法
1 @Test 2 public void test() { 3 ApplicationContext context = new ClassPathXmlApplicationContext
("applicationContext.xml"); 4 UserServiceImpl service = (UserServiceImpl)context.getBean("userServiceImpl");//此处是xml中id 5 User user = (User) context.getBean("user"); 6 user.setUsername("admin"); 7 user.setPassword("123"); 8 9 service.addUser(user); 10 }
xml文件 配置文件,给Service对应的Bean注入Dao对象
1 <?xml version="1.0" encoding="UTF-8"?> 2 <beans xmlns="http://www.springframework.org/schema/beans" 3 xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" 4 xsi:schemaLocation="http://www.springframework.org/schema/beans 5 http://www.springframework.org/schema/beans/spring-beans-3.1.xsd "> 6 7 <!-- 定义userDaoImpl对象,并指定id为userDaoImpl --> 8 <bean id="userDaoImpl" class="cn.bdqn.biz.dao.impl.UserDaoImpl" /> 9 <!-- 定义User对象,并指定id为user --> 10 <bean id="user" class="cn.bdqn.biz.pojo.User" /> 11 12 <!-- 定义UserServiceImpl对象,并指定id为userServiceImpl --> 13 <bean id="userServiceImpl" class="cn.bdqn.biz.service.impl.UserServiceImpl"> 14 <!--为userServiceImpl的userDao属性赋值,需要注意的是,这里要调用setUserDao()方法 --> 15 <property name="userDao"> 16 <!-- 引用id为userDao的对象为userServiceImpl的userDao属性赋值 --> 17 <ref bean="userDaoImpl" /> 18 </property> 19 </bean> 20 21 </beans>