SSM整合

作者: PC_Repair | 来源:发表于2018-08-28 08:37 被阅读31次

    ssm整合主要有3个配置文件,web.xmlspringmvc.xmlapplicationContext.xml

    1.web.xml主要功能概述:
    • 指定spring的配置文件为classpath下的applicationContext.xml
    • 设置中文过滤器
    • 指定spring mvc配置文件为classpath下的springMVC.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"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd"
             version="2.5">
    
      <!-- web.xml主要功能概述 -->
      <!-- 1.指定spring的配置文件为classpath下的applicationContext.xml -->
      <!-- 2.设置中文过滤器 -->
      <!-- 3.指定spring mvc配置文件为classpath下的springMVC.xml -->
    
      <!-- spring的配置文件 -->
      <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>
    
      <!-- 中文过滤器 -->
      <filter>
        <filter-name>CharacterEncodingFilter</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>
      </filter>
      <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
    
      <!-- spring mvc核心:分发servlet -->
      <servlet>
        <servlet-name>mvc-dispatcher</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <!-- spring mvc的配置文件 -->
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:springMVC.xml</param-value>
        </init-param>
        <load-on-startup>1</load-on-startup>
      </servlet>
      <servlet-mapping>
        <servlet-name>mvc-dispatcher</servlet-name>
        <url-pattern>/</url-pattern>
        <!-- /* 可以拦截一切路径,包括index、index.jsp、idnex.html等都可以被拦截 -->
        <!-- / 只能拦截url请求路径,也就是index这种,带有后缀名的就不能被拦截  -->
      </servlet-mapping>
    
    </web-app>
    

    2.springmvc.xml主要功能概述:
    • 启动注解识别
    • 自动扫描controller包
    • 配置映射器与适配器
    • 开通静态资源访问
    • 视图定位
    • 文件上传
    <?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/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd
            http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
            http://www.springframework.org/schema/mvc http://www.springframework.org/schema/mvc/spring-mvc-3.2.xsd">
    
        <!-- 启动注解的识别 -->
        <context:annotation-config/>
    
        <!--自动扫描该包,使SpringMVC认为包下用了@Controller注解的类是控制器-->
        <context:component-scan base-package="com.ljf.tmall.controller">
            <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller" />
        </context:component-scan>
    
        <!--配置映射器与适配器-->
    
        <!--因为<mvc:annotation-driven/>是用来配置RequestMappingHandlerMapping和RequestMappingHandlerAdapter两个bean,
        前者用于将URL映射到@RequestMapping注解的方法上,后者用于处理@Controller;
        但是不进行配置也没关系,不进行配置的话springMVC会自动加载DefaultAnnotationHandlerMapping和AnnotationMethodHandlerAdapter,也能处理*.do请求,
        但是现在这两个组件已经被官方标记为过时了,不推荐使用
        -->
        <mvc:annotation-driven />
    
        <!-- 开通静态资源的访问 -->
        <!-- html是静态文件,需在springMVC.xml中添加如下静态解析方法才能访问到-->
        <mvc:default-servlet-handler />
    
        <!-- 视图定位 -->
        <!--定义跳转的文件的前后缀,视图模式配置-这里的配置个人理解是自动给后面action的方法return的字符串加上前缀和后缀,变成一个可用的url地址-->
        <!-- 方法参数能够被ViewResolver修改 -->
        <bean
            class="org.springframework.web.servlet.view.InternalResourceViewResolver">
            <property name="viewClass"
                      value="org.springframework.web.servlet.view.JstlView" />
            <!-- 把视图约定在 /WEB-INF/jsp/*.jsp 位置 -->
            <property name="prefix" value="/WEB-INF/jsp/" />
            <property name="suffix" value=".jsp" />
        </bean>
    
        <!-- 对上传文件的解析 :开放上传功能的支持 -->
        <bean id="multipartResolver"
              class="org.springframework.web.multipart.commons.CommonsMultipartResolver" />
    </beans>
    

    3.applicationContext.xml主要功能概述:
    • 启动注解识别
    • 自动扫描service包
    • 导入数据库配置文件
    • 配置数据库连接池
    • 整合Spring和MyBatis
    • Mybatis的Mapper文件识别
    <?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/context http://www.springframework.org/schema/context/spring-context-3.0.xsd
         http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-3.0.xsd">
    
        <!-- 启动对注解的识别-->
        <context:annotation-config />
    
        <!-- 自动扫描service包-->
        <context:component-scan base-package="com.ljf.tmall.service" />
    
        <!-- 导入数据库配置文件 -->
        <context:property-placeholder location="classpath:jdbc.properties" />
        <!-- 配置数据库连接池 -->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
            <!-- 基本属性 url、user、password -->
            <property name="url" value="${jdbc.url}" />
            <property name="username" value="${jdbc.username}" />
            <property name="password" value="${jdbc.password}" />
            <!--druid连接池中配置driver的属性叫"driverClassName"-->
            <!--配置成<property name="driverClassName" value="${jdbc.driver}"/>即可,不配置也可以是因为druid会根据url自动识别数据库类型-->
    
            <!-- 配置初始化大小、最小、最大 -->
            <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" />
    
            <property name="validationQuery" value="SELECT 1" />
            <property name="testWhileIdle" value="true" />
            <property name="testOnBorrow" value="false" />
            <property name="testOnReturn" value="false" />
    
            <!-- 打开PSCache,并且指定每个连接上PSCache的大小 -->
            <property name="poolPreparedStatements" value="true" />
            <property name="maxPoolPreparedStatementPerConnectionSize"
                      value="20" />
        </bean>
    
        <!-- Mybatis的SessionFactory配置 -->
        <!--Spring和MyBatis完美整合,不需要mybatis的配置映射文件-->
        <bean id="sqlSession" class="org.mybatis.spring.SqlSessionFactoryBean">
            <property name="typeAliasesPackage" value="com.ljf.tmall.pojo" />
            <property name="dataSource" ref="dataSource" />
            <!--自动扫描mapping.xml文件-->
            <property name="mapperLocations" value="classpath:mapper/*.xml" />
            <!-- 分页插件,目前先注释,后面重构的时候才会用到 -->
            <property name="plugins">
                <array>
                    <bean class="com.github.pagehelper.PageInterceptor">
                        <property name="properties">
                            <value>
    
                            </value>
                        </property>
                    </bean>
                </array>
            </property>
        </bean>
    
        <!--Mybatis的Mapper文件识别-->
        <!--DAO接口所在的包名,Spring会自动查找其下的类-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <property name="basePackage" value="com.ljf.tmall.mapper"/>
        </bean>
    
    </beans>
    
    ssm项目目录结构.png

    相关文章

      网友评论

          本文标题:SSM整合

          本文链接:https://www.haomeiwen.com/subject/tjzxwftx.html