1. 添加依赖
org.springframework spring-webmvc5.3.8
2. UserDao接口
public interface UserDao {
void listUser();
}
3. UserDao 实现类,分 3 个 java 文件编写
// MySQL 实现
public class UserDaoMysqlImpl implements UserDao {
public void listUser() {
System.out.println("MySQL 实现获取用户列表");
}
}
// Oracle 实现
public class UserDaoOracleImpl implements UserDao {
public void listUser() {
System.out.println("Oracle 实现获取用户列表");
}
}
// Sybase 实现
public class UserDaoSybaseImpl implements UserDao {
public void listUser() {
System.out.println("Sybase 实现获取用户列表");
}
}
4. UserController,需要注入UserDao的地方
public class UserController {
private UserDao userDao;
public UserController(){
}
public UserController(UserDao userDao){
this.userDao = userDao;
}
public void setUserDao(UserDao userDao) {
this.userDao = userDao;
}
public void listUser(){
userDao.listUser();
}
}
5. 配置文件 applicationContext.xml
6. Test
import com.example.demo.web.UserController;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
public class Test {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
UserController userController1 = context.getBean("userController1", UserController.class);
userController1.listUser();
UserController userController12 = context.getBean("userController12", UserController.class);
userController12.listUser();
UserController userController2 = context.getBean("userController2", UserController.class);
userController2.listUser();
UserController userController22 = context.getBean("userController22", UserController.class);
userController22.listUser();
}
}
7. 运行结果
Oracle 实现获取用户列表 Oracle 实现获取用户列表 MySQL 实现获取用户列表 MySQL 实现获取用户列表 Process finished with exit code 0
8.总结
对象的创建和依赖的注入都通过Spring来进行管理,注入方式有两种:
① 通过无参构造函数和setter函数注入(可使用 p 命名空间);
② 通过有参构造函数注入:参数位置、参数类型、参数名字(可使用 c 命名空间)。



