// 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会根据配置文件实例化对象,并自动完成依赖注入,从而实现对象间的解耦。

Spring 依赖注入实战:模拟 Web 应用开发

原文地址: https://www.cveoy.top/t/topic/hPvP 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录