【发布时间】:2016-02-02 13:09:42
【问题描述】:
我目前正在将 Spring 和 Hibernate 添加到现有应用程序中,但在阅读了大量教程后,仍有一些 (也就是很多东西) 看起来很奇怪我或者我错过了什么......
我发现的所有教程都是直截了当的(就像大多数教程一样),如 示例 A 所示,一个控制器来处理请求(JSP 或 WS)并自动装配管理器类与数据库交互。
在我的情况下,这不适用,因为应用程序有一个类来处理请求,然后它实例化一个处理程序类,该类又创建一个新类来处理其他创建一个新类来处理 (. ...)* 然后处理数据库连接,如 示例 B 所示。
我的问题是如何使我的业务逻辑类 n “Springable”,即能够在其中自动装配数据库管理器?
根据我看到的所有示例,我提出了以下替代方案:
- 创建自动连接到 ALL 控制器内的 DbManager,然后将 IoC 连接到所有业务类,直到它到达业务逻辑类n。这将遵循 Spring 标准,但意味着最多的代码重构
- 将ALL业务逻辑类转换为bean
- 将 SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this); 添加到业务逻辑类 n 并使用 @Autowire 访问 DbManager
是我遗漏了什么还是有其他选择?
【问题讨论】:
-
在我看来,最好的(或正确的)方法将是替代方法 2. 将所有业务逻辑和数据访问类转换为 spring bean (
@Service&Repository) 而不是创建代码中的实例,配置 spring 以在必要时注入这些 bean。您可能希望使用component-scan标记,而不是冗长的 XML,让 spring 了解和管理这些 bean。
标签: java spring hibernate spring-mvc