SSM框架+Log4j框架搭建

  创建完成后我的项目结构如下:



一、首先添加创建springmvc框架时项目依赖的jar包

      pom.xml的配置如下:

[html]  view plain  copy
  1. <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  2.   xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">  
  3.   <modelVersion>4.0.0</modelVersion>  
  4.   <groupId>com.sysu</groupId>  
  5.   <artifactId>test</artifactId>  
  6.   <packaging>war</packaging>  
  7.   <version>1.0-SNAPSHOT</version>  
  8.   
  9.   <name>test Maven Webapp</name>  
  10.   <url>http://maven.apache.org</url>  
  11.   
  12.   <properties>  
  13.     <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
  14.     <spring.version>3.1.2.RELEASE</spring.version>  
  15.   </properties>  
  16.   
  17.   <dependencies>  
  18.     <dependency>  
  19.       <groupId>junit</groupId>  
  20.       <artifactId>junit</artifactId>  
  21.       <version>3.8.1</version>  
  22.       <scope>test</scope>  
  23.     </dependency>  
  24.   
  25.   
  26.       <!--Log4j2配置-->  
  27.       <dependency>  
  28.           <groupId>org.apache.logging.log4j</groupId>  
  29.           <artifactId>log4j-api</artifactId>  
  30.           <version>2.5</version>  
  31.       </dependency>  
  32.       <dependency>  
  33.           <groupId>org.apache.logging.log4j</groupId>  
  34.           <artifactId>log4j-core</artifactId>  
  35.           <version>2.5</version>  
  36.       </dependency>  
  37.       <dependency>  
  38.           <groupId>org.apache.logging.log4j</groupId>  
  39.           <artifactId>log4j-web</artifactId>  
  40.           <version>2.5</version>  
  41.       </dependency>  
  42.       <!--解决Spring使用slf4j输出日志与log4j冲突的问题-->  
  43.       <dependency>  
  44.           <groupId>org.slf4j</groupId>  
  45.           <artifactId>slf4j-log4j12</artifactId>  
  46.           <version>1.7.13</version>  
  47.       </dependency>  
  48.   
  49.   
  50.       <dependency>  
  51.           <groupId>org.springframework</groupId>  
  52.           <artifactId>spring-webmvc</artifactId>  
  53.           <version>4.2.4.RELEASE</version>  
  54.       </dependency>  
  55.       <dependency>  
  56.           <groupId>org.springframework</groupId>  
  57.           <artifactId>spring-core</artifactId>  
  58.           <version>4.2.4.RELEASE</version>  
  59.       </dependency>  
  60.       <dependency>  
  61.           <groupId>org.springframework</groupId>  
  62.           <artifactId>spring-beans</artifactId>  
  63.           <version>4.2.4.RELEASE</version>  
  64.       </dependency>  
  65.       <dependency>  
  66.           <groupId>org.springframework</groupId>  
  67.           <artifactId>spring-context</artifactId>  
  68.           <version>4.2.4.RELEASE</version>  
  69.       </dependency>  
  70.       <!--任务调度关键Jar包-->  
  71.       <dependency>  
  72.           <groupId>org.springframework</groupId>  
  73.           <artifactId>spring-context-support</artifactId>  
  74.           <version>4.2.4.RELEASE</version>  
  75.       </dependency>  
  76.       <dependency>  
  77.           <groupId>org.springframework.data</groupId>  
  78.           <artifactId>spring-data-jpa</artifactId>  
  79.           <version>1.9.2.RELEASE</version>  
  80.       </dependency>  
  81.   
  82.   
  83.       <!--Spring测试框架-->  
  84.       <dependency>  
  85.           <groupId>org.springframework</groupId>  
  86.           <artifactId>spring-test</artifactId>  
  87.           <version>4.2.4.RELEASE</version>  
  88.       </dependency>  
  89.   
  90.   
  91.       <!-- 安全框架 -->  
  92.       <dependency>  
  93.           <groupId>org.apache.shiro</groupId>  
  94.           <artifactId>shiro-core</artifactId>  
  95.           <version>1.2.4</version>  
  96.       </dependency>  
  97.       <dependency>  
  98.           <groupId>org.apache.shiro</groupId>  
  99.           <artifactId>shiro-web</artifactId>  
  100.           <version>1.2.4</version>  
  101.       </dependency>  
  102.       <dependency>  
  103.           <groupId>org.apache.shiro</groupId>  
  104.           <artifactId>shiro-cas</artifactId>  
  105.           <version>1.2.4</version>  
  106.       </dependency>  
  107.       <dependency>  
  108.           <groupId>org.apache.shiro</groupId>  
  109.           <artifactId>shiro-spring</artifactId>  
  110.           <version>1.2.4</version>  
  111.       </dependency>  
  112.       <dependency>  
  113.           <groupId>org.apache.shiro</groupId>  
  114.           <artifactId>shiro-ehcache</artifactId>  
  115.           <version>1.2.4</version>  
  116.       </dependency>  
  117.   
  118.   
  119.       <!--支持Servlet方便测试-->  
  120.       <dependency>  
  121.           <groupId>javax.servlet</groupId>  
  122.           <artifactId>javax.servlet-api</artifactId>  
  123.           <version>3.1.0</version>  
  124.       </dependency>  
  125.       <dependency>  
  126.           <groupId>javax.servlet.jsp</groupId>  
  127.           <artifactId>jsp-api</artifactId>  
  128.           <version>2.2</version>  
  129.       </dependency>  
  130.   
  131.   
  132.       <!--数据持久化-->  
  133.       <dependency>  
  134.           <groupId>org.mybatis</groupId>  
  135.           <artifactId>mybatis</artifactId>  
  136.           <version>3.3.0</version>  
  137.       </dependency>  
  138.       <!-- 连接Spring与MyBatis的Sql映射 -->  
  139.       <dependency>  
  140.           <groupId>org.mybatis</groupId>  
  141.           <artifactId>mybatis-spring</artifactId>  
  142.           <version>1.2.3</version>  
  143.       </dependency>  
  144.       <dependency>  
  145.           <groupId>org.mybatis.generator</groupId>  
  146.           <artifactId>mybatis-generator-core</artifactId>  
  147.           <version>1.3.2</version>  
  148.       </dependency>  
  149.       <!--数据库-->  
  150.       <!-- 数据库连接池 用来在applicationContext.xml中配置数据库-->  
  151.       <dependency>  
  152.           <groupId>commons-dbcp</groupId>  
  153.           <artifactId>commons-dbcp</artifactId>  
  154.           <version>1.4</version>  
  155.       </dependency>  
  156.       <!--MySql数据库驱动-->  
  157.       <dependency>  
  158.           <groupId>mysql</groupId>  
  159.           <artifactId>mysql-connector-java</artifactId>  
  160.           <version>5.1.38</version>  
  161.       </dependency>  
  162.       <dependency>  
  163.           <groupId>com.github.miemiedev</groupId>  
  164.           <artifactId>mybatis-paginator</artifactId>  
  165.           <version>1.2.17</version>  
  166.       </dependency>  
  167.   
  168.   
  169.       <dependency>  
  170.           <groupId>commons-fileupload</groupId>  
  171.           <artifactId>commons-fileupload</artifactId>  
  172.           <version>1.3.1</version>  
  173.       </dependency>  
  174.   
  175.       <dependency>  
  176.           <groupId>jstl</groupId>  
  177.           <artifactId>jstl</artifactId>  
  178.           <version>1.2</version>  
  179.       </dependency>  
  180.   
  181.       <!--数据校验-->  
  182.       <dependency>  
  183.           <groupId>org.hibernate</groupId>  
  184.           <artifactId>hibernate-validator</artifactId>  
  185.           <version>5.1.3.Final</version>  
  186.       </dependency>  
  187.   
  188.   
  189.       <!--定时调度-->  
  190.       <dependency>  
  191.           <groupId>org.quartz-scheduler</groupId>  
  192.           <artifactId>quartz</artifactId>  
  193.           <version>2.2.2</version>  
  194.       </dependency>  
  195.   </dependencies>  
  196. <build>  
  197.     <pluginManagement>  
  198.         <plugins>  
  199.             <!--MBG插件-->  
  200.             <plugin>  
  201.                 <groupId>org.mybatis.generator</groupId>  
  202.                 <artifactId>mybatis-generator-maven-plugin</artifactId>  
  203.                 <version>1.3.2</version>  
  204.   
  205.                 <dependencies>  
  206.                     <!-- 数据库驱动  -->  
  207.                     <dependency>  
  208.                         <groupId>mysql</groupId>  
  209.                         <artifactId>mysql-connector-java</artifactId>  
  210.                         <version>5.1.38</version>  
  211.                     </dependency>  
  212.   
  213.                 </dependencies>  
  214.                 <configuration>  
  215.                     <verbose>true</verbose>  
  216.                     <overwrite>true</overwrite>  
  217.                 </configuration>  
  218.             </plugin>  
  219.         </plugins>  
  220.     </pluginManagement>  
  221.   
  222.     <finalName>test</finalName>  
  223. </build>  
  224.   
  225. </project>  

