搭建方法主要参考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 代码
- import org.springframework.test.jpa.AbstractJpaTests;
-
- public abstract class BaseJpaTestCase extends AbstractJpaTests {
-
- protected String[] getConfigLocations() {
- return new String[] {
- "file:/WebAppRoot/WEB-INF/applicationContext.xml",
- "file:/WebAppRoot/WEB-INF/applicationContext-service.xml" };
- }
- }
具体的测试类:
java 代码
- public class UserRoleServiceTest extends BaseJpaTestCase {
-
- private UserRoleService userRoleService;
-
- public void setUserRoleService(UserRoleService userRoleService) {
- this.userRoleService = userRoleService;
- }
-
- @Test
- public void testRemove() {
- UserRole entity = new UserRole("some role name");
- userRoleService.save(entity);
- UserRole persistedEntity = userRoleService.find(entity.getId());
- assertEquals(entity.getName(), persistedEntity.getName());
- userRoleService.remove(persistedEntity .getId());
- assertNull(userRoleService.find(persistedEntity .getId()));
- }
-
- }
测试类不需要在spring配置文件中进行说明,service对象会被自动的注入,非常的方便。
以前用hibernate的时候,Spring提供了OpenSessionInViewFilter来解决在view层的lazy-load问题。而使用jpa进行封装之后,可以使用OpenEntityManagerInViewFilter来达到同样的目的。
在web.xml中进行同样的配置即可:
xml 代码
- <filter>
- <filter-name>entityManagerFilterfilter-name>
- <filter-class>org.springframework.orm.jpa.support.OpenEntityManagerInViewFilterfilter-class>
- filter>
-
- <filter-mapping>
- <filter-name>entityManagerFilterfilter-name>
- <url-pattern>*.actionurl-pattern>
- filter-mapping>
使用JPA的确是一个不错的选择,现在系统已经可以完全和所使用的持久化框架脱离关系了,虽然我可能会一直是用hibernate,不过在将来多一个选择总是不会错的。
分享到:
相关推荐
在学习jpa时候做的一个struts2+spring+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)
Spring+Struts2+JPA入门小例子
Struts2+Spring+Hibernet+JPA+sitemesh+log4j整合。
Struts2+Spring+JPA整合配置实例,及增删改查实例 (jar包放在另外一个文件中,超过15M了,请从新下载)
help\Struts 2 + Spring 2 + JPA + AJAX.
Struts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdfStruts2.1+Spring3.0+JPA1.0 .pdf
struts2+spring2+jpa+ajax的组合运用。
Eclipse开发 Struts 2 + Spring 2 + JPA + AJAX 例子
Struts 2 + Spring 2 + JPA + AJAX 英文手澈
Struts2+Spring+JPA(Hibernate)项目所需要的jar包
Struts2+Spring2.5+Hibernate3(JPA)+ExtJS3基本后台
struts2+jpa+spring2.5配置基础框架,直接运行即可
Struts2+spring3.0+JPA(注解方式集成) 步骤详细 推荐下载
Struts2+Spring+Jpa+ExtJS Crud mysql 含jar文件 myeclipse版本
权限管理代码(struts2+spring2.5+jpa)权限管理代码(struts2+spring2.5+jpa)权限管理代码(struts2+spring2.5+jpa)权限管理代码(struts2+spring2.5+jpa)权限管理代码(struts2+spring2.5+jpa)权限管理代码...
经典的Struts2+Spring 2+JPA+AJAX学习项目
struts2+jpa+spring的详细整合,PPT上面有详细解说
基于注解的Struts2 + Spring + Jpa的架构配置,并且采用了arid实现对Bean的自动装配。
这是三层框架struts2+spring+jpa集成的jar包,找了好久才找到的,由于太大,我分成两部分,这是第一部份,第二部份可以从我资源那里找到,或者查找中struts2+spring+jpa_2也能找到.