Spring+SpringMVC+hibernate+maven配置文件

xiaoxiao2021-02-28  49

1.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>Person</groupId>  <artifactId>Person</artifactId>  <version>0.0.1-SNAPSHOT</version>  <packaging>war</packaging>  <name>Person</name>  <description/>  <properties>    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>      <spring.version>4.3.5.RELEASE</spring.version>          <hibernate.version>4.2.5.Final</hibernate.version>          <jackson.version>2.8.5</jackson.version>          <junit.version>4.12</junit.version>          <ehcache.version>2.10.3</ehcache.version>          <log4j.version>1.2.17</log4j.version>          <mysql.version>5.1.37</mysql.version>          <druid.version>1.0.27</druid.version>          <aspectjweaver.version>1.8.7</aspectjweaver.version>          <webVersion>3.0</webVersion>    </properties>  <dependencies>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>bean-validator</artifactId>      <version>3.0-JBoss-4.0.2</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>javax.annotation</artifactId>      <version>3.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>javax.ejb</artifactId>      <version>3.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>javax.enterprise.deploy</artifactId>      <version>3.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>javax.jms</artifactId>      <version>3.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>javax.management.j2ee</artifactId>      <version>3.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.eclipse.persistence</groupId>      <artifactId>javax.persistence</artifactId>      <version>2.0.0</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>javax.resource</artifactId>      <version>3.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>javax.security.auth.message</artifactId>      <version>3.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>javax.security.jacc</artifactId>      <version>3.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>javax.servlet</artifactId>      <version>3.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>javax.servlet.jsp</artifactId>      <version>3.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>javax.servlet.jsp.jstl</artifactId>      <version>3.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish</groupId>      <artifactId>javax.transaction</artifactId>      <version>3.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>javax.xml.bind</groupId>      <artifactId>jaxb-api-osgi</artifactId>      <version>2.2.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>javax.ws.rs</groupId>      <artifactId>jsr311-api</artifactId>      <version>1.1.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish.web</groupId>      <artifactId>jstl-impl</artifactId>      <version>1.2</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>javax.mail</groupId>      <artifactId>mail</artifactId>      <version>1.4.3</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>javax.xml</groupId>      <artifactId>webservices-api-osgi</artifactId>      <version>2.0.1</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.jboss.weld</groupId>      <artifactId>weld-osgi-bundle</artifactId>      <version>1.0.1-SP3</version>      <scope>provided</scope>    </dependency>    <dependency>      <groupId>org.glassfish.web</groupId>      <artifactId>javax.servlet.jsp.jstl</artifactId>      <version>1.2.1</version>    </dependency>    <dependency>      <groupId>javax.servlet.jsp.jstl</groupId>      <artifactId>javax.servlet.jsp.jstl-api</artifactId>      <version>1.2.1</version>    </dependency>    <!-- junit 单元测试 -->          <dependency>              <groupId>junit</groupId>              <artifactId>junit</artifactId>              <version>${junit.version}</version>              <scope>test</scope>          </dependency>          <!-- spring -->          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-core</artifactId>              <version>${spring.version}</version>          </dependency>            <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-beans</artifactId>              <version>${spring.version}</version>          </dependency>            <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-context</artifactId>              <version>${spring.version}</version>          </dependency>            <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-tx</artifactId>              <version>${spring.version}</version>          </dependency>            <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-web</artifactId>              <version>${spring.version}</version>          </dependency>            <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-test</artifactId>              <version>${spring.version}</version>              <scope>test</scope>          </dependency>            <!-- 使用SpringMVC需配置 -->          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-webmvc</artifactId>              <version>${spring.version}</version>          </dependency>            <!-- 关系型数据库整合时需配置 如hibernate jpa等 -->          <dependency>              <groupId>org.springframework</groupId>              <artifactId>spring-orm</artifactId>              <version>${spring.version}</version>          </dependency>            <!-- hibernate -->                  <dependency>              <groupId>org.hibernate</groupId>              <artifactId>hibernate-core</artifactId>              <version>${hibernate.version}</version>          </dependency>            <dependency>              <groupId>org.hibernate</groupId>              <artifactId>hibernate-ehcache</artifactId>              <version>${hibernate.version}</version>          </dependency>                              <!-- 二级缓存ehcache -->            <dependency>                <groupId>net.sf.ehcache</groupId>                <artifactId>ehcache</artifactId>                <version>${ehcache.version}</version>            </dependency>                    <!-- log4j -->            <dependency>                <groupId>log4j</groupId>                <artifactId>log4j</artifactId>                <version>${log4j.version}</version>            </dependency>                <!-- mysql连接 -->            <dependency>                <groupId>mysql</groupId>                <artifactId>mysql-connector-java</artifactId>                <version>${mysql.version}</version>            </dependency>                    <!-- 阿里巴巴数据源 -->          <dependency>              <groupId>com.alibaba</groupId>              <artifactId>druid</artifactId>              <version>${druid.version}</version>          </dependency>                    <dependency>                <groupId>com.fasterxml.jackson.core</groupId>                <artifactId>jackson-annotations</artifactId>                <version>${jackson.version}</version>            </dependency>                <dependency>                <groupId>com.fasterxml.jackson.core</groupId>                <artifactId>jackson-core</artifactId>                <version>${jackson.version}</version>            </dependency>                <dependency>                <groupId>com.fasterxml.jackson.core</groupId>                <artifactId>jackson-databind</artifactId>                <version>${jackson.version}</version>            </dependency>                <!-- aop -->            <dependency>              <groupId>org.aspectj</groupId>              <artifactId>aspectjweaver</artifactId>              <version>${aspectjweaver.version}</version>          </dependency>                    <!-- servlet -->          <dependency>              <groupId>javax.servlet</groupId>              <artifactId>servlet-api</artifactId>              <version>3.0-alpha-1</version>              <scope>provided</scope>          </dependency>              <dependency>              <groupId>javax.servlet</groupId>              <artifactId>jstl</artifactId>              <version>1.2</version>          </dependency>    </dependencies>  <build>    <sourceDirectory>src</sourceDirectory>    <plugins>      <plugin>        <artifactId>maven-compiler-plugin</artifactId>        <version>2.3.2</version>        <configuration>          <source>1.7</source>          <target>1.7</target>        </configuration>      </plugin>      <plugin>        <artifactId>maven-war-plugin</artifactId>        <version>2.2</version>        <configuration>          <warSourceDirectory>${basedir}/WebRoot</warSourceDirectory>          <version>3.0</version>          <failOnMissingWebXml>false</failOnMissingWebXml>        </configuration>      </plugin>    </plugins>  </build>

