1、导包(共48个包)
1)struts中所有,共8个
2)hibernate:hibernate3.jar,cglib-2.2,hibernate-jpa-2.0-api-1.0.1.Final.jar,
slf4j-nop-1.6.1.jar和required里面的所有。共10个
3)spring:spring-framework-3.1.0.RC1所有,spring2.5.6所有。共30个。
2、需要的配置文件
1)l(可从SPRING帮助文档中获取,相当于l文件,里面可以配置数据源和一些配置文件)
<?xml version="1.0" encoding="UTF-8"?>
<persistence xmlns="java.sun/xml/ns/persistence" version="1.0">
<!--在JAVA文件中可以根据
EntityManagerFactory ateEntityManagerFactory("zenglihuan");
EntityManager ateEntityManager();
EntityTransaction Transaction();
来进行数据库的操作
-->
<persistence-unit name="zenglihuan">
<provider>org.hibernate.ejb.HibernatePersistence</provider>
<properties>
<property name="hibernate.dialect" value="org.hibernate.dialect.OracleDialect"/>
<property name="tion.url" value="jdbc:oracle:thin:@localhost:1521:orcl"/>
<property name="tion.driver_class" value="oracle.jdbc.driver.OracleDriver"/>
<property name="tion.username" value="scott"/>
<property name="tion.password" value="tiger"/>
<property name="hibernate.hbm2ddl.auto" value="update"/>
<property name="hibernate.show_sql" value="true"/>
<property name="hibernate.format_sql" value="true"/>
<property name="connection.pool_size" value="1"/>
<property name="current_session_context_class" value="thread"/>
</properties>
</persistence-unit>
</persistence>
2)l(SPRING帮助文档中的),一般注解context:component-scan版一个项目中只需要一个该配置
头为<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="/schema/beans"
xmlns:xsi="/2001/XMLSchema-instance" xmlns:context="/schema/context"
xmlns:aop="/schema/aop" xmlns:tx="/schema/tx"
xsi:schemaLocation="
/schema/beans
/schema/beans/spring-beans-3.0.xsd
/schema/context
/schema/context/spring-context-3.0.xsd
/schema/aop
/schema/aop/spring-aop-3.0.xsd
/schema/tx
/schema/tx/spring-tx-3.0.xsd">
根据上配置可以去帮助文档中进行查@transactional即可到相关头部:
第一、配置hibernate实例化对象的配置
<context:annotation-config />
<context:component-scan base-package="com.fendou" />
第三、配置entityManagerFactory
<bean
id="entityManagerFactory" class="jpa.LocalContainerEntityManagerFactoryBean">
<property name="persistenceUnitName" value="zenglihuan"/>
<property name="persistenceXmlLocation" value="classpath:l"/>
<property name="loadTimeWeaver">
<bean class="org.springframework.instrument.classloading.InstrumentationLoadTimeWeaver"/>
</property>
<property name="packagesToScan" value="com.fendou.hr.invite.po"/>
</bean>springframework事务
第四、配置事务管理
<bean id="txManager" class="jpa.JpaTransactionManager">
<property name="entityManagerFactory" ref="entityManagerFactory"/>
</bean>
<tx:annotation-driven transaction-manager="txManager"/>
其中<tx:annotation-driven transaction-manager="txManager"/>相当于
<tx:Advice transaction-manager="txManager"/>
<tx:annotation-driven/>
2)l(strut包中可以到)
第一、先配置formBean
<!--指明动态ActionForm-->
<form-bean name="dynabean" type="org.apache.struts.action.DynaActionForm">
<!--配置form的属性。可以省去form表单-->
<form-property name="foo" type="java.lang.String"/>
<form-property name="bar" type="java.lang.String"/>
</form-bean>
第二、配置
<action-mappings>
<action path="/user"
name="userForm"
type="com.fendou.action.userAction"
<!--action继承DispatchAction,执行command方法即可-->
parameter="command"
>
<forward name="success" path="/success.jsp"/>
</action>
</action-mappings>
在整合时,一般不指定每个ACTION中的TYPE,
<controller processorClass="org.springframework.web.struts.DelegatingRequestProcessor"/>
加上上面一段配置,将查ACTION的任务交给SPRING来处理,在userAction上只需配置@Controller("/user")即可
其中Controller中的参数配置的是action中的path.充分地体现出Spring与Struts的整合
3) l(整合时常去spring里查)
<?xml version="1.0" encoding="UTF-8"?>
<web-app version="2.5"
xmlns="java.sun/xml/ns/javaee"
xmlns:xsi="/2001/XMLSchema-instance"
xsi:schemaLocation="java.sun/xml/ns/javaee
java.sun/xml/ns/javaee/web-app_2_5.xsd">
第一、加入SPRING配置文件(由于服务启动会加载WEB.XML文件,所以要把SPRING让WEB.XML读取)
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext_*.xml</param-value>
</context-param>
<listener>
<listener-class>org.t.ContextLoaderListener</listener-class>
</listener>
第二、加入Filter过滤器(在以前的SERVLET中,常用自定义的字符过滤器,但如今SPRING封装了过滤器
的方法,那么只要直接在WEB.XML中配置即可,类似于SERVLET的配置)
<filter>
<filter-name>OpenEntityManagerInView
</filter-name>
<filter-class>jpa.support.OpenEntityManagerInViewFilter</filter-class>
</filter>
<filter-mapping>
<filter-name>OpenEntityManagerInView</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<filter>
<filter-name>characterEncodingFilter</filter-name>
<filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
<init-param>
<param-name>encoding</param-name>
<param-value>UTF-8</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>characterEncodingFilter</filter-name>
<!--截取.do跳转-->
<url-pattern>*.do</url-pattern>
</filter-mapping>
第三、加载struts配置文件
<servlet>
<servlet-name>action</servlet-name>
<servlet-class>org.apache.struts.action.ActionServlet</servlet-class>
<init-param>
<param-name>config</param-name>
<param-value>/l</param-value>
</init-param>
</servlet>
<servlet-mapping>
<servlet-name>action</servlet-name>
<url-pattern>*.do</url-pattern>
</servlet-mapping> 
4)log4j.properties,db.properties(用于保存数据源中的配置文件),国际化资源文件
3、po
4、底层代码的现DAO层
一个公共的DAO接口,和DAO的实现类。
在DAO的实现类上配置
@Component("DAO")
@Transactional
Public Class UserDAOImpl{}
但在类似查询不需要事务的方法上只要添加
@Transactional(propagation=Propagation.NOT_SUPPORTED,readOnly=true)
并在其中注入sessionFactory
private SessionFactory sessionFactory;
@Resource(name="mySessionFactory")
public void setSessionFactory(SessionFactory sessionFactory) {
this.sessionFactory = sessionFactory;
}
5、业务逻辑层SERVICE代码
在SERVICE实现类上配置
@Service("userService")
Public Class UserServiceImpl implements UserService{
private UserDAO userDAO;
@Resource(name="userDAO")
pulbic void setUserDAO(UserDAO userDAO){
this.userDAO=userDAO;
}
}
但当所有的SERVICE都继承一个公共的DAO,则可以直接通过UserServiceImpl继承CommonDAOImpl即可
型如:
@Service("userService")
public class UserServiceImpl extends CommonDAOImpl implements UserService

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。