Spring在Struts + Spring + Hibernate中扮演什么角色?

时间:2020-03-06 15:01:36  来源:igfitidea点击:

Spring在Struts + Spring + Hibernate中扮演什么角色?

解决方案

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的PlatformTransactionManagers之一来管理数据源,或者将其指向J2EE容器的JTA管理器;定义我们自己的池化DataSource或者使用通过JNDI等发布的容器的DataSource。