SSM(spring + springMVC + mybatis)配置

5 篇文章 0 订阅
2 篇文章 0 订阅

1、引入相关jar包(这里还包括很多扩展内容)
1、
2、
3、
2、web.xml配置(包括了restful风格配置、自定义过滤器和谷歌Kaptcha插件)

<?xml version="1.0" encoding="UTF-8"?>
<web-app version="3.0" 
    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">
  <!-- 配置spring容器监听器 -->
  <context-param>
    <param-name>contextConfigLocation</param-name>
    <param-value>/WEB-INF/classes/spring/applicationContext-*.xml</param-value>
  </context-param>

  <!-- 监听器 -->
  <listener>
    <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
  </listener>

  <!-- 前端控制器 -->
  <servlet>
    <servlet-name>springMVC</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/springMVC.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMVC</servlet-name>
    <url-pattern>*.action</url-pattern>
  </servlet-mapping>

  <!-- restful的前端控制器配置 -->
  <!-- <servlet>
    <servlet-name>springMVC_rest</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>classpath:spring/springMVC.xml</param-value>
    </init-param>
  </servlet>
  <servlet-mapping>
    <servlet-name>springMVC_rest</servlet-name>
    restful配置位/拦截所有
    <url-pattern>/</url-pattern>
  </servlet-mapping> -->

  <!-- 过滤器 -->  
  <filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>com.yy.utils.CharacterEncodingFilter</filter-class>
  </filter>
  <filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
  </filter-mapping>

  <!-- 验证码插件 -->
  <servlet>
        <servlet-name>Kaptcha</servlet-name>
        <servlet-class>com.google.code.kaptcha.servlet.KaptchaServlet</servlet-class>

  </servlet>
  <servlet-mapping>
        <servlet-name>Kaptcha</servlet-name>
        <url-pattern>/kaptcha.jpg</url-pattern>
  </servlet-mapping>

  <display-name></display-name> 
  <welcome-file-list>
    <welcome-file>index.jsp</welcome-file>
  </welcome-file-list>
</web-app>

3、分模块配置spring

以下4个文件在spring目录下
spring配置文件
mybatis下只有SqlMapConfig.xml
这里写图片描述
properties文件:
CustomValidationMessage.properties是验证时用到的错误信息提示文件
jdbc.properties提供了是连接数据库的驱动,用户名,密码以及url
log4j.properties是日志文件

