Spring 依赖注入 构造方法流入
Spring 依赖注入 构造方法注入
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-2.5.xsd "> <bean id="Oracle" class="com.zyl.dao.UserOraDAO" /> <bean id="Sql" class="com.zyl.dao.UserSqlDAO" /> <bean id="User" class="com.zyl.manager.UserMessageImpl"> <!-- <constructor-arg ref="Oracle"/>--> <property name="userDao" ref="Oracle" /> </bean> </beans> ---------------------------------------------- package com.zyl.Test; import org.springframework.beans.factory.BeanFactory; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.zyl.dao.UserSqlDAO; import com.zyl.dao.UserOraDAO; import com.zyl.manager.UserMessage; import com.zyl.manager.UserMessageImpl; public class TestMain { public static void main(String[] args) { /*UserMessage user = new UserMessageImpl(new UserSqlDAO()); user.save("zyl", "123");*/ BeanFactory factory= new ClassPathXmlApplicationContext("applicationContext.xml"); UserMessage user =(UserMessage)factory.getBean("User"); user.save("zyl","123"); } } ---------------------------------- package com.zyl.manager; public interface UserMessage { public void save(String username, String password); } ----------------- package com.zyl.manager; import com.zyl.dao.UserDAO; import com.zyl.dao.UserSqlDAO; public class UserMessageImpl implements UserMessage { private UserDAO userDao; /* public UserMessageImpl(UserDAO userDao) { this.userDao=userDao; }*/ public void save(String username, String password) { this.userDao.show(username,password); } public void setUserDao(UserDAO userDao){ this.userDao=userDao; } } --------------------------------------- package com.zyl.dao; public interface UserDAO { public void show(String username, String password); } ---------------- package com.zyl.dao; public class UserOraDAO implements UserDAO { public void show(String username, String password) { System.out.println("Oracle"+username+password); } } ---------------- package com.zyl.dao; public class UserSqlDAO implements UserDAO { public void show(String username, String password) { System.out.println("Sql"+username+password); } } ------------------------------------