Spring 依赖注入实战:模拟 Web 应用开发
// DAO接口 public interface UserDao { User getUserById(int id); }
// DAO实现类 public class UserDaoImpl implements UserDao { @Override public User getUserById(int id) { // 从数据库中获取用户信息 // ... return user; } }
// Service接口 public interface UserService { User getUserById(int id); }
// Service实现类 public class UserServiceImpl implements UserService { private UserDao userDao;
// 通过构造器注入Dao对象
public UserServiceImpl(UserDao userDao) {
this.userDao = userDao;
}
@Override
public User getUserById(int id) {
return userDao.getUserById(id);
}
}
// Servlet类 public class UserServlet extends HttpServlet { private UserService userService;
// 通过setter方法注入Service对象
public void setUserService(UserService userService) {
this.userService = userService;
}
@Override
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
int userId = Integer.parseInt(request.getParameter("userId"));
User user = userService.getUserById(userId);
// 处理用户信息
// ...
}
}
// Spring配置文件 applicationContext.xml
在上述代码中,UserDao是数据访问对象的接口,UserDaoImpl是其具体实现类;UserService是业务逻辑处理的接口,UserServiceImpl是其具体实现类;UserServlet是Servlet类,通过setter方法注入UserService对象。
在Spring配置文件中,通过<bean>标签配置了各个对象的实例,并通过<constructor-arg>和<property>标签注入依赖对象。
在实际应用中,Spring会根据配置文件实例化对象,并自动完成依赖注入,从而实现对象间的解耦。
原文地址: https://www.cveoy.top/t/topic/hPvP 著作权归作者所有。请勿转载和采集!