二、配置web.xml

      

[html]  view plain  copy
  1. <!DOCTYPE web-app PUBLIC  
  2.  "-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"  
  3.  "http://java.sun.com/dtd/web-app_2_3.dtd" >  
  4.   
  5. <web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"  
  6.          xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  7.          xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd">  
  8.   
  9. <display-name>Archetype Created Web Application</display-name>  
  10.   
  11. <!--中文处理过滤,如果不设计中文的处理下面这部分可以移除-->  
  12. <filter>  
  13.   <filter-name>encodingFilter</filter-name>  
  14.   <filter-class>org.springframework.web.filter.CharacterEncodingFilter</filter-class>  
  15.   <init-param>  
  16.     <param-name>encoding</param-name>  
  17.     <param-value>UTF-8</param-value>  
  18.   </init-param>  
  19.   <init-param>  
  20.     <param-name>forceEncoding</param-name>  
  21.     <param-value>true</param-value>  
  22.   </init-param>  
  23. </filter>  
  24. <filter-mapping>  
  25.   <filter-name>encodingFilter</filter-name>  
  26.   <url-pattern>/*</url-pattern>  
  27. </filter-mapping>  
  28.   
  29.   
  30. <!-- class  DispatcherServlet会自动扫描classpath下面的名字为<servlet-name>-servlet.xml的配置文件,在这里,因为我servlet-name配置  
  31.      的是springmvc,所以扫描到的就是springmvc-servlet  -->  
  32. <servlet>  
  33.   <display-name>springmvc</display-name>  
  34.   <servlet-name>springmvc-dispatcher</servlet-name>  
  35.   <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>  
  36.   <load-on-startup>1</load-on-startup>  
  37. </servlet>  
  38.   
  39. <!--配置springmvc拦截.do的请求,类似也可以是 / 表示拦截所有的-->  
  40. <servlet-mapping>  
  41.   <servlet-name>springmvc-dispatcher</servlet-name>  
  42.   <url-pattern>/</url-pattern>  
  43. </servlet-mapping>  
  44.   
  45. <!-- 默认首页 -->  
  46. <welcome-file-list>  
  47.   <welcome-file>/</welcome-file>  
  48. </welcome-file-list>  
  49.   
  50. </web-app>  

三、 配置springmvc-dispatcher-servlet.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.        xmlns:context="http://www.springframework.org/schema/context"  
  5.        xmlns:mvc="http://www.springframework.org/schema/mvc" xmlns:aop="http://www.springframework.org/schema/aop"  
  6.        xsi:schemaLocation="http://www.springframework.org/schema/beans  
  7.        http://www.springframework.org/schema/beans/spring-beans.xsd  
  8.        http://www.springframework.org/schema/context  
  9.        http://www.springframework.org/schema/context/spring-context.xsd  
  10.        http://www.springframework.org/schema/mvc  
  11.        http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">  
  12.   
  13.     <!--springmvc的注解驱动-->  
  14.     <mvc:annotation-driven />  
  15.   
  16.     <!--使用基于注解的自动装配-->  
  17.     <context:annotation-config/>  
  18.   
  19.     <!--指明 controller 所在包,并扫描其中的注解-->  
  20.     <context:component-scan base-package="com.sysu"/>  
  21.   
  22.     <!-- 静态资源(js、image等)的访问 -->  
  23.     <mvc:default-servlet-handler/>  
  24.   
  25.     <!--AOP-->  
  26.     <aop:aspectj-autoproxy proxy-target-class="true"/>  
  27.   
  28.   
  29.     <!--ViewResolver 视图解析器-->  
  30.     <!--用于支持Servlet、JSP视图解析-->  
  31.     <bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">  
  32.         <property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>  
  33.         <property name="prefix" value="/pages/com/sysu/"/>  
  34.         <property name="suffix" value=".jsp"/>  
  35.     </bean>  
  36.   
  37.     <bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">  
  38.         <property name="maxUploadSize" value="104857600"/>  
  39.         <property name="maxInMemorySize" value="4096"/>  
  40.     </bean>  
  41.   
  42.   
  43.     <!--集成Mybatis-->  
  44.     <import resource="mybatis-context.xml"/>  
  45.   
  46. </beans>  

四、配置mybatis-context.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.        xmlns:tx="http://www.springframework.org/schema/tx"  
  5.        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">  
  6.   
  7.     <!-- 加载配置文件 -->  
  8.     <import resource="app-context.xml"/>  
  9.   
  10.     <!-- DAO接口所在包名,Spring会自动查找其下的类 -->  
  11.     <bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">  
  12.         <property name="basePackage" value="com.sysu.test.dao,com.sysu.test.pojo"/>  
  13.         <property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>  
  14.     </bean>  
  15.   
  16.     <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"  
  17.           destroy-method="close">  
  18.         <property name="driverClassName" value="${jdbc.driver}"/>  
  19.         <property name="url" value="${jdbc.url}"/>  
  20.         <property name="username" value="${jdbc.username}"/>  
  21.         <property name="password" value="${jdbc.password}"/>  
  22.         <!-- 初始化连接大小 -->  
  23.         <property name="initialSize" value="${jdbc.initialSize}"></property>  
  24.         <!-- 连接池最大数量 -->  
  25.         <property name="maxActive" value="${jdbc.maxActive}"></property>  
  26.         <!-- 连接池最大空闲 -->  
  27.         <property name="maxIdle" value="${jdbc.maxIdle}"></property>  
  28.         <!-- 连接池最小空闲 -->  
  29.         <property name="minIdle" value="${jdbc.minIdle}"></property>  
  30.         <!-- 获取连接最大等待时间 -->  
  31.         <property name="maxWait" value="${jdbc.maxWait}"></property>  
  32.   
  33.         <property name="timeBetweenEvictionRunsMillis" value="60000"/>  
  34.         <property name="minEvictableIdleTimeMillis" value="300000"/>  
  35.   
  36.         <property name="validationQuery" value="SELECT 'x'"/>  
  37.         <property name="testWhileIdle" value="true"/>  
  38.         <property name="testOnBorrow" value="false"/>  
  39.         <property name="testOnReturn" value="false"/>  
  40.     </bean>  
  41.   
  42.   
  43.     <!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->  
  44.     <bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">  
  45.         <property name="dataSource" ref="dataSource"/>  
  46.     </bean>  
  47.   
  48.     <!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->  
  49.     <bean id="transactionManager"  
  50.           class="org.springframework.jdbc.datasource.DataSourceTransactionManager">  
  51.         <property name="dataSource" ref="dataSource"/>  
  52.     </bean>  
  53.   
  54.     <!-- 事务控制-->  
  55.     <tx:annotation-driven transaction-manager="transactionManager"/>  
  56.   
  57. </beans>  

五、配置app-context.xml

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <beans xmlns="http://www.springframework.org/schema/beans"  
  3.        xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
  4.        xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">  
  5.   
  6.     <!-- 加载配置文件 -->  
  7.     <bean id="propertyConfigurer"  
  8.           class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">  
  9.         <property name="locations">  
  10.             <list>  
  11.                 <value>/WEB-INF/properties/jdbc.properties</value>  
  12.             </list>  
  13.         </property>  
  14.     </bean>  
  15.   
  16. </beans>  

六、配置jdbc.properties

[html]  view plain  copy
  1. jdbc.driver=com.mysql.jdbc.Driver  
  2. jdbc.url=“”  
  3. jdbc.username=“”  
  4. jdbc.password=“”  
  5. #定义初始连接数  
  6. jdbc.initialSize=10  
  7. #定义最大连接数  
  8. #定义最大空闲  
  9. jdbc.maxActive=200  
  10. jdbc.maxIdle=20  
  11. #定义最小空闲  
  12. jdbc.minIdle=1  
  13. #定义最长等待时间  
  14. jdbc.maxWait=60000  

七、集成Log4j

        注意:LogUtils类中LogManager.getLogger中的参数testTime应该和log4j2.xml中Logger name的名称完全一样。

       log4j2.xml的配置如下:

[html]  view plain  copy
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <Configuration status="TRACE" monitorInterval="1800">  
  3.     <properties>  
  4.         <property name="LOG_HOME">logs</property>  
  5.         <property name="FILE_NAME">log</property>  
  6.     </properties>  
  7.   
  8.     <Appenders>  
  9.         <Console name="Console" target="SYSTEM_OUT">  
  10.             <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>  
  11.         </Console>  
  12.   
  13.         <RollingRandomAccessFile name="running-log"  
  14.                                  fileName="${LOG_HOME}/${FILE_NAME}.log"  
  15.                                  filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz">  
  16.             <PatternLayout  
  17.                     pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n"/>  
  18.             <Policies>  
  19.                 <TimeBasedTriggeringPolicy/>  
  20.                 <SizeBasedTriggeringPolicy size="10 MB"/>  
  21.             </Policies>  
  22.             <DefaultRolloverStrategy max="20"/>  
  23.         </RollingRandomAccessFile>  
  24.     </Appenders>  
  25.   
  26.     <Loggers>  
  27.         <Logger name="testTime" level="trace"  
  28.                 additivity="true">  
  29.             <AppenderRef ref="running-log"/>  
  30.         </Logger>  
  31.         <Root level="error">  
  32.             <AppenderRef ref="Console"/>  
  33.         </Root>  
  34.     </Loggers>  
  35. </Configuration>  


        LogUtils类如下:
[java]  view plain  copy
  1. package com.sysu.utils;  
  2.   
  3. import org.apache.logging.log4j.LogManager;  
  4. import org.apache.logging.log4j.Logger;  
  5.   
  6. /** 
  7.  * Created by Rongjie on 2016/3/13. 
  8.  * Guangzhou Baoshan Technology Co,Ltd. 
  9.  */  
  10. public class LogUtils {  
  11.   
  12.     static private Logger logger = LogManager.getLogger("testTime");  
  13.   
  14.   
  15.     public static void trace(Object object) {  
  16.         logger.trace(object);  
  17.     }  
  18.   
  19.     public static void debug(Object object) {  
  20.         logger.debug(object);  
  21.     }  
  22.   
  23.     public static void info(Object object) {  
  24.         logger.info(object);  
  25.     }  
  26.   
  27.     public static void warn(Object object) {  
  28.         logger.warn(object);  
  29.     }  
  30.   
  31.     public static void error(Object object) {  
  32.         logger.error(object);  
  33.     }  
  34.   
  35.     public static void fatal(Object object) {  
  36.         logger.fatal(object);  
  37.     }  
  38.   
  39. }  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值