Spring2.5整合JPA(转)

一直都在使用自己写的Spring2.0+JPA的开发基础框架,最近研究了一下Spring2.5,确实发现该升级一下自己的基础框架了,这里给Spring2.5整合JAP的心得贴上来,和大家共享,也算是一个笔记!

Spring是个好东西,但是他是基于很多不同的jar来写的,对依赖包的版本要求很高,不兼容老版本的,所以使用哪一个版本的Spring,需要使用它对应的lib文件夹下的依赖包,这估计也是很多人使用Spring整合框架的失败支持!

Spring2.5整合JPA按照以下步骤来做,肯定不会出问题。

第一步 拷贝相关包,列表如下:
[img]http://dl.iteye.com/upload/attachment/167254/ef4f4b97-6f42-3ef9-9bdb-4d8f236209e9.jpg[/img]
这些包最好从Spring2.5源码下的lib文件夹中来找,避免版本冲突出现的某明其妙的问题!

第二步:配置web.xml文件,代码如下:

1. <?xml version="1.0" encoding="UTF-8"?>
2. <web-app id="WebApp_ID" version="2.4"
3. xmlns="http://java.sun.com/xml/ns/j2ee"
4. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
5. xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
6. <welcome-file-list>
7. <welcome-file>index.html</welcome-file>
8. </welcome-file-list>
9. <servlet>
10. <servlet-name>dispatcherServlet</servlet-name>
11. <servlet-class>
12. org.springframework.web.servlet.DispatcherServlet
13. </servlet-class>
14. <init-param>
15. <param-name>contextConfigLocation</param-name>
16. <param-value>/WEB-INF/mvc-config.xml</param-value>
17. </init-param>
18. <load-on-startup>1</load-on-startup>
19. </servlet>
20. <servlet-mapping>
21. <servlet-name>dispatcherServlet</servlet-name>
22. <url-pattern>*.jhtml</url-pattern>
23. </servlet-mapping>
24. </web-app>


在web.xml中使用contextConfigLocation来完成其他配置文件的导入。

第三步:配置ApplicationContext.xml,这个文件是Spring整合JPA最重要的文件,这里配置不当也会导致很多问题的,配置如下:

1. <?xml version="1.0" encoding="UTF-8"?>
2. <beans xmlns="http://www.springframework.org/schema/beans"
3. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
4. xmlns:context="http://www.springframework.org/schema/context"
5. xmlns:aop="http://www.springframework.org/schema/aop"
6. xmlns:tx="http://www.springframework.org/schema/tx"
7. xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd
8. http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-2.5.xsd
9. http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-2.5.xsd
10. http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop-2.5.xsd">
11. <!-- 启用支持Annotation注解方式的Bean管理 -->
12. <context:component-scan base-package="com.javatakler"></context:component-scan>
13. <!-- property-placeholder是一个属性遍历器,定位一个属性文件,属性文件存放的是jdbc一些连接数据 -->
14. <context:property-placeholder location="classpath:jdbc.properties" />
15. <!-- 配置数据源 -->
16. <bean id="dataSource"
17. class="org.apache.commons.dbcp.BasicDataSource"
18. destroy-method="close">
19. <property name="driverClassName"
20. value="${driverClassName}" />
21. <property name="url" value="${url}" />
22. <property name="username" value="${username}" />
23. <property name="password" value="${password}" />
24. <property name="initialSize" value="${initialSize}" />
25. <property name="maxActive" value="${maxActive}" />
26. <property name="maxIdle" value="${maxIdle}" />
27. <property name="minIdle" value="${minIdle}" />
28. </bean>
29.
30. <bean name="entityManagerFactory"
31. class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
32. <!-- <property name="allowRedeploymentWithSameName" value="true" /> -->
33. <property name="persistenceXmlLocation"
34. value="classpath:persistence.xml" />
35. <property name="dataSource" ref="dataSource" />
36. <property name="jpaVendorAdapter">
37. <bean
38. class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter">
39. <property name="database" value="MYSQL" />
40. <property name="showSql" value="false" />
41. <property name="generateDdl" value="false" />
42. </bean>
43. </property>
44. </bean>
45. <!-- JPA事务管理器 -->
46. <bean id="transactionManager"
47. class="org.springframework.orm.jpa.JpaTransactionManager">
48. <property name="entityManagerFactory"
49. ref="entityManagerFactory" />
50. <property name="dataSource" ref="dataSource" />
51. </bean>
52. <!-- 启用支持Annotation注解方式的事务管理 -->
53. <tx:annotation-driven transaction-manager="transactionManager" />
54. </beans>


Spring2.5以前entityManagerFactory中有个allowRedeploymentWithSameName属性,该属性用来防止连接池中出现重名的现象,在Spring2.5中好像已经不存在这种问题的发生了,这里也不能配置了,已经没有该属性了!

最后一步就是配置persistence.xml文件了,这里文件默认是在META-INF文件夹下,实际上不一定这么做,使用persistenceXmlLocation来指定对应的位置就可以了,不过最好在classpath下!代码如下:

1. <persistence xmlns="http://java.sun.com/xml/ns/persistence"
2. xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3. xsi:schemaLocation="http://java.sun.com/xml/ns/persistence
4. http://java.sun.com/xml/ns/persistence/persistence_1_0.xsd"
5. version="1.0">
6. <persistence-unit name="template"
7. transaction-type="RESOURCE_LOCAL">
8. <provider>org.hibernate.ejb.HibernatePersistence</provider>
9. <properties>
10. <property name="hibernate.show_sql" value="false" />
11. <property name="hibernate.hbm2ddl.auto" value="update" />
12. </properties>
13. </persistence-unit>
14. </persistence>
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值