spring、springMVC、springData、jpa项目整合

本博客内容是sssp(spring、spingMVC、springData、jpa)项目的整合过程,希望此内容能够帮到有需要的人。

环境介绍:eclipse、jdk1.8、spring4.2.5

一、在eclipse中新建dynamic web project。

二、加入spring

  • 加入spring必须的jar包(其中包含了spring和springMVC所需要的jar包):
    com.springsource.net.sf.cglib-2.2.0.jar
    com.springsource.org.aopalliance-1.0.0.jar
    com.springsource.org.aspectj.weaver-1.6.8.RELEASE.jar
    commons-logging-1.2.jar
    spring-aop-4.2.5.RELEASE.jar
    spring-aspects-4.2.5.RELEASE.jar
    spring-beans-4.2.5.RELEASE.jar
    spring-context-4.2.5.RELEASE.jar
    spring-core-4.2.5.RELEASE.jar
    spring-expression-4.2.5.RELEASE.jar
    spring-jdbc-4.2.5.RELEASE.jar
    spring-orm-4.2.5.RELEASE.jar
    spring-tx-4.2.5.RELEASE.jar
    spring-web-4.2.5.RELEASE.jar
    spring-webmvc-4.2.5.RELEASE.jar

  • 在classpath下加入sping的配置文件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:jpa="http://www.springframework.org/schema/data/jpa"
    xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd
        http://www.springframework.org/schema/data/jpa http://www.springframework.org/schema/data/jpa/spring-jpa-1.3.xsd
        http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx-4.0.xsd
        http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-4.0.xsd">

    <!-- 配置自动扫描的包 -->
    <context:component-scan base-package="com.scry.sssp">
        <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:exclude-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
    </context:component-scan>

    <!-- 配置 C3P0 数据源 ,数据源信息保存在classpath下的db.properties文件中 -->
    <context:property-placeholder location="classpath:db.properties"/>

    <bean id="dataSource"
        class="com.mchange.v2.c3p0.ComboPooledDataSource">
        <property name="user" value="${jdbc.user}"></property> 
        <property name="password" value="${jdbc.password}"></property> 
        <property name="driverClass" value="${jdbc.driverClass}"></property>   
        <property name="jdbcUrl" value="${jdbc.jdbcUrl}"></property>   

        <!-- 配置其他属性 -->
    </bean>

    <!-- 配置 JPA 的 EntityManagerFactory -->
    <bean id="entityManagerFactory"
        class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean">
        <property name="dataSource" ref="dataSource"></property>
        <!-- 配置 JPA 提供商的适配器. 可以通过内部 bean 的方式来配置 -->
        <property name="jpaVendorAdapter">
            <bean class="org.springframework.orm.jpa.vendor.HibernateJpaVendorAdapter"></bean>
        </property> 
        <!-- 配置实体类所在的包 -->
        <property name="packagesToScan" value="com.scry.sssp"></property>
        <!-- 配置 JPA 的基本属性. 例如 JPA 实现产品的属性(hibernate的属性) -->
        <property name="jpaProperties">
            <props>
                <!-- 生成的数据表的列的映射策略 -->
                <prop key="hibernate.ejb.naming_strategy">org.hibernate.cfg.ImprovedNamingStrategy</prop>
                <!-- hibernate 基本属性 -->
                <prop key="hibernate.hbm2ddl.auto">update</prop>
                <prop key="hibernate.show_sql">true</prop>
                <prop key="hibernate.format_sql">true</prop>
                <prop key="hibernate.dialect">org.hibernate.dialect.MySQL5InnoDBDialect</prop>

                <prop key="hibernate.cache.use_second_level_cache">true</prop>
                <prop key="hibernate.cache.region.factory_class">org.hibernate.cache.ehcache.EhCacheRegionFactory</prop>
                <prop key="hibernate.cache.use_query_cache">true</prop>
            </props>
        </property>
        <property name="sharedCacheMode" value="ENABLE_SELECTIVE"></property>
    </bean>

    <!-- 配置 JPA 使用的事务管理器 -->
    <bean id="transactionManager"
        class="org.springframework.orm.jpa.JpaTransactionManager">
        <property name="entityManagerFactory" ref="entityManagerFactory"></property>    
    </bean>

    <!-- 配置支持基于注解的事务 -->
    <tx:annotation-driven transaction-manager="transactionManager"/>

    <!-- 配置 SpringData,base-package:扫描Repository bean所在的package -->
    <jpa:repositories base-package="com.scry.sssp"
        entity-manager-factory-ref="entityManagerFactory"></jpa:repositories>

