Spring 在 Struts + Spring + Hibernate 中扮演什么角色?
3 回答
Spring 提供了许多不同的“模块”,不同的程序员将使用 Spring 的不同部分。
但是,通常在这种堆栈中,您会看到 Spring 被用作
- 依赖注入的控制容器反转
- Hibernate 的抽象称为“HibernateTemplate”
- 用于简化面向方面编程的框架类
- 事务支持,通常通过 IoC 容器和 AOP“以声明方式”进行。
好吧,Hibernate 处理持久性部分,JSP 处理您的 GUI,Struts 控制页面/动作/等之间的流程,Spring 可以管理所有包含主要业务逻辑的 bean,而不是使用 EJB。此外,它还可以简化 Hibernate DAO 的编码和事务管理。不必编写 Locator 代码以通过 JNDI 和所有这些东西获取一些 EJB,您只需获取 Spring ApplicationContext 并请求您需要的 bean。Spring 中定义的所有 bean 都可以相互连接。如果您必须通过 JNDI 将您的一个 bean 连接到外部 EJB,您甚至可以在不使用任何代码的情况下执行此操作(Spring 提供了一个 JNDI 代理对象,该对象获取您给它的引用并将其作为具有您指定接口的对象返回)。这可以帮助您简化所有这些 bean 的单元测试并更改配置而无需重新编码;您可以使用 Spring 的 PlatformTransactionManager 之一来管理 DataSource 或将其指向 J2EE 容器的 JTA 管理器;定义您自己的池化数据源或使用通过 JNDI 发布的容器的数据源等。
好补充;
(视图和控制器) Struts 具有广泛的 JSP 特性以及 Struts 标记和 Web 请求处理特性
(服务和应用程序管理) Spring 以其出色的依赖注入等来处理 ORM 和服务层。
(具有数据库独立性的 ORM)Hibernate 用于久经考验的 ORM