</project>

2.web.xml文件

<?xml version="1.0" encoding="UTF-8"?>      <web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"          xmlns="http://java.sun.com/xml/ns/javaee" xmlns:web="http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd"          id="WebApp_ID" version="3.0">          <display-name>Person</display-name>        <!-- 加载配置文件 -->          <context-param>              <param-name>contextConfigLocation</param-name>              <param-value>classpath:spring.xml,classpath:spring-hibernate.xml</param-value>          </context-param>          <!-- 中文过滤器 -->          <filter>              <filter-name>encodingFilter</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>              <init-param>                  <param-name>forceEncoding</param-name>                  <param-value>true</param-value>              </init-param>          </filter>          <filter-mapping>              <filter-name>encodingFilter</filter-name>              <url-pattern>/*</url-pattern>          </filter-mapping>                <!-- openSessionInView配置 作用是延迟session关闭到view层 -->          <filter>              <filter-name>openSessionInViewFilter</filter-name>              <filter-class>org.springframework.orm.hibernate4.support.OpenSessionInViewFilter</filter-class>              <init-param>                  <param-name>singleSession</param-name>                  <param-value>true</param-value>              </init-param>          </filter>                <!-- 监听servletContext,启动contextConfigLocation中的spring配置信息 -->          <listener>              <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>          </listener>                <!-- 防止spring内存溢出监听器 -->          <listener>              <listener-class>org.springframework.web.util.IntrospectorCleanupListener</listener-class>          </listener>                <servlet>              <description>spring mvc servlet</description>              <servlet-name>springmvc</servlet-name>              <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>              <init-param>                  <param-name>contextConfigLocation</param-name>                  <!-- 此处配置的是SpringMVC的配置文件 -->                  <param-value>classpath:spring-mvc.xml</param-value>              </init-param>              <load-on-startup>1</load-on-startup>          </servlet>                <servlet-mapping>              <servlet-name>springmvc</servlet-name>              <url-pattern>*.action</url-pattern>          </servlet-mapping>                <filter-mapping>              <filter-name>openSessionInViewFilter</filter-name>              <url-pattern>/*</url-pattern>          </filter-mapping>                      <!-- druid数据源拦截配置,如果不需要druid提供的数据库日志,就可以直接注释下面的代码 -->          <filter>              <filter-name>DruidWebStatFilter</filter-name>              <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>              <init-param>                  <param-name>exclusions</param-name>                  <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>              </init-param>              <init-param>                  <param-name>profileEnable</param-name>                  <param-value>true</param-value>              </init-param>              <init-param>                  <param-name>sessionStatEnable</param-name>                  <param-value>true</param-value>              </init-param>              <init-param>                  <param-name>principalSessionName</param-name>                  <param-value>SESSION_SYS_USER</param-value>              </init-param>          </filter>          <filter-mapping>              <filter-name>DruidWebStatFilter</filter-name>              <url-pattern>/*</url-pattern>          </filter-mapping>          <servlet>              <servlet-name>DruidStatView</servlet-name>              <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>              <init-param>                  <param-name>resetEnable</param-name>                  <param-value>true</param-value>              </init-param>              <init-param>                  <param-name>loginUsername</param-name>                  <param-value>gzyfkjDruid</param-value>              </init-param>              <init-param>                  <param-name>loginPassword</param-name>                  <param-value>gzyfkj@Druid2016$$$</param-value>              </init-param>          </servlet>          <servlet-mapping>              <servlet-name>DruidStatView</servlet-name>              <url-pattern>/druid/*</url-pattern>          </servlet-mapping>                <!-- 配置session超时时间,单位分钟 -->          <session-config>              <session-timeout>30</session-timeout>          </session-config>                <welcome-file-list>              <welcome-file>/index.jsp</welcome-file>          </welcome-file-list>            </web-app> 

