SSM整合

2018-08-28  本文已影响31人  PC_Repair

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

1.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"
         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主要功能概述:
<?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主要功能概述:
<?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
上一篇下一篇

猜你喜欢

热点阅读