Java SpringMVC对服务层的需求是什么?推荐什么样的逻辑?
(但据我所知,它是mediator b/w控制器和DAO层。)或者我们可以直接在控制器中获取DAO依赖项,这是好的实践吗???如下所示Java SpringMVC对服务层的需求是什么?推荐什么样的逻辑?,java,spring-mvc,Java,Spring Mvc,(但据我所知,它是mediator b/w控制器和DAO层。)或者我们可以直接在控制器中获取DAO依赖项,这是好的实践吗???如下所示 @Controller public class HomeController { // @Autowired // private UserServiceImpl userService; @Autowired private UserDAOImpl userDAOService; @RequestMappin
@Controller
public class HomeController {
// @Autowired
// private UserServiceImpl userService;
@Autowired
private UserDAOImpl userDAOService;
@RequestMapping(value = "login", method = RequestMethod.GET)
public String login(..){
// String res = userService.someOperation();
String res = userDAOService.someOperation();
............
}
}
一般来说,将DAO直接放入控制器是一个坏主意,除非控制器非常简单(比如在一种少于10行的方法中——可能是单元测试)。这并不一定意味着您必须将服务拆分为单独的可部署服务。对于许多较小的项目,“服务”是直接与应用程序其余部分打包的接口
当您有一个更大的应用程序时,特别是当这些服务执行不同的角色时,服务层将起到帮助作用。例如,如果您的业务是制造业,并且您的库存服务收到大量流量,那么您可能会将其拆分为一个在其自己的可部署服务中的服务,并将您的用户管理和营销放到一个单独的可部署服务中。像这样拆分服务的好处是,您可以独立地扩展繁忙的服务。例如,如果您在AWS上运行,则更明智的做法是单独扩展清单服务,而不是只因为一个应用程序一直被调用,就扩展整个应用程序。通常,除非控制器非常简单,否则将DAO直接放入控制器是一个坏主意(就像在一种少于10行的方法中——可能是单元测试)。这并不一定意味着您必须将服务拆分为单独的可部署服务。对于许多较小的项目,“服务”是直接与应用程序其余部分打包的接口
当您有一个更大的应用程序时,服务层将起到帮助作用,尤其是当这些服务执行不同的角色时。例如,如果您的业务是制造业,并且您的库存服务收到大量流量,您可以将其拆分为一个具有自己可部署功能的服务,并将您的用户管理和营销置于一个单独的可部署服务。像这样将服务分开的好处是,您可以独立地扩展繁忙的服务。例如,如果您在AWS上运行,则更合理的做法是单独扩展资源清册服务,而不是仅仅因为一个部分一直被调用而扩展整个应用程序。通常这是一个坏消息练习混合, 控制器和Dao或控制器和服务 使用DAO的主要原因是将数据库功能与业务操作/逻辑分离。 在项目中使用DAO和服务还可以实现松散耦合,即(减少相互依赖) 就业务逻辑而言,这里有一个从ATM取款的例子
这个流程就是您的业务逻辑。一般来说,混用是不好的做法, 控制器和Dao或控制器和服务 使用DAO的主要原因是将数据库功能与业务操作/逻辑分离。 在项目中使用DAO和服务还可以实现松散耦合,即(减少相互依赖) 就业务逻辑而言,这里有一个从ATM取款的例子
这个流程就是您的业务逻辑。我们需要服务层的一个很好的原因是松耦合: 假设控制器类中有100个api,20个dao方法为它们提供服务 现在,如果您直接在控制器中调用dao方法,并且在稍后的时间点,您希望有不同的dao方法为这些控制器服务 你必须更换100个控制器,对吗 因此,如果有20个服务方法调用这20个dao方法 现在,如果您想更改服务于这100个控制器的dao方法,您可以只更改服务方法(即20个方法)以指向新的doa方法,而不是更改100个控制器类 这就是实现松耦合的方式,也是一种更好的编程方式。
希望这对您有所帮助:)我们需要服务层的一个很好的原因是松耦合: 假设控制器类中有100个api,20个dao方法为它们提供服务 现在,如果您直接在控制器中调用dao方法,并且在稍后的时间点,您希望有不同的dao方法为这些控制器服务 你必须更换100个控制器,对吗 因此,如果有20个服务方法调用这20个dao方法 现在,如果您想更改服务于这100个控制器的dao方法,您可以只更改服务方法(即20个方法)以指向新的doa方法,而不是更改100个控制器类 这就是实现松耦合的方式,也是一种更好的编程方式。 希望这对你有帮助:)你想经历这一切,也许这对你有好处。你想经历这一切也许这对你有好处。