3.整合配置文件

config.properties文件:

jdbc.url=jdbc:mysql:///ssh?useSSL=true&characterEncoding=UTF-8jdbc.driverClass=com.mysql.jdbc.Driverjdbc.username=rootjdbc.password=123456#only mysql need#hibernate config  #hibernate.dialect = org.hibernate.dialect.MySQL5Dialect  hibernate.show_sql = true  hibernate.format_sql = true  hibernate.hbm2ddl.auto = update  hibernate.cache.use_second_level_cache = true  hibernate.cache.use_query_cache = true  hibernate.cache.region.factory_class = org.hibernate.cache.ehcache.EhCacheRegionFactory  

hibernate.cache.provider_configuration_file_resource_path =ehcache.xml

Spring整合hibernate文件:

<?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: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-4.3.xsd                 http://www.springframework.org/schema/tx                 http://www.springframework.org/schema/tx/spring-tx-4.3.xsd                http://www.springframework.org/schema/aop                 http://www.springframework.org/schema/aop/spring-aop-4.3.xsd">                    <!-- 配置数据源 Druid -->           <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource"              init-method="init" destroy-method="close">              <!-- MySQL数据库配置 -->              <property name="url"                  value="${jdbc.url}" />              <property name="username" value="${jdbc.username}" />              <property name="password" value="${jdbc.password}" />              <!-- SQL Server数据库配置 -->              <!-- <property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=yfkj"                   /> <property name="username" value="sa" /> <property name="password" value="123456"                   /> -->              <!-- Oracle数据库配置 -->              <!-- <property name="url" value="jdbc:oracle:thin:@127.0.0.1:1521:yfkj"                   /> <property name="username" value="SYSTEM" /> <property name="password"                   value="SkyNet888999" /> -->              <!-- 配置初始化大小、最小、最大 -->              <property name="initialSize" value="1" />              <property name="minIdle" value="1" />              <property name="maxActive" value="20" />              <!-- 配置获取连接等待超时的时间 -->              <property name="maxWait" value="60000" />              <!-- 配置间隔多久才进行一次检测,检测需要关闭的空闲连接,单位是毫秒 -->              <property name="timeBetweenEvictionRunsMillis" value="60000" />              <!-- 配置一个连接在池中最小生存的时间,单位是毫秒 -->              <property name="minEvictableIdleTimeMillis" value="300000" />              <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->              <property name="poolPreparedStatements" value="true" />              <property name="maxPoolPreparedStatementPerConnectionSize"                  value="20" />              <!-- 配置监控统计拦截的filters -->              <property name="filters" value="stat,log4j,wall" />          </bean>          <!-- 配置hibernate的SessionFactory -->            <bean id="sessionFactory"                class="org.springframework.orm.hibernate4.LocalSessionFactoryBean">                <!-- 注入数据源 相关信息看源码 -->                <property name="dataSource" ref="dataSource" />                <!-- hibernate配置信息 -->                <property name="hibernateProperties">                    <props>                        <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5Dialect</prop>                        <prop key="hibernate.show_sql">${hibernate.show_sql}</prop>                        <prop key="hibernate.format_sql">${hibernate.format_sql}</prop>                        <prop key="hibernate.hbm2ddl.auto">${hibernate.hbm2ddl.auto}</prop>                                <!-- 开启二级缓存 ehcache -->                        <prop key="hibernate.cache.use_second_level_cache">${hibernate.cache.use_second_level_cache}</prop>                        <prop key="hibernate.cache.use_query_cache">${hibernate.cache.use_query_cache}</prop>                        <prop key="hibernate.cache.region.factory_class">${hibernate.cache.region.factory_class}</prop>                        <prop key="hibernate.connection.autocommit">true</prop>                        <prop key="hibernate.cache.provider_configuration_file_resource_path">${hibernate.cache.provider_configuration_file_resource_path} </prop>                      <!--  <prop key="hibernate.current_session_context_class">org.springframework.orm.hibernate4.SpringSessionContext</prop> -->                </props>                </property>                <!-- 扫描hibernate注解配置的entity -->                <property name="packagesToScan" value="com.demo.entity" />            </bean>            <!-- <bean id="hibernateDao" class="com.demo.dao.HibernateDao">        <property name="sessionFactory" ref="sessionFactory"></property>        </bean> -->        <!-- 配置事务管理器 -->            <bean id="transactionManager"                class="org.springframework.orm.hibernate4.HibernateTransactionManager">                <property name="sessionFactory" ref="sessionFactory" />            </bean>                    <!-- 配置事务增强处理Bean,指定事务管理器 -->            <tx:advice id="transactionAdvice" transaction-manager="transactionManager">                <!-- 配置详细事务处理语义 -->                <tx:attributes>                    <tx:method name="insert*" propagation="REQUIRED" />                    <tx:method name="save*" propagation="REQUIRED" />                    <tx:method name="update*" propagation="REQUIRED" />                    <tx:method name="delete*" propagation="REQUIRED" />                            <tx:method name="get*" propagation="SUPPORTS" read-only="true" />                    <tx:method name="find*" propagation="SUPPORTS" read-only="true" />                    <tx:method name="select*" propagation="SUPPORTS" read-only="true" />                    <tx:method name="load*" propagation="SUPPORTS" read-only="true" />                    <tx:method name="list*" propagation="SUPPORTS" read-only="true" />                            <!-- 其他采用默认事务方式 -->                    <tx:method name="*" />                        </tx:attributes>            </tx:advice>                    <!-- Spring aop事务管理 -->            <aop:config>                <!-- 配置切入点 -->                <aop:pointcut id="transactionPointcut"                    expression="execution(* com.demo.service..*impl.*(..))" />                <!-- 指定在txAdvice切入点应用txAdvice事务增强处理 -->                <aop:advisor pointcut-ref="transactionPointcut"                    advice-ref="transactionAdvice" />            </aop:config>                              <!-- 使用annotation定义事务:如果没有用到注解事物~可以关闭 -->          <tx:annotation-driven transaction-manager="transactionManager" proxy-target-class="true" />               </beans>  

