您的位置:首页 > 编程语言 > Java开发

SSH2整合 struts2.3.4.1 hibernate-annotations-3.4.0.GA spring2.5.6

2012-10-08 11:08 453 查看
一、首先是jar包

1、 hibernate-distribution-3.6.10.Final

hibernate3.jar

/lib/required/*.jar 如果和Spring2.5集成 lib下required中的commons-collections-3.1.jar与Spring2.5相同(可去一个)

2、 hibernate-annotations-3.4.0.GA

lib/ejb3-persistence.jar

lib/jpa/hibernate-jpa-2.0-api-1.0.1.Final.jar

3、slf4j-1.6.6

slf4j-nop-1.5.2.jar

4、mysql-connector-java-5.1.21

mysql-connector-java-5.1.21-bin.jar

4、 spring2.5.6

/dist/spring.jar

/lib/aspectj/*.jar

/lib/jakarta-commons/commons-collections.jar,commons-dbcp.jar,commons-logging.jar,commons-pool.jar

/lib/j2ee/common-annotations.jar

5、 struts2.3.4.1 webapp

commons-fileupload.jar

commons-io-.jar

freemarker-.jar

ognl-.jar

struts2-core-.jar

xwork-.jar

struts2-spring-plugin-.jar

commons-lang-.jar

commons-lang3-.jar

二、然后是配置文件

1、web.xml

<!-- struts2 start -->

<filter>

<filter-name>struts2</filter-name>

<filter-class>org.apache.struts2.dispatcher.ng.filter.StrutsPrepareAndExecuteFilter</filter-class>

</filter>

<filter-mapping>

<filter-name>struts2</filter-name>

<url-pattern>*.do</url-pattern>

<dispatcher>REQUEST</dispatcher>

<dispatcher>FORWARD</dispatcher>

</filter-mapping>

<!-- struts2 end -->

<!-- Spring ApplicationContext配置文件的路径,可使用通配符,多个路径用,号分隔,此参数用于后面的Spring-Context

loader <param-value>/WEB-INF/spring/app*.xml,classpath:app*.xml</param-value> -->

<context-param>

<param-name>contextConfigLocation</param-name>

<param-value>classpath:/config/app*.xml</param-value>

</context-param>

<!-- spring start -->

<listener>

<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>

</listener>

<!-- spring end -->

2、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:context="http://www.springframework.org/schema/context"

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.5.xsd

http://www.springframework.org/schema/aop
http://www.springframework.org/schema/aop/spring-aop-2.5.xsd

http://www.springframework.org/schema/tx
http://www.springframework.org/schema/tx/spring-tx-2.5.xsd

http://www.springframework.org/schema/context
http://www.springframework.org/schema/context/spring-context-2.5.xsd">

<!-- 定义受环境影响易变的变量 -->

<bean

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="systemPropertiesModeName" value="SYSTEM_PROPERTIES_MODE_OVERRIDE" />

<property name="ignoreResourceNotFound" value="true" />

<property name="locations">

<list>

<value>classpath:/config/properties/application.properties</value>

</list>

</property>

</bean>

<!-- 数据源配置,使用dbcp连接-->

<bean id="dataSource"

class="org.apache.commons.dbcp.BasicDataSource">

<property name="driverClassName"

value="com.mysql.jdbc.Driver">

</property>

<property name="url"

value="${jdbc.url}">

</property>

<property name="username" value="${jdbc.username}"></property>

<property name="password" value="${jdbc.password}"></property>

</bean>

<!--

配置SessionFactory,由Spring容器来管理Hibernate

非Annotation时,使用org.springframework.orm.hibernate3.LocalSessionFactoryBean,

它注入实体类的方式是setMappingResources(),而Hibernate Annotation所用的映射方式 不是mapping

resource,而是mapping class,这就要用到LocalSessionFactoryBean的子类

AnnotationSessionFactoryBean了.因为AnnotationSessionFactoryBean它支持实体的注入

方式setAnnotatedClasses,即对应Hibernate中的mapping class.参见这两个类的源代码.

-->

<bean id="sessionFactory"

class="org.springframework.orm.hibernate3.annotation.AnnotationSessionFactoryBean">

<property name="dataSource">

<ref bean="dataSource" />

</property>

<property name="hibernateProperties">

<props>

<prop key="hibernate.dialect">

${hibernate.dialect}

</prop>

<prop key="hibernate.show_sql">

${hibernate.show_sql}

</prop>

<prop key="hibernate.format_sql">

${hibernate.format_sql}

</prop>

<prop key="javax.persistence.validation.mode">

none

</prop>

<prop key="hibernate.query.factory_class">

<!--

org.hibernate.hql.classic.ClassicQueryTranslatorFactory

-->

org.hibernate.hql.ast.ASTQueryTranslatorFactory

</prop>

</props>

</property>

<property name="packagesToScan" value="com.index.star.users.model" />

</bean>

<!-- 配置事务管理器 -->

<bean id="transactionManager"

class="org.springframework.orm.hibernate3.HibernateTransactionManager">

<property name="sessionFactory">

<ref bean="sessionFactory" />

</property>

</bean>

<!-- 配置事务的传播特性 -->

<tx:advice id="txAdvice" transaction-manager="transactionManager">

<tx:attributes>

<!--

<tx:method name="save*" propagation="REQUIRED" /> <tx:method

name="update*" propagation="REQUIRED" /> <tx:method name="delete*"

propagation="REQUIRED" /> <tx:method name="*send*"

propagation="REQUIRED" /> <tx:method name="attach*"

propagation="REQUIRED" /> <tx:method name="*" read-only="true" />

<tx:method name="find*" read-only="true" />

-->

<tx:method name="get*" read-only="true" />

<tx:method name="*" propagation="REQUIRED" />

</tx:attributes>

</tx:advice>

<!-- 哪些类的哪些方法参与事务 -->

<aop:config>

<aop:pointcut id="allServiceMethod"

expression="execution(* com.index.star.users.service.*.*.*(..))" />

<aop:advisor pointcut-ref="allServiceMethod" advice-ref="txAdvice" />

</aop:config>

<!-- 配置spring application的 getbean()工具类

<bean id="SpringContextHolde" class="common.utils.spring.SpringContextHolder"

scope="singleton" /> -->

<!-- 使Spring关注Annotation -->

<context:annotation-config />

<!-- 让Spring通过自动扫描来查询和管理Bean -->

<context:component-scan base-package="com.index" />

</beans>

3、struts.xml

<?xml version="1.0" encoding="UTF-8" ?>

<!DOCTYPE struts PUBLIC

"-//Apache Software Foundation//DTD Struts Configuration 2.0//EN"

"http://struts.apache.org/dtds/struts-2.0.dtd">

<struts>

<!-- 文件上传中整个请求内容允许的最大字节数为15M -->

<constant name="struts.multipart.maxSize" value="15097152" />

<constant name="struts.enable.DynamicMethodInvocation" value="false" />

<constant name="struts.devMode" value="false" />

<constant name="struts.i18n.encoding" value="UTF-8" />

<constant name="struts.action.extension" value="do" />

<include file="config/struts2/*.xml" />

</struts>
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: