Spring+JPA+Struts1的整合

1.首先整合spring+JPA。由于是JPA,所以在src下建立一个META-INF的文件夹,在里面建立JPA的persistence.xml文件。JPA的

实现是基于Hibernate3,所以在persistence.xml文件中配置hibernate连接数据库的属性。

2.在web.xml中配置spring容器,让spring管理我们的类。当然了,在src目录下建立beans.xml文件

 <!--web容器配置spring的配置文件  -->
  <context-param>
  <param-name>contextConfigLocation</param-name>
  <param-value>classpath:beans.xml</param-value>
  </context-param>
  <!--web容器实例化spring-->
  <listener>
   <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

3.在beans.xml中配置jpa的实体管理器(LocalEntityManagerFactoryBean)和jpa事务管理器(JpaTransactionManager),都是

spring为我们做好的。

   <!-- 实例化spring的JPA实体管理器 -->
 <bean id="entityManagerFactory" class="org.springframework.orm.jpa.LocalEntityManagerFactoryBean">
      <property name="persistenceUnitName" value="itcast"/>
 </bean>
 <!-- 实例化spring的JPA事务管理器 -->
 <bean id="txManager" class="org.springframework.orm.jpa.JpaTransactionManager">
    <property name="entityManagerFactory" ref="entityManagerFactory"/>
 </bean>

spring 的事务管理用注解方式声明,所以beans.xml中配置spring的事务管理器。

<!--加载注解驱动  即用注解的方式启动事务管理器  -->
 <tx:annotation-driven transaction-manager="txManager"/>

4.JPA的实体映射是通过注解@Entity做的。所以创建好实体bean以后,做好注解就达到实体映射的目的了。

5.在业务服务层中,如何应用JPA的数据库访问对象呢?通过注解的方式应用EntityManager对象。即在业务层实现类中

@PersistenceContext private EntityManager em;这样就可以通过em对象增删改查实体对象了。

6.搭建spring+JPA的平台以后,可以通过junit测试对实体的增删改查,检验是否集成成功。

7.spring+struts1的集成,首先在web.xml中初始化struts1.

<!-- 配置struts1 -->
 <servlet>
   <servlet-name>struts1</servlet-name>
   <servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
   <init-param>
    <param-name>config</param-name>
    <param-value>/WEB-INF/struts-config.xml</param-value>
   </init-param> 
 </servlet>
 <servlet-mapping>
   <servlet-name>struts1</servlet-name>
   <url-pattern>*.do</url-pattern>
 </servlet-mapping>

struts-config.xml配置文件放在WEB-INF目录下。

8.struts-config.xml配置文件中配置struts1的formbeans,action-mappings,还要指明struts1的action有spring容器管理。

<!-- 通过controller把struts的action由spring管理 -->
<controller>
 <set-property  property="processorClass" value="org.springframework.web.struts.DelegatingRequestProcessor"/>
</controller>

spring怎么管理struts1的action呢?其实很简单,首先在spring中创建控制层的bean对象,struts1配置中的action的path和

bean对象的name是一样的,这样spring就可以管理action请求了。

9.配置好了spring+struts1的平台以后,就创建action测试是否集成成功。在action类中,通过@Resource 注解引用业务层的

接口,实现控制层中调用业务方法。

总结:spring+JPA+struts1的集成有一定的难度,首先要有一定的基础包括spring,JPA,struts1等的基本知识。然后还得有对

MVC框架的了解。当然了前提是有java方面的良好的基础知识。想用好一个框架,还是不断地用,多开发多深入到具体的每一

个点上详细做才能最终掌握它。

猜你喜欢

转载自nicegege.iteye.com/blog/1595381