Spring-mvc.xml文件:

<?xml version="1.0" encoding="UTF-8"?>  <beans xmlns="http://www.springframework.org/schema/beans"      xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"      xmlns:p="http://www.springframework.org/schema/p" xmlns:context="http://www.springframework.org/schema/context"      xsi:schemaLocation="http://www.springframework.org/schema/beans                 http://www.springframework.org/schema/beans/spring-beans-4.3.xsd                 http://www.springframework.org/schema/context                 http://www.springframework.org/schema/context/spring-context-4.3.xsd                 http://www.springframework.org/schema/mvc                 http://www.springframework.org/schema/mvc/spring-mvc-4.3.xsd">        <!-- 自动扫描@Controller注入为bean -->      <context:component-scan base-package="com.demo.controller" />        <!-- 以下为SpringMVC配置 -->      <mvc:annotation-driven>          <!-- 返回json数据,@response使用 -->          <mvc:message-converters register-defaults="true">              <bean                  class="org.springframework.http.converter.json.MappingJackson2HttpMessageConverter">                  <property name="supportedMediaTypes">                      <list>                          <value>text/html;charset=UTF-8</value>                          <value>application/json;charset=UTF-8</value>                      </list>                  </property>                </bean>          </mvc:message-converters>      </mvc:annotation-driven>        <!-- 对模型视图名称的解析,即在模型视图名称添加前后缀 -->      <bean          class="org.springframework.web.servlet.view.InternalResourceViewResolver">          <property name="viewClass"              value="org.springframework.web.servlet.view.JstlView" />          <property name="prefix" value="/WEB-INF/pages/" />          <property name="suffix" value=".jsp" />      </bean>    </beans>

转载请注明原文地址: https://www.6miu.com/read-2630472.html

最新回复(0)