在使用Spring提供的JpaDaoSupport提供的支持时的事务配置问题:
1.applicationContext.xml文件的配置
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:aop="http://www.springframework.org/schema/aop"
xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="
http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.0.xsd
http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.0.xsd">
<bean id="entityManagerFactory"
class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
<property name="persistenceUnitName" value="testjpaPU" />
<property name="jpaVendorAdapter">
<bean
class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
<property name="showSql" value="true"></property>
<property name="generateDdl" value="true"></property>
</bean>
</property>
</bean>
<bean id="transactionManager"
class="org.springframework.orm.jpa.JpaTransactionManager">
<property name="entityManagerFactory"
ref="entityManagerFactory" />
</bean>
<aop:config>
<aop:pointcut id="crudMethos"
expression_r="execution(* com.testjpa.service.impl.*.*(..))" />
<!-- 第一个*号代表可以是任意返回类型,第二个*代表包下的所有类,第三个*代表类下的所有方法,之后的(..)代表任意的参数 -->
<aop:advisor advice-ref="txAdvice" pointcut-ref="crudMethos" />
</aop:config>
<tx:annotation-driven transaction-manager="transactionManager" />
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="add*" propagation="REQUIRED" />
<tx:method name="edit*" propagation="REQUIRED" />
<tx:method name="delete*" propagation="REQUIRED" />
<tx:method name="*" read-only="true"/>
</tx:attributes>
</tx:advice>
<bean id="studentDao" class="com.testjpa.dao.impl.StudentDaoImpl">
<property name="entityManagerFactory">
<ref bean="entityManagerFactory" />
</property>
</bean>
<bean id="studentService"
class="com.testjpa.service.impl.StudentServiceImpl">
<property name="dao">
<ref bean="studentDao" />
</property>
</bean>
</beans>
2.持久单位persistence.xml
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="http://java.sun.com/xml/ns/persistence"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd" version="1.0">
<persistence-unit name="testjpaPU"
transaction-type="RESOURCE_LOCAL">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<class>com.testjpa.bean.Stu</class>
<properties>
<property name="hibernate.connection.driver_class"
value="com.mysql.jdbc.Driver" />
<property name="hibernate.connection.url"
value="jdbc:mysql://localhost:3306/blog" />
<property name="hibernate.connection.username" value="root" />
<property name="hibernate.connection.password" value="root" />
</properties>
</persistence-unit>
</persistence>
分享到:
相关推荐
通过这种整合,开发者可以利用Struts 2的强大会话管理和视图渲染能力,Spring的全面服务管理,以及JPA的高效数据持久化,创建出结构清晰、易于维护的Java Web应用程序。在实际开发中,还需要注意性能优化、异常处理...
在本案例中,JPA是通过Spring JPA模块进行使用的,它简化了数据访问和事务管理。 Hibernate是JPA的一个流行实现,它提供了一套强大的ORM工具。Hibernate不仅实现了JPA规范,还提供了一些额外的功能,如二级缓存和...
项目运行后,你可以通过Struts2的配置来访问不同的功能,Spring会管理所有bean的生命周期和依赖,而JPA则负责数据库的CRUD操作。这将帮助你理解这三个框架如何协作,以及如何在实际项目中应用它们。 总的来说,这个...
首先,Spring框架是一个全面的企业级应用开发框架,它提供了依赖注入(Dependency Injection, DI)、面向切面编程(Aspect-Oriented Programming, AOP)和大量的企业服务,如数据访问、事务管理等。Spring4.0.1版本...
Spring是Java应用开发的核心框架,提供了一系列丰富的功能,如依赖注入(DI)、面向切面编程(AOP)、事务管理等。Spring框架允许开发者编写松耦合的代码,提高了可测试性和可维护性。Spring MVC是Spring框架的一...
Hibernate提供了事务管理、缓存机制和一对多、多对一等复杂关系的处理。在项目中,我们需要配置Hibernate的实体类、实体管理工厂以及数据源。 FreeMarker是一个用Java编写的模板引擎,用于生成动态内容。在Web应用...
- applicationContext.xml:配置Spring的JPA管理器和事务管理,声明JPA扫描目录。 - dispatcherContext-servlet.xml:SpringMVC配置文件,声明视图解析器等信息。 - Log4j.properties:Log4j日志记录配置文件,...
- **事务管理**:Spring提供了一套灵活的事务管理机制,简化了事务的处理流程。 #### 四、JPA与Hibernate Java Persistence API (JPA) 是Java平台上的一种标准持久化规范,它提供了一种对象关系映射(ORM)方法,将...
"JPA2.0官方文档"则深入讲解了JPA规范的各个方面,包括实体管理、查询、事务和并发控制等。 综上所述,这些文档是学习和精通Spring框架、Spring Data JPA以及JPA的宝贵资源,适合Java开发者尤其是从事企业级应用...
Struts、Spring 和 Hibernate 是Java Web开发中的三大框架,它们分别负责不同的职责:Struts用于控制应用程序的流程,Spring提供全面的依赖注入和事务管理,而Hibernate则专注于对象关系映射(ORM),使得数据库操作...
Spring还包含了一个用于事务管理的模块,支持多种数据源,如JDBC、Hibernate和JPA。Spring MVC是Spring框架的一部分,它提供了一个更现代的MVC实现,相比Struts,Spring MVC更加灵活和可扩展。 **JPA** 是Java EE...
2. **事务管理**:Spring的声明式事务管理可以自动处理事务的开始、提交、回滚,确保数据库操作的原子性和一致性。 3. **异常翻译**:Spring Data JPA将底层的JPA异常转换为Spring的DataAccessException,使得错误...
6. 配置Spring:在Spring的配置文件中启用事务管理,设置数据源和事务管理器。 在实际项目中,"jpatest"可能是一个包含测试代码的目录或者模块,用于验证多数据源配置和Atomikos事务管理是否正常工作。测试通常会...
在CRM系统中,Spring可能被用来管理对象的生命周期,提供事务管理,并且作为其他组件如SpringMVC和SpringDataJPA的基础。 2. SpringMVC:SpringMVC是Spring框架的一部分,专门用于处理Web请求。它负责接收HTTP请求...
在传统的Spring应用中,开发者需要在大量的XML配置文件中定义bean、数据源、事务管理器等。然而,随着Spring的发展,它引入了基于注解的配置,使得我们可以完全摆脱XML,仅通过类上的注解就能完成配置。例如,我们...
SpringBoot默认使用 declarative transaction management(声明式事务管理),只需在需要事务的方法上加上`@Transactional`注解,事务管理就能自动进行。 8. **多数据源支持** 虽然SpringBoot默认支持单个数据源...
在S2SH/S2SJ架构中,JPA与Spring的集成使得我们可以方便地管理数据库连接,执行CRUD操作,并且Spring的事务管理能够确保数据操作的一致性。 在实际项目中,"ssh3"可能是指Struts2、Spring和Hibernate的版本或者组合...
Spring还能通过AOP来定义切面,例如事务管理,可以在全局范围内控制事务的开始、提交、回滚。 3. **JPA**:JPA的配置主要包括实体类的定义、数据源的配置以及持久化单元的设置。实体类通过`@Entity`注解标识,属性...
在实际项目中,集成Spring、JPA和Hibernate时,开发者需要配置Spring的XML或Java配置文件,声明数据源、事务管理器以及JPA的实体扫描路径。同时,还需要配置Hibernate的相关属性,比如连接池、方言等。此外,可能还...
此外,Spring 还提供了 AOP 功能,允许我们在不修改原有代码的情况下添加横切关注点,如日志、事务管理等。在这个例子中,我们可能能看到 Spring 的 XML 配置文件(如 applicationContext.xml),其中定义了 bean 的...