`
arthurln
  • 浏览: 43063 次
社区版块
存档分类
最新评论

Struts 2 + Spring 2 + JPA 的配置补充

阅读更多

  搭建方法主要参考struts2 guide中的Struts 2 + Spring 2 + JPA + AJAX(struts.apache.org/2.0.9/docs/struts-2-spring-2-jpa-ajax.html)文档。

  关于用到的类库和构建方法参考那篇文档即可。这里要补充一下,为了方便进行测试,最好把spring-mock.jar也加进来。这样就可以使用AbstractJpaTests对象了,可以很好支持对lazy-load的测试,下边是一个例子:

测试基类:

java 代码
  1. import org.springframework.test.jpa.AbstractJpaTests;   
  2.   
  3. public abstract class BaseJpaTestCase extends AbstractJpaTests {   
  4.   
  5.  protected String[] getConfigLocations() {   
  6.   return new String[] {   
  7.     "file:/WebAppRoot/WEB-INF/applicationContext.xml",   
  8.     "file:/WebAppRoot/WEB-INF/applicationContext-service.xml" };   
  9.  }   
  10. }  

具体的测试类:

java 代码
  1. public class UserRoleServiceTest extends BaseJpaTestCase {   
  2.   
  3.     private UserRoleService userRoleService;   
  4.   
  5.     public void setUserRoleService(UserRoleService userRoleService) {   
  6.         this.userRoleService = userRoleService;   
  7.     }   
  8.   
  9.     @Test  
  10.     public void testRemove() {   
  11.         UserRole entity = new UserRole("some role name");   
  12.         userRoleService.save(entity);   
  13.         UserRole persistedEntity = userRoleService.find(entity.getId());   
  14.         assertEquals(entity.getName(), persistedEntity.getName());   
  15.         userRoleService.remove(persistedEntity .getId());   
  16.         assertNull(userRoleService.find(persistedEntity .getId()));   
  17.     }   
  18.   
  19. }  

  测试类不需要在spring配置文件中进行说明,service对象会被自动的注入,非常的方便。

  以前用hibernate的时候,Spring提供了OpenSessionInViewFilter来解决在view层的lazy-load问题。而使用jpa进行封装之后,可以使用OpenEntityManagerInViewFilter来达到同样的目的。

在web.xml中进行同样的配置即可:

xml 代码
  1. <filter>  
  2.     <filter-name>entityManagerFilterfilter-name>  
  3.     <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilterfilter-class>  
  4. filter>  
  5.   
  6. <filter-mapping>  
  7.     <filter-name>entityManagerFilterfilter-name>  
  8.     <url-pattern>*.actionurl-pattern>  
  9. filter-mapping>  

  使用JPA的确是一个不错的选择,现在系统已经可以完全和所使用的持久化框架脱离关系了,虽然我可能会一直是用hibernate,不过在将来多一个选择总是不会错的。

分享到:
评论
4 楼 arthurln 2007-12-19  
引用
JPA是一个标准,标准就意味着很多地方难以设计的足够精巧,JPA很多默认配置与Hibernate是不一样,还是需要它的各个实现版本的扩展。尽量还是用Hibernate吧。


不灵活是一定的,不过个人喜欢这种与特定框架解耦的感觉。就像jdbc,虽然牺牲了部分灵活性,却带来了巨大的好处。
3 楼 allenny 2007-09-28  
allenny 写道
按照这篇文章配置,我碰到了一个问题:文章里说将service从构造函数注入Action中,但是我运行后Struts报错说必须要有无参数的构造函数,我加了无参数构造函数后,service就空指针,说明action并没有从Spring初始化,不知道是什么原因。是不是什么地方没配好?


解决了,原来struts.xml里action的class要配成Spring里的bean的名称!唉,配置如何能做到“强类型”啊
2 楼 kyo100900 2007-09-28  
<br/>
<strong>arthurln 写道:</strong><br/>
<div class='quote_div'>
<p> 使用JPA的确是一个不错的选择,现在系统已经可以完全和所使用的持久化框架脱离关系了,虽然我可能会一直是用hibernate,不过在将来多一个选择总是不会错的。</p>
</div>
<p> </p>
<p>JPA是一个标准,标准就意味着很多地方难以设计的足够精巧,JPA很多默认配置与Hibernate是不一样,还是需要它的各个实现版本的扩展。尽量还是用Hibernate吧。<br/>
<br/>
<br/>
<br/>
</p>
1 楼 allenny 2007-09-28  
按照这篇文章配置,我碰到了一个问题:文章里说将service从构造函数注入Action中,但是我运行后Struts报错说必须要有无参数的构造函数,我加了无参数构造函数后,service就空指针,说明action并没有从Spring初始化,不知道是什么原因。是不是什么地方没配好?

相关推荐

    Struts2+Spring+hibernate中对action的单元测试环境搭建[总结].pdf

    Struts2+Spring+Hibernate 中的Action单元测试环境搭建 在软件开发中,单元测试是一种非常重要的测试方法,可以帮助我们确保代码的可靠性和稳定性。在 Struts2+Spring+Hibernate 框架中,对 Action 的单元测试环境...

    struts2+spring+jpa整合的完整例子(含分页)

    在学习jpa时候做的一个struts2+spring+jpa整合的完整例子 包含分页,一个简单的 资产入库系统 并实现了登陆等。

    Spring+Struts2+JPA

    **Spring+Struts2+JPA 整合详解** 在Java Web开发中,Spring、Struts2和JPA是三个非常重要的框架。Spring作为一个全面的轻量级框架,提供了依赖注入(DI)和面向切面编程(AOP)等功能;Struts2是一个强大的MVC框架...

    oa系统_ssh2_Struts2+spring2.5+JPA)

    oa系统_ssh2_Struts2+spring2.5+JPA) oa系统_ssh2_Struts2+spring2.5+JPA) oa系统_ssh2_Struts2+spring2.5+JPA) oa系统_ssh2_Struts2+spring2.5+JPA)

    Struts2+Spring4+Hibernate5整合

    Struts2、Spring4和Hibernate5是Java Web开发中的三个重要框架,它们分别负责MVC模式中的动作控制、依赖注入和持久化管理。这三者的整合可以构建出高效、稳定且易于维护的企业级应用。 **Struts2** 是一个基于MVC...

    Struts2+Spring+JPA实例

    Struts2、Spring和JPA是Java开发中常用的三大框架,它们在企业级应用开发中发挥着关键作用。Struts2作为一个成熟的MVC框架,负责处理前端请求和控制业务流程;Spring作为轻量级的IOC(Inversion of Control)和AOP...

    struts2+spring+hibernate 整合的jar包

    4. **整合Struts2和Spring**:使用Struts2的Spring插件,将Spring管理的Bean注入到Struts2的Action中,通常通过`&lt;struts-plugin&gt;`标签进行配置。 5. **配置Struts2**:创建Struts2的配置文件(struts.xml),定义...

    struts2+spring+jpa小例子

    Struts2、Spring 和 JPA 是Java开发中常用的三大框架,它们各自负责应用程序的不同层面:Struts2 主要处理 MVC(Model-View-Controller)架构中的控制层,Spring 提供全面的依赖注入(DI)以及面向切面编程(AOP),...

    struts2+spring4+hibernate4工程搭建源码

    2. **web.xml** - 应用服务器的部署描述符,配置Struts2和Spring的前端控制器。 3. **struts.xml** - Struts2的配置文件,定义Action和结果映射。 4. **spring-context.xml** - Spring的配置文件,设置Bean的定义和...

    Struts2+Hibernate+Spring课件 张志峰版

    Struts2、Hibernate和Spring是Java企业级开发中三大核心框架,它们的组合通常被称为SSH(Struts2、Spring、Hibernate)集成框架。这个“Struts2+Hibernate+Spring课件 张志峰版”提供了深入学习这三大框架的宝贵资源...

    struts2+HIbernate+Spring整合所需jar包

    此外,可能还需要`struts2-convention-plugin.jar`用于自动配置,以及`struts2-spring-plugin.jar`来实现与Spring的集成。 其次,`Hibernate`是持久层框架,通过ORM(对象关系映射)技术实现了数据库操作的便捷性。...

    struts2+spring2+jpa+ajax

    这个项目的文件列表“struts2+spring2+jpa+ajax”可能包含以下内容:配置文件(如struts.xml、spring配置文件)、Java源代码(包括Action类、DAO接口及实现、Service层逻辑)、HTML/JS视图文件、JPA实体类、以及可能...

    Struts2+spring3.0+JPA(注解方式集成)

    Struts2+spring3.0+JPA(注解方式集成) 步骤详细 推荐下载

    struts2+spring3.x+JPA1.0框架整合步骤

    ### Struts2 + Spring3.x + JPA1.0框架整合步骤详解 #### 一、引言 随着软件工程的发展,MVC(Model-View-Controller)架构模式因其清晰的分层逻辑而在Web开发领域中得到了广泛的应用。本文将详细介绍如何整合...

    Struts2 + Spring + Jpa

    Struts2 + Spring + JPA 是一种常见的Java Web开发架构,通常被称为S2SH或S2SJ。这个架构结合了三个强大的开源框架:Struts2作为MVC(模型-视图-控制器)框架负责处理HTTP请求和业务逻辑,Spring框架提供依赖注入...

    开发者突击Struts2系列源码一(权限管理)

    权限管理代码(struts2+spring2.5+jpa)权限管理代码(struts2+spring2.5+jpa)权限管理代码(struts2+spring2.5+jpa)权限管理代码(struts2+spring2.5+jpa)权限管理代码(struts2+spring2.5+jpa)权限管理代码...

    Struts 2 + Spring 2 + JPA + AJAX

    Struts 2、Spring 2、JPA 和 AJAX 是四个在企业级 Java 开发中非常重要的技术组件。这个项目组合提供了全面的解决方案,用于构建高效、可扩展且易于维护的 Web 应用程序。 **Struts 2** 是一个基于 MVC(Model-View...

    Struts 2 + Spring 2 + JPA + AJAX 示例

    Struts 2、Spring 2、JPA 和 AJAX 是企业级 Web 应用开发中的四大核心技术,它们在构建高效、可扩展的系统中扮演着重要角色。本示例结合这四种技术,提供了一个完整的应用实例,帮助开发者了解如何将它们整合在一起...

    struts2+spring+jpa_1

    这是三层框架struts2+spring+jpa集成的jar包,找了好久才找到的,由于太大,我分成两部分,这是第一部份,第二部份可以从我资源那里找到,或者查找中struts2+spring+jpa_2也能找到.

    help\Struts 2 + Spring 2 + JPA + AJAX.

    ### Struts 2 + Spring 2 + JPA + AJAX 技术栈详解 #### 一、技术背景与介绍 在企业级应用开发中,选择合适的技术栈是非常重要的一步。Struts 2 + Spring 2 + JPA + AJAX 这个组合是早期非常流行的一个Java Web...

Global site tag (gtag.js) - Google Analytics