(1)springMVC.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:mvc="http://www.springframework.org/schema/mvc"
    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-3.2.xsd 
        http://www.springframework.org/schema/mvc 
        http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd 
        http://www.springframework.org/schema/context 
        http://www.springframework.org/schema/context/spring-context-3.2.xsd 
        http://www.springframework.org/schema/aop 
        http://www.springframework.org/schema/aop/spring-aop-3.2.xsd 
        http://www.springframework.org/schema/tx 
        http://www.springframework.org/schema/tx/spring-tx-3.2.xsd ">

        <!-- 注解的handler -->
        <!-- <bean class="com.yy.springMVC.ItemsController3"/> -->
        <!-- spring的注解扫描 -->
        <context:component-scan base-package="com.yy.controller"/>

        <!-- 可以替代映射器和适配器 -->
        <mvc:annotation-driven conversion-service="conversionService"/>

        <!-- 需要配置静态资源解析 (配置restful以后静态资源访问会出现问题)-->
        <!-- <mvc:resources location="/" mapping="/**/*.js"/>  
        <mvc:resources location="/" mapping="/**/*.css"/>  
        <mvc:resources location="/" mapping="/**/*.jpg"/>  
        <mvc:resources location="/" mapping="/**/*.png"/>  
        <mvc:resources location="/" mapping="/**/*.gif"/>  
        <mvc:resources location="/assets/" mapping="/assets/**/*"/>  
        <mvc:resources location="/images/" mapping="/images/*" cache-period="360000"/>
        <mvc:resources location="/images1/" mapping="/images1/*" cache-period="360000"/> -->

        <bean id="conversionService" class="org.springframework.format.support.FormattingConversionServiceFactoryBean">
            <!-- 转换器 -->
            <property name="converters">
                <list>
                    <bean class="com.yy.controller.converter.CustomDateConverter"/>
                    <bean class="com.yy.controller.converter.StringTrimConverter"/>
                </list>
            </property>
        </bean>

        <!-- 校验器 -->
        <bean id="validator" class="org.springframework.validation.beanvalidation.LocalValidatorFactoryBean">
            <!-- 注入Hibernate校验器 -->
            <property name="providerClass" value="org.hibernate.validator.HibernateValidator"/>
            <!-- 指定校验所使用的资源文件,如果不指定默认使用classes下面的 -->
            <property name="validationMessageSource" ref="messageSource"/>
        </bean>

        <!-- 校验错误信息配置文件 -->
        <bean id="messageSource" class="org.springframework.context.support.ReloadableResourceBundleMessageSource">
            <!-- 资源文件名 -->
            <property name="basenames">
                <list>
                    <value>
                        classpath:CustomValidationMessages
                    </value>
                </list>
            </property>
            <!-- 资源文件的编码格式 -->
            <property name="fileEncodings" value="utf-8"/>
            <!-- 对资源文件缓冲时间 -->
            <property name="cacheSeconds" value="120"/>
        </bean>

        <!-- 拦截器 -->
        <!-- <mvc:interceptors>
            可配置多个
            <mvc:interceptor>
                <mvc:mapping path="/**"/>
                <mvc:exclude-mapping path="/**/fonts/*"/>
                <mvc:exclude-mapping path="/**/*.css"/>
                <mvc:exclude-mapping path="/**/*.js"/>
                <mvc:exclude-mapping path="/**/*.png"/>
                <mvc:exclude-mapping path="/**/*.gif"/>      
                <mvc:exclude-mapping path="/**/*.jpg"/>
                <mvc:exclude-mapping path="/**/*.jpeg"/>
                <mvc:exclude-mapping path="/**/*login*"/>
                <mvc:exclude-mapping path="/**/*Login*"/>
                <bean class="com.yy.controller.interceptor.LoginInterceptor"/>
            </mvc:interceptor>
        </mvc:interceptors> -->

        <!-- 配置处理器映射器 
             根据bean的name进行查找Handler 将action的url配置在bean的name中 -->
        <!-- <bean class="org.springframework.web.servlet.handler.BeanNameUrlHandlerMapping"/> -->

        <!-- 注解映射器 -->
        <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping"/> -->

        <!-- 注解适配器 -->
        <!-- <bean class="org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerAdapter">
            自定义属性编辑器
            <property name="webBindingInitializer" ref="customBinder"></property>
        </bean> -->

        <!-- 文件上传 -->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!-- 设置上传文件的最大尺寸为5MB -->
            <property name="maxUploadSize">
                <value>5242800</value>
            </property>
        </bean>

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

        <!-- 注册属性编辑器 -->
        <!-- <bean id="customPropertyEditor" class="com.yy.controller.propertyeditor.CustomPropertyEditor"></bean> -->
        <!-- 自定义的属性编辑器 -->
        <!-- <bean id="customBinder" class="org.springframework.web.bind.support.ConfigurableWebBindingInitializer">
            <property name="propertyEditorRegistrars">
                <list>
                    <ref bean="customPropertyEditor"/>
                </list>
            </property>
        </bean> -->
</beans>

(2)、applicationContext-dao.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:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:instance="http://www.springframework.org/schema/instance"
        xsi:schemaLocation= "http://www.springframework.org/schema/beans 
                            http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
                            http://www.springframework.org/schema/aop
                            http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
                            http://www.springframework.org/schema/context
                            http://www.springframework.org/schema/context/spring-context-3.2.xsd
                            http://www.springframework.org/schema/tx 
                            http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
    <!-- 数据源 -->                            
    <!-- 加载配置文件 -->
    <context:property-placeholder location="classpath:jdbc.properties"/>
    <!-- 数据库连接池 -->
    <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close">
        <property name="driverClassName" value="${jdbc.driver}"/>
        <property name="url" value="${jdbc.url}"/>
        <property name="username" value="${jdbc.username}"/>
        <property name="password" value="${jdbc.password}"/>
        <property name="maxActive" value="10"/>
        <property name="maxIdle" value="5"/>
    </bean>

    <!-- SqlSessionFactory -->
    <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
        <!-- 注入数据源 -->
        <property name="dataSource" ref="dataSource"></property>
        <!-- mybatis配置文件 -->
        <property name="configLocation" value="classpath:mybatis/SqlMapConfig.xml"/>
    </bean>

    <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
        <!-- 配置扫描包的路径
              如果要扫描多个包,中间使用多个半角逗号分隔
              要求mapper.xml和mapper.java同名且在同一目录下
         -->
        <property name="basePackage" value="com.yy.mapper"/>
        <!-- 如果使用SqlSessionFactory会和  加载配置文件时冲突-->
        <!-- 所以使用SqlSessionFactoryBeanName -->
        <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
    </bean>

</beans>

