SSM整合之相关配置文件部分内容解析

applicationContext.xml

  1. context:exclude-filter
<context:component-scan base-package="top.kongk.ssmcrud">
     <!--exclude-filter其意为不扫描指定注解标识的类,
     其他相关注解标识类全部扫描-->
     <context:exclude-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
  1. aop:config
<!--切面配置-->
<aop:config>
     <!--切入点表达式-->
     <!-- execution括号里 public可以不写,
     第一个*代表返回类型 service后的两个点代表包含子包, 
     第二个*代表所有的方法, 后面的两个..代表方法任意参数 -->
     <aop:pointcut id="txPointCut" expression="execution(* top.kongk.ssmcrud.service..*(..))"/>
     <!--关联事务增强-->
     <aop:advisor advice-ref="txAdvice" pointcut-ref="txPointCut"/>
</aop:config>
  1. tx:advice
<!--配置事务增强-->
<tx:advice id="txAdvice" transaction-manager="transactionManager">
    <tx:attributes>
        <!-- *代表所有的方法都是事务方法 -->
        <tx:method name="*"/>
        <!-- 给get方法做只读的调优处理-->
        <tx:method name="get*" read-only="true"/>
    </tx:attributes>
</tx:advice>

mybatis-config.xml

  1. settings
<settings>
    <!--开启驼峰命名规则映射-->
    <!--从数据库的a_column命名方式转换到Java的aColumn-->
    <setting name="mapUnderscoreToCamelCase" value="true"/>
    <!--指定MyBatis所用日志的集体实现,未指定则自动查找-->
    <setting name="logImpl" value="LOG4J"/>
</settings>

dispatcherServlet.xml

  1. context:include-filter
<!--属性use-default-filters="false"和context:include-filter子标签一起使用,
	其意为:只扫描指定注解的类。
	context:exclude-filter直接使用-->
<context:component-scan base-package="top.kongk.ssmcrud.controller" use-default-filters="false">
    <context:include-filter type="annotation" expression="org.springframework.stereotype.Controller"/>
</context:component-scan>
  1. mvc:default-servlet-handler:会在Spring MVC上下文中定义一个org.springframework.web.servlet.resource.DefaultServletHttpRequestHandler,它会像一个检查员,对进入DispatcherServlet的URL进行筛查,如果发现是静态资源的请求,就将该请求转由Web应用服务器默认的Servlet处理,如果不是静态资源的请求,才由DispatcherServlet继续处理
<!--将mvc不能处理的资源交给tomcat的Servlet-->
<mvc:default-servlet-handler/>
  1. mvc:annotation-driven
<!--添加了注解驱动配置,可以使用mvc的更高级的功能, 
例如 JSP03校验, 快捷的ajax, 映射动态请求-->
<mvc:annotation-driven/>

web.xml

  1. filter过滤器
在Spring框架中是如何解决从页面传来的字符串的编码问题的呢?
下面我们来看看Spring框架给我们提供过滤器CharacterEncodingFilter
这个过滤器就是针对于每次浏览器请求进行过滤的,然后再其之上添加
了父类没有的功能即处理字符编码。
<filter>
    <filter-name>characterEncodingFilter</filter-name>
    <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>
    <init-param>
    	其中encoding用来设置编码格式
        <param-name>encoding</param-name>
        <param-value>UTF-8</param-value>
    </init-param>
    <init-param>
        forceEncoding用来设置是否理会 request.getCharacterEncoding()方法,
        设置为true则强制覆盖之前的编码格式
        <param-name>forceEncoding</param-name>
        <param-value>true</param-value>
    </init-param>
</filter>
配置rest风格的URI (统一资源标识符)的filter HiddenHttpMethodFilter
它会把post请求通过传来的一个map键值对, 转变成相应的put delete
<filter>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
</filter>
配置PUT请求
<filter>
    <filter-name>httpPutFormContentFilter</filter-name>
    <filter-class>org.springframework.web.filter.HttpPutFormContentFilter</filter-class>
</filter>
<!--/*是拦截所有的文件夹,不包含子文件夹 /**是拦截所有的文件夹及里面的子文件夹-->
<filter-mapping>
    <filter-name>httpPutFormContentFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>characterEncodingFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>

<filter-mapping>
    <filter-name>hiddenHttpMethodFilter</filter-name>
    <url-pattern>/*</url-pattern>
</filter-mapping>
  1. Servlet
<!--在DispatcherServlet的初始化过程中,
框架会在web应用的 WEB-INF文件夹下寻找
名为[servlet-name]-servlet.xml 的配置文件,
生成文件中定义的bean。-->
<servlet>
    <servlet-name>dispatcherServlet</servlet-name>
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
    <!--指明了配置文件的文件名,不使用默认配置文件名,
    而使用dispatcher-servlet.xml配置文件。-->
    <init-param>
        <param-name>contextConfigLocation</param-name>
        <!--其中<param-value>**.xml</param-value> 这里可以使用多种写法-->
        <!--1、不写,使用默认值:/WEB-INF/<servlet-name>-servlet.xml-->
        <!--2、<param-value>/WEB-INF/classes/dispatcher-servlet.xml</param-value>-->
        <!--3、<param-value>classpath*:dispatcher-servlet.xml</param-value>-->
        <!--4、多个值用逗号分隔-->
        <param-value>classpath:springmvc/dispatcherServlet.xml</param-value>
    </init-param>
    <!--是启动顺序,让这个Servlet随Servletp容器一起启动。-->
    <load-on-startup>1</load-on-startup>
</servlet>
<servlet-mapping>
    <!--这个Servlet的名字是dispatcher,可以有多个DispatcherServlet,
    是通过名字来区分的。
    每一个DispatcherServlet有自己的WebApplicationContext上下文对象。
    同时保存的ServletContext中和Request对象中.-->
    <!--ApplicationContext是Spring的核心,Context我们通常解释为上下文环境,
    我想用“容器”来表述它更容易理解一些,ApplicationContext则是“应用的容器”了:P,
    Spring把Bean放在这个容器中,在需要的时候,用getBean方法取出-->
    <servlet-name>dispatcherServlet</servlet-name>
    <!--Servlet拦截匹配规则可以自已定义,
    当映射为@RequestMapping("/user/add")时,为例,拦截哪种URL合适?-->
    <!--1、拦截*.do、*.htm, 例如:/user/add.do,这是最传统的方式,
    最简单也最实用。不会导致静态文件(jpg,js,css)被拦截。-->
    <!--2、拦截/,例如:/user/add,可以实现现在很流行的REST风格。
    很多互联网类型的应用很喜欢这种风格的URL。
    弊端:会导致静态文件(jpg,js,css)被拦截后不能正常显示。 -->
    <url-pattern>/</url-pattern> <!--会拦截URL中带“/”的请求。-->
</servlet-mapping>

猜你喜欢

转载自blog.csdn.net/weixin_43894879/article/details/105833029
今日推荐