</beans>
  • 在web.xml中配置启动 IOC 容器的 Listener
<!-- 配置启动 IOC 容器的 Listener -->
    <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:applicationContext.xml</param-value>
    </context-param>

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

二、加入springMVC

  • 在WEB-INF下加入springMVC的配置文件springDispatcherServlet-servlet.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:mvc="http://www.springframework.org/schema/mvc"
    xsi:schemaLocation="http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-4.0.xsd
        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-4.0.xsd">

    <!-- 配置自动扫描的包 -->
    <context:component-scan base-package="com.scry.sssp" use-default-filters="false">
        <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
        <context:include-filter type="annotation" expression="org.springframework.web.bind.annotation.ControllerAdvice"/>
    </context:component-scan>

    <!-- 配置视图解析器 -->
    <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver">
        <property name="prefix" value="/WEB-INF/views/"></property>
        <property name="suffix" value=".jsp"></property>
    </bean>

    <mvc:default-servlet-handler/>
    <mvc:annotation-driven></mvc:annotation-driven>

</beans>
  • 在web.xml中配置 SpringMVC 的 DispatcherServlet
<!-- 配置 SpringMVC 的 DispatcherServlet -->
<servlet>
        <servlet-name>springDispatcherServlet</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- 配置DispatcherServlet的一个初始化参数:配置SpringMVc配置文件的位置和名称 -->
        <!-- 
        <init-param>
            <param-name>contextConfigLocation</param-name>
            <param-value>classpath:springmvc.xml</param-value>
        </init-param> 
        -->
        <!-- 如果不配置文件的路径,默认读取 /WEB-INF/<servlet-name>-servlet.xml 例如:/WEB-INF/springDispatcherServlet-servlet.xml -->
        <load-on-startup>1</load-on-startup>
    </servlet>

    <servlet-mapping>
        <servlet-name>springDispatcherServlet</servlet-name>
        <url-pattern>/</url-pattern>
    </servlet-mapping>

三、加入JPA

  • 加入JPA所需的jar包,此jar包多数可在hibernate的jar包中找到
    antlr-2.7.7.jar
    dom4j-1.6.1.jar
    hibernate-commons-annotations-4.0.5.Final.jar
    hibernate-core-4.3.11.Final.jar
    hibernate-jpa-2.1-api-1.0.0.Final.jar
    jandex-1.1.0.Final.jar
    javassist-3.18.1-GA.jar
    jboss-logging-3.1.3.GA.jar
    jboss-logging-annotations-1.2.0.Beta1.jar
    jboss-transaction-api_1.2_spec-1.0.0.Final.jar
    hibernate-entitymanager-4.3.11.Final.jar
    c3p0-0.9.2.1.jar
    hibernate-c3p0-4.3.11.Final.jar
    mchange-commons-java-0.2.3.4.jar
    ehcache-core-2.4.3.jar
    hibernate-ehcache-4.3.11.Final.jar
    slf4j-api-1.6.1.jar
    mysql-connector-java-5.1.7-bin.jar

  • 在applicationContext.xml中配置JPA相关信息(具体代码在前面的applicationContext.xml中)

四、加入springData

  • 加入jar包
    spring-data-jpa-1.4.2.RELEASE.jar
    spring-data-commons-1.6.2.RELEASE.jar

  • 在applicationContext.xml中配置springData相关信息(具体代码在前面的applicationContext.xml中)

到此整个整合过程配置结束。

五、项目结构
这里写图片描述

可以建立单元测试类SSSPTest.java进行测试
这里写图片描述

猜你喜欢

转载自blog.csdn.net/Scryhuaihuai/article/details/79013061
今日推荐