(3)、applicationContext-service.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:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:instance="http://www.springframework.org/schema/instance"
        xsi:schemaLocation= "http://www.springframework.org/schema/beans 
                            http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
                            http://www.springframework.org/schema/aop
                            http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
                            http://www.springframework.org/schema/context
                            http://www.springframework.org/schema/context/spring-context-3.2.xsd
                            http://www.springframework.org/schema/tx 
                            http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">

    <!-- 注入service(单个注入) -->
    <!-- <bean id="userService" class="com.yy.service.impl.UserServiceImpl"/> -->
    <!-- spring的注解扫描 -->
        <context:component-scan base-package="com.yy.service"/>

</beans>

(4)、applicationContext-transaction.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:aop="http://www.springframework.org/schema/aop"
        xmlns:tx="http://www.springframework.org/schema/tx"
        xmlns:context="http://www.springframework.org/schema/context"
        xmlns:instance="http://www.springframework.org/schema/instance"
        xsi:schemaLocation= "http://www.springframework.org/schema/beans 
                            http://www.springframework.org/schema/beans/spring-beans-3.2.xsd
                            http://www.springframework.org/schema/aop
                            http://www.springframework.org/schema/aop/spring-aop-3.2.xsd
                            http://www.springframework.org/schema/context
                            http://www.springframework.org/schema/context/spring-context-3.2.xsd
                            http://www.springframework.org/schema/tx 
                            http://www.springframework.org/schema/tx/spring-tx-3.2.xsd">
    <!-- 使用声明式事务配置,可以有效地规范代码 -->
    <!-- 事务管理器 -->
    <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
        <property name="dataSource" ref="dataSource"></property>
    </bean>

    <!-- 通知 -->
    <tx:advice id="txAdvice" transaction-manager="transactionManager">
        <tx:attributes>
            <tx:method name="get*" 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="find*" propagation="SUPPORTS" read-only="true" />
            <tx:method name="save*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
            <tx:method name="insert*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
            <tx:method name="update*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
            <tx:method name="delete*" propagation="REQUIRED" rollback-for="java.lang.Exception"/>
        </tx:attributes>
    </tx:advice>


    <!-- aop -->
    <aop:config>
        <aop:advisor advice-ref="txAdvice" pointcut="execution( * com.yy.service..*.*(..))"/>
    </aop:config>

</beans>

(5)SqlMapConfig.xml

<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>

    <!-- 属性定义
    加载一个properties文件
    在 properties标签中配置属性值
     -->
    <!-- <properties resource="jdbc.properties">
        <property name="" value=""/>
    </properties> -->

    <settings>
        <!-- 延迟加载总开关 -->
        <setting name="lazyLoadingEnabled" value="true"/>
        <!-- 设置按需加载 -->
        <setting name="aggressiveLazyLoading" value="false"/>
    </settings>

    <!-- 定义 别名 -->
    <typeAliases>
        <!--
        单个别名的定义
        alias:别名,type:别名映射的类型  -->
             <!-- <typeAlias type="com.yy.mybatis.po.User" alias="user"/> -->
        <!-- 批量别名定义
        指定包路径,自动扫描包下边的pojo,定义别名,别名默认为类名(首字母小写或大写)
         -->
        <package name="com.yy.po"/>

    </typeAliases>

    <!-- 和spring整合后 environments配置将废除-->
    <!-- <environments default="development">
        <environment id="development">
        使用jdbc事务管理
            <transactionManager type="JDBC" />
        数据库连接池
            <dataSource type="POOLED">
                <property name="driver" value="${jdbc.driver}"/>
                <property name="url" value="${jdbc.url}"/>
                <property name="username" value="${jdbc.username}"/>
                <property name="password" value="${jdbc.password}"/>
            </dataSource>
        </environment>
    </environments> -->


    <!--加载mapper映射
    如果将和spring整合后,可以使用整合包中提供的mapper扫描器,此处的mappers不用配置了。
     -->
    <!-- <mappers>
        通过resource引用mapper的映射文件
        <mapper resource="sqlmap/User.xml" />
        <mapper resource="mapper/Usermapper.xml" />

        通过class引用mapper接口 
        class:配置mapper接口全限定名
        要求:需要mapper.xml和mapper.java同名并且在一个目录 中

        <mapper class="com.yy.mybatis.mapper.UserMapper"/>
        批量mapper配置 
        通过package进行自动扫描包下边的mapper接口,
        要求:需要mapper.xml和mapper.java同名并且在一个目录 中


        <package name="com.yy.mapper"/>

    </mappers> -->


</configuration>
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值