SSH Maven 整合笔记

来源:互联网 发布:南京溧水网络问政 编辑:程序博客网 时间:2024/05/17 06:46

src/main/resources 目录下:


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:tx="http://www.springframework.org/schema/tx"
       xmlns:aop="http://www.springframework.org/schema/aop"
       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
           http://www.springframework.org/schema/tx
           http://www.springframework.org/schema/tx/spring-tx.xsd
           http://www.springframework.org/schema/aop
           http://www.springframework.org/schema/aop/spring-aop.xsd">
           
    <context:annotation-config/>                                                              <!-- 启用注解方式 -->
    <context:component-scan base-package="com.mavict" />         <!-- 启用自动扫描       不需要写bean了,自动扫描生成 -->
    <aop:aspectj-autoproxy />   

    
    <!-- placeholder方式配置数据源--> 
    <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
      <property name="locations" value="classpath:jdbc.properties"/>
    </bean>


    <bean id="myDataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
  <property name="driverClassName" value="${jdbc.driverClassName}"/>
  <property name="url" value="${jdbc.url}"/>
  <property name="username" value="${jdbc.username}"/>
  <property name="password" value="${jdbc.password}"/>
</bean>
    
    
    <!-- 配置hiberante sessionFactory -->
<bean id="sessionFactory" class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">
  <property name="dataSource" ref="myDataSource" /> <!-- 将datasource注入 -->
 
  <property name="packagesToScan">   <!-- 扫描需要实体映射的类的所在包-->
   <list>
                 <value>com.mavict.*</value>
   </list>
  </property>
 
  <property name="hibernateProperties"> <!-- 如名,此处是将hibernate的一些属性放过来 -->
  <props>
      <prop key="hibernate.dialect">org.hibernate.dialect.MySQLDialect</prop>
      <prop key="hibernate.show_sql">true</prop>
      <prop key="hibernate.hbm2ddl.auto">update</prop>
      
      <!-- 使用getCurrentSession必用设置 -->
      <prop key="hibernate.current_session_context_class">thread</prop>
      
      <!-- 配置EHcache缓存 欲加缓存的类上加 @Cacheable @Cache(usage = CacheConcurrencyStrategy.READ_ONLY) -->
      <prop key="hibernate.cache.use_second_level_cache">true</prop>
      <prop key="hibernate.cache.use_query_cache">true</prop>
      <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
        </props>
  </property>
 
</bean>  

                    
<!-- 配置事务管理器  -->
<bean id="txManager" class="org.springframework.orm.hibernate4.HibernateTransactionManager"> <!--其实这是一个切面类 跨数据库的话就要用jta的事务管理了 -->
<property name="sessionFactory" ref="sessionFactory"/>
</bean>
<!-- 配置事务管通知 -->
<tx:advice id="txAdvice" transaction-manager="txManager">
<tx:attributes>
<tx:method name="save" propagation="REQUIRED"/> <!-- 默认就是REQUIRED。另外还有一个readonly属性-->
</tx:attributes>
</tx:advice>

<!-- 以xml的方式配置事务。-->
<aop:config>
<aop:pointcut expression="execution(* com.mavict..*.*(..))" id="businessService"/>
<aop:advisor advice-ref="txAdvice" pointcut-ref="businessService"/>
</aop:config>


</beans>




struts.xml

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE struts PUBLIC
"-//Apache Software Foundation//DTD Struts Configuration 2.3//EN"
"http://struts.apache.org/dtds/struts-2.3.dtd">


<struts>
 

  <!-- 此处举例说明,Action类已被spring托管,写成注入之后的bean的名字,如红色部分  -->
  <package name="article" namespace="/" extends="struts-default">
     <action name="articles" class="articlesAction">                                  
         <result name="saveSubmit">/articles_result.jsp</result>
     </action>
 </package>


</struts>



jdbc.properties

jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hibernate
jdbc.username=root
jdbc.password=passwordxxx   // 注意修改




WEB-INF/ 下

web.xml

<!DOCTYPE web-app PUBLIC
 "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"
 "http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app>
  <display-name>Archetype Created Web Application</display-name>
  

    <!--  整合spring,web容器自动加载spring配置文件生成session工厂  -->
    <listener>
        <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
    </listener>
    
   <context-param>
  <param-name>contextConfigLocation</param-name>
