您的位置:首页 > 其它

SSH集成实践一:配置

2015-10-29 16:39 253 查看
这两天练习Struts2, Spring,Hibernate的整合,碰到了一些问题,整理如下, 以供参考。

----------------------------------------------------------------------------------------------------------------------------------------------------------------

Framework : Struts2, Spring, Hibernate

Manager Tool : Maven

DB: Oracle

IDE : Eclipse

1. 工程结构如下:

2. pom.xml内容如下:

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion>

<groupId>com.ray.app</groupId>
<artifactId>registrylogin-app</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>registrylogin-app</name>
<url>http://maven.apache.org</url>

<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<appfuse.version>3.0.0</appfuse.version>
<struts.version>2.3.16</struts.version>
<spring.version>4.0.0.RELEASE</spring.version>
<dao.framework>hibernate</dao.framework>
<servlet.version>3.1.0</servlet.version>
</properties>

<dependencies>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.2.1</version>
</dependency>

<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-core</artifactId>
<version>${struts.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aop</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-jdbc</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-orm</artifactId>
<version>${spring.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-aspects</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>${spring.version}</version>
</dependency>

<dependency>
<groupId>org.aspectj</groupId>
<artifactId>aspectjweaver</artifactId>
<version>1.8.0.M1</version>
</dependency>

<dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-core</artifactId>
<version>4.0.1.Final</version>
</dependency>

<dependency>
<groupId>org.apache.struts</groupId>
<artifactId>struts2-spring-plugin</artifactId>
<version>${struts.version}</version>
<exclusions>
<exclusion>
<groupId>org.springframework</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>

<dependency>
<groupId>javax.inject</groupId>
<artifactId>javax.inject</artifactId>
<version>1</version>
</dependency>

<dependency>
   <groupId>com.oracle</groupId>
   <artifactId>ojdbc6</artifactId>
   <version>11.2.0.3</version>
</dependency>

<dependency>
<groupId>javax.servlet</groupId>
<artifactId>javax.servlet-api</artifactId>
<version>${servlet.version}</version>
<scope>provided</scope>
</dependency>

<dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<version>4.10</version>
<scope>test</scope>
</dependency>
</dependencies>

</project>

3. 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"

       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
       http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd"
       default-lazy-init="true">

    <!-- Activates scanning of @Autowired -->

    <context:annotation-config/>

    

    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">

    <property name="driverClass" value="oracle.jdbc.OracleDriver"/>

    <property name="jdbcUrl" value="jdbc:oracle:thin:@localhost:1521:orcl"/>

    <property name="user" value="scott"/>

    <property name="password" value="123456"/>

    <property name="maxPoolSize" value="20"/>

    <property name="minPoolSize" value="1"/>

    <property name="initialPoolSize" value="1"/>

    &
d84b
lt;property name="maxIdleTime" value="20"/>

    </bean>

    

    <bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
<property name="dataSource" ref="dataSource"/>    

<property name="configLocation" value="classpath:hibernate.cfg.xml"/>   
<property name="hibernateProperties">
<props>
<prop key="hibernate.dialect">org.hibernate.dialect.OracleDialect</prop>
<prop key="hibernate.show_sql">true</prop>
<prop key="hibernate.hbm2ddl.auto">update</prop>
<prop key="hibernate.jdbc.batch_size">20</prop>
</props>
</property>

    </bean>

    

    <bean id="userDao" class="com.ray.dao.hibernate.UserDaoHibernateImpl">

    <property name="sessionFactory" ref="sessionFactory"/>

    </bean>

    

    <bean id="userService" class="com.ray.service.impl.UserService">

    <property name="userDao" ref="userDao"/>

    </bean>

<!-- transaction define -->
<bean id="transactionManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager">
<property name="dataSource" ref="dataSource" />
<property name="sessionFactory" ref="sessionFactory"></property>
</bean>

    <!-- transaction interceptor define -->

    <bean id="transactionInterceptor" class="org.springframework.transaction.interceptor.TransactionInterceptor">

    <property name="transactionManager" ref="transactionManager"/>

    <property name="transactionAttributes">

    <props>

    <prop key="get*">PROPAGATION_REQUIRED,readOnly</prop>

    <prop key="*">PROPAGATION_REQUIRED</prop>

    </props>

    </property>    

    </bean>

    

    <!-- define BeanNameAutoProxyCreator handler -->

    <bean class="org.springframework.aop.framework.autoproxy.BeanNameAutoProxyCreator">    

    <property name="beanNames">

    <list>

    <value>userService</value>

    </list>

    </property>

    <property name="interceptorNames">

    <list>

    <value>transactionInterceptor</value>

    </list>

    </property>

    </bean>    

</beans>

4. web.xml

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

<web-app xmlns="http://java.sun.com/xml/ns/javaee"

         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

         xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"
         version="3.0">

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

    <filter-mapping>

    <filter-name>struts</filter-name>

    <url-pattern>/*</url-pattern>

    </filter-mapping> 

    

    <listener>

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

    </listener>         

</web-app>

5. hibernate.cfg.xml

<!DOCTYPE hibernate-configuration PUBLIC "-//Hibernate/Hibernate Configuration DTD 3.0//EN"

    "http://www.hibernate.org/dtd/hibernate-configuration-3.0.dtd">

    

<hibernate-configuration>
<session-factory>
<!-- <property name="hibernate.search.default.directory_provider">
filesystem
</property>
-->

<mapping resource="User.hbm.xml" />
</session-factory>

</hibernate-configuration>

>>> 将在SSH集成实践二:问题 中详述碰到的问题和解决方法
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  SSH Maven