• SpringMvc 项目配置


    spring-mvc.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-4.2.xsd
            http://www.springframework.org/schema/mvc
            http://www.springframework.org/schema/mvc/spring-mvc-4.2.xsd
            http://www.springframework.org/schema/context
            http://www.springframework.org/schema/context/spring-context.xsd
            http://www.springframework.org/schema/aop
            http://www.springframework.org/schema/aop/spring-aop-4.2.xsd
            http://www.springframework.org/schema/tx
            http://www.springframework.org/schema/tx/spring-tx.xsd">
    
    
    
        <context:component-scan base-package="com.liuyanzhao.ssm.blog" />
    
        <!-- 一个配置节解决映射器和适配器的配置注解配置 -->
        <mvc:annotation-driven></mvc:annotation-driven>
    
        <!-- 配置视图解析器
            进行jsp解析,默认使用jstl标签,classpath下得有jstl的包
        -->
        <bean class="org.springframework.web.servlet.view.InternalResourceViewResolver" >
            <!--配置前缀和后缀,也可以不指定-->
            <property name="prefix" value="/WEB-INF/view/"/>
            <property name="suffix" value=".jsp"/>
        </bean>
    
        <!--&lt;!&ndash;文件上传&ndash;&gt;-->
        <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">
            <!--设置上传最大尺寸为50MB-->
            <property name="maxUploadSizePerFile" value="52428800"/>
            <property name="defaultEncoding" value="UTF-8"/>
            <property name="resolveLazily" value="true"/>
        </bean>
    
    
    
        <!-- 静态资源映射 -->
        <mvc:resources mapping="/css/**" location="/resource/assets/css/"></mvc:resources>
        <mvc:resources mapping="/js/**" location="/resource/assets/js/"></mvc:resources>
        <mvc:resources mapping="/img/**" location="/resource/assets/img/"></mvc:resources>
        <mvc:resources mapping="/plugin/**" location="/resource/assets/plugin/"></mvc:resources>
    
    
        <mvc:interceptors>
            <mvc:interceptor>
                <mvc:mapping path="/**"/>
                <bean class="com.liuyanzhao.ssm.blog.interceptor.HomeResourceInterceptor"/>
            </mvc:interceptor>
            <mvc:interceptor>
                <mvc:mapping path="/admin"/>
                <bean class="com.liuyanzhao.ssm.blog.interceptor.SecurityInterceptor"/>
            </mvc:interceptor>
            <mvc:interceptor>
                <mvc:mapping path="/admin/**"/>
                <bean class="com.liuyanzhao.ssm.blog.interceptor.SecurityInterceptor"/>
            </mvc:interceptor>
    
        </mvc:interceptors>
    </beans>

    spring-mybatis.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: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.xsd
        http://www.springframework.org/schema/context
        http://www.springframework.org/schema/context/spring-context.xsd
        http://www.springframework.org/schema/aop
        http://www.springframework.org/schema/aop/spring-aop.xsd
        http://www.springframework.org/schema/tx
        http://www.springframework.org/schema/tx/spring-tx.xsd">
    
    
        <!--加载db.properties-->
        <context:property-placeholder location="classpath:db.properties"/>
    
        <!--配置druid连接池-->
        <bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
            <!-- 基本属性 url、user、password -->
            <property name="driverClassName" value="com.mysql.jdbc.Driver" />
            <property name="url" value="${mysql.url}" />
            <property name="username" value="${mysql.username}" />
            <property name="password" value="${mysql.password}" />
    
            <!-- 配置初始化大小、最小、最大 -->
            <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 'x'" />
            <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" />
    
            <!-- 配置监控统计拦截的filters,去掉后监控界面sql无法统计 -->
            <property name="filters" value="stat" />
        </bean>
    
    
        <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">
            <!--数据库连接池-->
            <property name="dataSource" ref="dataSource"/>
            <!--加载mybatis全局配置文件-->
            <property name="configLocation" value="classpath:mybatis/mybatis-config.xml"/>
            <!--mapper.xml所在位置-->
            <property name="mapperLocations" value="classpath*:mapper/*Mapper.xml" />
            <!--指定需要使用别名的PO类所在的包-->
            <property name="typeAliasesPackage" value="com.liuyanzhao.ssm.blog.entity" />
        </bean>
    
        <!--mapper扫描器-->
        <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">
            <!--如果需要扫描多个包,中间使用半角逗号隔开-->
            <property name="basePackage" value="com.liuyanzhao.ssm.blog.mapper"></property>
            <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"/>
        </bean>
    
    
    
        <!-- 对mybatis操作数据事务控制,spring使用jdbc的事务控制类 -->
        <bean id="transactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
            <!-- 数据源dataSource在spring-mybatis.xml中配置了 -->
            <property name="dataSource" ref="dataSource"/>
        </bean>
    
        <!-- 通知 -->
        <tx:advice id="txAdvice" transaction-manager="transactionManager">
            <tx:attributes>
                <tx:method name="save*" propagation="REQUIRED"/>
                <tx:method name="delete*" propagation="REQUIRED"/>
                <tx:method name="update*" propagation="REQUIRED"/>
                <tx:method name="insert*" propagation="REQUIRED"/>
                <tx:method name="find*" propagation="SUPPORTS" read-only="true"/>
                <tx:method name="get*" propagation="SUPPORTS" read-only="true"/>
                <tx:method name="select*" propagation="SUPPORTS" read-only="true"/>
            </tx:attributes>
        </tx:advice>
    
        <aop:config>
            <aop:advisor advice-ref="txAdvice" pointcut="execution(* com.liuyanzhao.ssm.blog.service.impl.*.*(..))"/>
        </aop:config>
    
    
    </beans>

    mybatis-config.xml

    <?xml version="1.0" encoding="UTF-8" ?>
    <!DOCTYPE configuration
            PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
            "http://mybatis.org/dtd/mybatis-3-config.dtd">
    <configuration>
    
        <!-- 全局配置 -->
        <settings>
            <!--允许 JDBC 支持自动生成主键-->
            <setting name="useGeneratedKeys" value="false"/>
            <!--是否开启自动驼峰命名规则(camel case)映射,即从经典数据库列名 A_COLUMN 到经典
                Java 属性名 aColumn 的类似映射。 -->
            <setting name="mapUnderscoreToCamelCase" value="true"/>
        </settings>
    
        <plugins>
            <plugin interceptor="com.github.pagehelper.PageHelper">
                <!--<property name="dialect" value="mysql"/>-->
                <property name="offsetAsPageNum" value="false"/>
                <property name="rowBoundsWithCount" value="false"/>
                <property name="pageSizeZero" value="true"/>
                <property name="reasonable" value="true"/>
                <property name="supportMethodsArguments" value="false"/>
                <property name="returnPageInfo" value="none"/>
            </plugin>
        </plugins>
    
    </configuration>

    db.properties

    #MySQL
    mysql.url=jdbc:mysql://127.0.0.1:3306/forest_blog?useUnicode=true&characterEncoding=utf8
    mysql.username=root
    mysql.password=123

    log4j.properties

    # Configure logging for testing: optionally with log file
     log4j.rootLogger=WARN, stdout, logfile
    
    log4j.appender.stdout=org.apache.log4j.ConsoleAppender
    log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
    log4j.appender.stdout.layout.ConversionPattern=%d %p [%c] - %m%n
    
    log4j.appender.logfile=org.apache.log4j.FileAppender
    log4j.appender.logfile.File=target/ForestBlog.log
    log4j.appender.logfile.layout=org.apache.log4j.PatternLayout
    log4j.appender.logfile.layout.ConversionPattern=%d %p [%c] - %m%n

    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" xmlns:mvc="http://www.springframework.org/schema/mvc"
             xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
             http://java.sun.com/xml/ns/javaee/web-app_3_0.xsd" id="WebApp_ID" version="3.0">
      <display-name>ForestBlog</display-name>
    
      <!--post乱码过滤器-->
      <!-- 配置springMVC编码过滤器 -->
      <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>
        <!-- 启动过滤器 -->
        <init-param>
          <param-name>forceEncoding</param-name>
          <param-value>true</param-value>
        </init-param>
      </filter>
      <!-- 过滤所有请求 -->
      <filter-mapping>
        <filter-name>CharacterEncodingFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
    
      <!--加载spring容器-->
      <context-param>
        <param-name>contextConfigLocation</param-name>
        <param-value>
          classpath:spring/spring-*.xml,
        </param-value>
      </context-param>
    
      <!--配置监听器,来加载spring容器-->
       <listener>
         <listener-class>
           org.springframework.web.context.ContextLoaderListener
         </listener-class>
       </listener>
    
    
      <!-- 以下3项参数与log4j的配置相关 -->
      <context-param>
        <param-name>log4jConfigLocation</param-name>
        <param-value>classpath:log4j.properties</param-value>
      </context-param>
    
      <context-param>
        <param-name>log4jRefreshInterval</param-name>
        <param-value>60000</param-value>
      </context-param>
      <listener>
        <listener-class>
          org.springframework.web.util.Log4jConfigListener
        </listener-class>
      </listener>
    
      <!--springmvc前端控制器 -->
      <servlet>
        <servlet-name>ForestBlog</servlet-name>
        <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>
        <init-param>
          <param-name>contextConfigLocation</param-name>
          <param-value>classpath:spring/spring-mvc.xml</param-value>
        </init-param>
      </servlet>
      <servlet-mapping>
        <servlet-name>ForestBlog</servlet-name>
        <url-pattern>/</url-pattern>
      </servlet-mapping>
    
      <!--随时获得request-->
      <listener>
        <listener-class>
          org.springframework.web.context.request.RequestContextListener
        </listener-class>
      </listener>
    
      <!-- 4、使用Rest风格的URI,将页面普通的post请求转为指定的delete或者put请求 -->
      <filter>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <filter-class>org.springframework.web.filter.HiddenHttpMethodFilter</filter-class>
      </filter>
      <filter-mapping>
        <filter-name>HiddenHttpMethodFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
      <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>
        <filter-name>DruidWebStatFilter</filter-name>
        <filter-class>com.alibaba.druid.support.http.WebStatFilter</filter-class>
        <init-param>
          <param-name>exclusions</param-name>
          <param-value>*.js,*.gif,*.jpg,*.png,*.css,*.ico,/druid/*</param-value>
        </init-param>
      </filter>
      <filter-mapping>
        <filter-name>DruidWebStatFilter</filter-name>
        <url-pattern>/*</url-pattern>
      </filter-mapping>
    
    
      <welcome-file-list>
        <welcome-file>index.jsp</welcome-file>
      </welcome-file-list>
      
        <!--去掉jsp页面的空白-->
          <jsp-config>
            <jsp-property-group>
              <url-pattern>*.jsp</url-pattern>
              <trim-directive-whitespaces>true</trim-directive-whitespaces>
            </jsp-property-group>
          </jsp-config>
    
    
    </web-app>

  • 相关阅读:
    lightdb特性之内置数据库规范检查和违约拦截
    lightdb匿名块及其事务支持
    PHP系列 | PHP中的stdClass是什么?
    霍金斯能量层级图解析 辉
    golang 解释器
    golang 1.18 plugin 热更新|插件化终极方案 2022经验实战总结
    WSL connect: Network is unreachable解决方案
    Git 修改文件后,文件夹目录层级未显示红色
    Apache Hudi 源码分析 JavaClient
    【ESXi】失败 – “scsi0:0”的磁盘类型 2 不受支持或无效。请确保磁盘已导入
  • 原文地址:https://www.cnblogs.com/kikyoqiang/p/12161995.html
Copyright © 2020-2023  润新知