<param-value>classpath:applicationContext.xml</param-value>
   </context-param>


    <!--  整合struts2 -->
    <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>/*</url-pattern>
    </filter-mapping>


  
</web-app>


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/maven-v4_0_0.xsd">
  <modelVersion>4.0.0</modelVersion>
  <groupId>com.mavict</groupId>
  <artifactId>testspring</artifactId>
  <packaging>war</packaging>
  <version>0.0.1-SNAPSHOT</version>
  <name>testspring Maven Webapp</name>
  <url>http://maven.apache.org</url>
  <dependencies>
    <dependency>
     <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>4.10</version>
      <scope>test</scope>
    </dependency>
    
    
    <!-- SPRING START -->
    <dependency>
      <groupId>org.springframework</groupId>
      <artifactId>spring-context</artifactId>
      <version>3.2.5.RELEASE</version>
    </dependency> 
  
    
  <dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-web</artifactId>
<version>3.2.5.RELEASE</version>
  </dependency>
            
    
    <dependency><!-- 事务管理 -->
<groupId>org.springframework</groupId>
<artifactId>spring-tx</artifactId>
<version>3.2.5.RELEASE</version>
    </dependency>
            


     <dependency><!-- AOP aspectj 动态代理切面用 -->
 <groupId>org.aspectj</groupId>
 <artifactId>aspectjrt</artifactId>
 <version>1.7.3</version>
    </dependency>
    
    <dependency>
 <groupId>org.aspectj</groupId>
 <artifactId>aspectjweaver</artifactId>
 <version>1.7.3</version>
    </dependency>
    
    <dependency><!-- @Resource注解需要的包 ???-->
 <groupId>javax.annotation</groupId>
 <artifactId>javax.annotation-api</artifactId>
 <version>1.2</version>
    </dependency>
   
    <!-- SPRING END -->
    
    
   
    
    
    
        <!-- HIBERNATE START -->
    <dependency>
 <groupId>org.hibernate</groupId>
 <artifactId>hibernate-core</artifactId>
 <version>4.2.6.Final</version>
    </dependency>
    
    
     <dependency><!-- 整合hibernate必须加上的,不然会报错 -->
 <groupId>org.springframework</groupId>
 <artifactId>spring-orm</artifactId>
 <version>3.2.5.RELEASE</version>
    </dependency>
    


     <!-- EHCACHE -->
    <dependency>
<groupId>net.sf.ehcache</groupId>
<artifactId>ehcache-core</artifactId>
<version>2.6.6</version>
    </dependency>
    
    <dependency>
<groupId>org.hibernate</groupId>
<artifactId>hibernate-ehcache</artifactId>
<version>4.2.6.Final</version>
    </dependency>
    
    <dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
<version>1.7.5</version>
</dependency>
            
                <!-- HIBERNATE END -->
    


    <!-- 数据库方面 START -->

<!-- 防止出现找不到org.apache.commons.dbcp.BasicDataSource -->
<dependency>
<groupId>commons-pool</groupId>
<artifactId>commons-pool</artifactId>
<version>1.6</version>
</dependency>
            
<dependency>
<groupId>commons-dbcp</groupId>
<artifactId>commons-dbcp</artifactId>
<version>1.4</version>
</dependency>
            
<dependency>
<groupId>commons-collections</groupId>
<artifactId>commons-collections</artifactId>
<version>3.2</version>
</dependency>
            
            
    
<dependency>
 <groupId>mysql</groupId>
 <artifactId>mysql-connector-java</artifactId>
 <version>5.1.26</version>
</dependency>
    
        <!-- 数据库方面 END -->


<!-- STRUTS START -->
    
     <dependency>
      <groupId>org.apache.struts</groupId>
 <artifactId>struts2-core</artifactId>
 <version>2.3.15</version>
    </dependency>
    
     
     <dependency><!-- 该插件是与spring整合时候需要的 -->
 <groupId>org.apache.struts</groupId> 
 <artifactId>struts2-spring-plugin</artifactId>
 <version>2.3.15</version>
    </dependency>
    
 
  </dependencies>
   <build> 
    <plugins> 
      <plugin> 
        <groupId>org.apache.maven.plugins</groupId> 
        <artifactId>maven-war-plugin</artifactId> 
        <version>2.4</version> 
        <configuration> <warName>${project.artifactId}</warName></configuration> 
      </plugin> 
    </plugins> 
   </build>
</project>


0 0