spring学习笔记二:spring使用构造方法注入(set方式注入)

项目目录树:

1、spring的依赖包配置
* SPRING_HOME/dist/spring.jar
* SPRING_HOME/lib/log4j/log4j-1.2.14.jar
* SPRING_HOME/lib/jakarta-commons/commons-logging.jar

2、提供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"
         xmlns:aop="http://www.springframework.org/schema/aop"
         xmlns:tx="http://www.springframework.org/schema/tx"
         xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
           http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd
           http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd">
        
        <bean id="userManagerImpl" class="com.donghai.manager.impl.UserManagerImpl">
            <!-- 使用set方式注入 
            <property name="userDao" ref="userDao4Mysql"></property>
            -->
            <!-- 使用构造方法注入 -->
            <constructor-arg index="0" ref="userDao4Oracle" />
        </bean>
        
        <bean id="userDao4Mysql" class="com.donghai.dao.impl.UserDao4Mysql" />
         <bean id="userDao4Oracle" class="com.donghai.dao.impl.UserDao4Oracle" />  
</beans>

3、提供log4j.properties配置文件

4.环境中的类文件

UserDao.java

package com.donghai.dao;

public interface UserDao {

    public void addUser(String name, String password);
}

UserDao4Mysql.java

package com.donghai.dao.impl;

import com.donghai.dao.UserDao;

public class UserDao4Mysql implements UserDao {

    @Override
    public void addUser(String name, String password) {

        System.out.println("UserDao-->Mysql: name -->" + name + " password-->" + password);
    }


}

UserDao4Oracle.java

package com.donghai.dao.impl;

import com.donghai.dao.UserDao;

public class UserDao4Oracle implements UserDao {

    @Override
    public void addUser(String name, String password) {

        System.out.println("UserDao-->Oracle: name -->" + name + " password-->" + password);
    }

}

UserManager.java

package com.donghai.manager;

public interface UserManager {

    public void addUser(String name, String password);
}

UserManagerImpl.java

package com.donghai.manager.impl;

import com.donghai.dao.UserDao;
import com.donghai.manager.UserManager;

public class UserManagerImpl implements UserManager {

    private UserDao userDao;
    
//    public void setUserDao(UserDao userDao) {
//        this.userDao = userDao;
//    }

    public UserManagerImpl(UserDao userDao){
        this.userDao = userDao;
    }
    @Override
    public void addUser(String name, String password) {
        this.userDao.addUser(name, password);

    }

}

Client.java

package com.donghai.client;


import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

import com.donghai.manager.UserManager;

public class Client {

    public static void main(String[] args){
        ApplicationContext acc = new ClassPathXmlApplicationContext("applicationContext.xml");
        UserManager um = (UserManager)acc.getBean("userManagerImpl");
        um.addUser("daidonghai", "ddpassword");
    }
}

5.测试结果

如果想使用UserDao4Mysql,修改ApplicationContext.xml文件中的引用即可

原文地址:https://www.cnblogs.com/djoker/p/6426806.html