我看到一些代码将 Controller 作为依赖注入(inject)到 spring 应用程序的服务层中。我的第一 react 是这似乎很不对,但我不知道如何向我的同事解释。有人可以告诉我为什么或者为什么不是一个好主意吗?
最佳答案
这不是一个好主意。 Controller 用于处理新请求的接收。因此, Controller 与它们运行的介质/技术紧密耦合。例如 HTTP Controller ,或通过消息队列获取请求的 Controller 。
另一方面,服务类被设计为与请求到达应用程序的方式完全无关。这允许您跨各种 Controller 重用包含主要业务逻辑的服务类。假设明天您的老板不想再使用 HTTP,而是希望所有新请求都通过消息队列传入。因为您的服务类不依赖于任何 Controller 类,所以更改您的应用程序以便它可以正确处理来自消息队列的请求会容易得多。
因此,您的 Controller 将需要服务类,而不是相反。
关于java - 在 spring 应用程序中将 Controller 注入(inject)服务层是一种好习惯吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48192996/