spring容器 - applicationContext.xml
Dao层 = 持久层 - UserDao.java(接口)
业务层 - UserServiceImpl.java --> UserService.java(接口)
web层 - UserController.java
依赖注入IOC(控制反转)的具体实现
Service需要Dao的依赖注入
没有用依赖注入时的 Service 部分代码 —— UserServiceImpl.java:
public void save() {
ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml");
// 参数即xml配置文件的名称
UserDao userDao = (UserDao) app.getBean("userDao");
userDao.save();
}
业务层和持久层的依赖关系,在使用 Spring 后,就让 Spring 自己维护。
未使用 Spring 时,我们要在业务层定义持久层的对象。
使用 Spring 后,我们就不需要在业务层定义对象了。
有依赖注入后的的业务层部分代码 - UserServiceImpl.java
public void save() {
// 有 Dao 注入 Service, set 方法,下面的代码不需要了
// 不用从容器当中获得 Dao,因为在容器内部已经将 Dao 注给我了(通过 set 方法)
// ApplicationContext app = new ClassPathXmlApplicationContext("applicationContext.xml"); // 参数即xml配置文件的名称
// UserDao userDao = (UserDao