您的位置:首页 > 其它

SSM框架+Log4j框架搭建

2018-01-06 18:14 309 查看
创建完成后我的项目结构如下:



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

pom.xml的配置如下:

[html] view
plain copy

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.sysu</groupId>

<artifactId>test</artifactId>

<packaging>war</packaging>

<version>1.0-SNAPSHOT</version>

<name>test Maven Webapp</name>

<url>http://maven.apache.org</url>

<properties>

<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>

<spring.version>3.1.2.RELEASE</spring.version>

</properties>

<dependencies>

<dependency>

<groupId>junit</groupId>

<artifactId>junit</artifactId>

<version>3.8.1</version>

<scope>test</scope>

</dependency>

<!--Log4j2配置-->

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-api</artifactId>

<version>2.5</version>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-core</artifactId>

<version>2.5</version>

</dependency>

<dependency>

<groupId>org.apache.logging.log4j</groupId>

<artifactId>log4j-web</artifactId>

<version>2.5</version>

</dependency>

<!--解决Spring使用slf4j输出日志与log4j冲突的问题-->

<dependency>

<groupId>org.slf4j</groupId>

<artifactId>slf4j-log4j12</artifactId>

<version>1.7.13</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-webmvc</artifactId>

<version>4.2.4.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-core</artifactId>

<version>4.2.4.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-beans</artifactId>

<version>4.2.4.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context</artifactId>

<version>4.2.4.RELEASE</version>

</dependency>

<!--任务调度关键Jar包-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-context-support</artifactId>

<version>4.2.4.RELEASE</version>

</dependency>

<dependency>

<groupId>org.springframework.data</groupId>

<artifactId>spring-data-jpa</artifactId>

<version>1.9.2.RELEASE</version>

</dependency>

<!--Spring测试框架-->

<dependency>

<groupId>org.springframework</groupId>

<artifactId>spring-test</artifactId>

<version>4.2.4.RELEASE</version>

</dependency>

<!-- 安全框架 -->

<dependency>

<groupId>org.apache.shiro</groupId>

<artifactId>shiro-core</artifactId>

<version>1.2.4</version>

</dependency>

<dependency>

<groupId>org.apache.shiro</groupId>

<artifactId>shiro-web</artifactId>

<version>1.2.4</version>

</dependency>

<dependency>

<groupId>org.apache.shiro</groupId>

<artifactId>shiro-cas</artifactId>

<version>1.2.4</version>

</dependency>

<dependency>

<groupId>org.apache.shiro</groupId>

<artifactId>shiro-spring</artifactId>

<version>1.2.4</version>

</dependency>

<dependency>

<groupId>org.apache.shiro</groupId>

<artifactId>shiro-ehcache</artifactId>

<version>1.2.4</version>

</dependency>

<!--支持Servlet方便测试-->

<dependency>

<groupId>javax.servlet</groupId>

<artifactId>javax.servlet-api</artifactId>

<version>3.1.0</version>

</dependency>

<dependency>

<groupId>javax.servlet.jsp</groupId>

<artifactId>jsp-api</artifactId>

<version>2.2</version>

</dependency>

<!--数据持久化-->

<dependency>

 
6748c
; <groupId>org.mybatis</groupId>

<artifactId>mybatis</artifactId>

<version>3.3.0</version>

</dependency>

<!-- 连接Spring与MyBatis的Sql映射 -->

<dependency>

<groupId>org.mybatis</groupId>

<artifactId>mybatis-spring</artifactId>

<version>1.2.3</version>

</dependency>

<dependency>

<groupId>org.mybatis.generator</groupId>

<artifactId>mybatis-generator-core</artifactId>

<version>1.3.2</version>

</dependency>

<!--数据库-->

<!-- 数据库连接池 用来在applicationContext.xml中配置数据库-->

<dependency>

<groupId>commons-dbcp</groupId>

<artifactId>commons-dbcp</artifactId>

<version>1.4</version>

</dependency>

<!--MySql数据库驱动-->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.38</version>

</dependency>

<dependency>

<groupId>com.github.miemiedev</groupId>

<artifactId>mybatis-paginator</artifactId>

<version>1.2.17</version>

</dependency>

<dependency>

<groupId>commons-fileupload</groupId>

<artifactId>commons-fileupload</artifactId>

<version>1.3.1</version>

</dependency>

<dependency>

<groupId>jstl</groupId>

<artifactId>jstl</artifactId>

<version>1.2</version>

</dependency>

<!--数据校验-->

<dependency>

<groupId>org.hibernate</groupId>

<artifactId>hibernate-validator</artifactId>

<version>5.1.3.Final</version>

</dependency>

<!--定时调度-->

<dependency>

<groupId>org.quartz-scheduler</groupId>

<artifactId>quartz</artifactId>

<version>2.2.2</version>

</dependency>

</dependencies>

<build>

<pluginManagement>

<plugins>

<!--MBG插件-->

<plugin>

<groupId>org.mybatis.generator</groupId>

<artifactId>mybatis-generator-maven-plugin</artifactId>

<version>1.3.2</version>

<dependencies>

<!-- 数据库驱动 -->

<dependency>

<groupId>mysql</groupId>

<artifactId>mysql-connector-java</artifactId>

<version>5.1.38</version>

</dependency>

</dependencies>

<configuration>

<verbose>true</verbose>

<overwrite>true</overwrite>

</configuration>

</plugin>

</plugins>

</pluginManagement>

<finalName>test</finalName>

</build>

</project>

二、配置web.xml

[html] view
plain copy

<!DOCTYPE web-app PUBLIC

"-//Sun Microsystems, Inc.//DTD Web Application 2.3//EN"

"http://java.sun.com/dtd/web-app_2_3.dtd" >

<web-app version="3.0" xmlns="http://java.sun.com/xml/ns/javaee"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://java.sun.com/xml/ns/javaee http://java.sun.com/xml/ns/j2ee/web-app_3_0.xsd">
<display-name>Archetype Created Web Application</display-name>

<!--中文处理过滤,如果不设计中文的处理下面这部分可以移除-->

<filter>

<filter-name>encodingFilter</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>encodingFilter</filter-name>

<url-pattern>/*</url-pattern>

</filter-mapping>

<!-- class DispatcherServlet会自动扫描classpath下面的名字为<servlet-name>-servlet.xml的配置文件,在这里,因为我servlet-name配置

的是springmvc,所以扫描到的就是springmvc-servlet -->

<servlet>

<display-name>springmvc</display-name>

<servlet-name>springmvc-dispatcher</servlet-name>

<servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class>

<load-on-startup>1</load-on-startup>

</servlet>

<!--配置springmvc拦截.do的请求,类似也可以是 / 表示拦截所有的-->

<servlet-mapping>

<servlet-name>springmvc-dispatcher</servlet-name>

<url-pattern>/</url-pattern>

</servlet-mapping>

<!-- 默认首页 -->

<welcome-file-list>

<welcome-file>/</welcome-file>

</welcome-file-list>

</web-app>

三、配置springmvc-dispatcher-servlet.xml

[html] view
plain copy

<?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" xmlns:aop="http://www.springframework.org/schema/aop"

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/mvc http://www.springframework.org/schema/mvc/spring-mvc.xsd http://www.springframework.org/schema/aop http://www.springframework.org/schema/aop/spring-aop.xsd">
<!--springmvc的注解驱动-->

<mvc:annotation-driven />

<!--使用基于注解的自动装配-->

<context:annotation-config/>

<!--指明 controller 所在包,并扫描其中的注解-->

<context:component-scan base-package="com.sysu"/>

<!-- 静态资源(js、image等)的访问 -->

<mvc:default-servlet-handler/>

<!--AOP-->

<aop:aspectj-autoproxy proxy-target-class="true"/>

<!--ViewResolver 视图解析器-->

<!--用于支持Servlet、JSP视图解析-->

<bean id="jspViewResolver" class="org.springframework.web.servlet.view.InternalResourceViewResolver">

<property name="viewClass" value="org.springframework.web.servlet.view.JstlView"/>

<property name="prefix" value="/pages/com/sysu/"/>

<property name="suffix" value=".jsp"/>

</bean>

<bean id="multipartResolver" class="org.springframework.web.multipart.commons.CommonsMultipartResolver">

<property name="maxUploadSize" value="104857600"/>

<property name="maxInMemorySize" value="4096"/>

</bean>

<!--集成Mybatis-->

<import resource="mybatis-context.xml"/>

</beans>

四、配置mybatis-context.xml

[html] view
plain copy

<?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: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/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<!-- 加载配置文件 -->

<import resource="app-context.xml"/>

<!-- DAO接口所在包名,Spring会自动查找其下的类 -->

<bean class="org.mybatis.spring.mapper.MapperScannerConfigurer">

<property name="basePackage" value="com.sysu.test.dao,com.sysu.test.pojo"/>

<property name="sqlSessionFactoryBeanName" value="sqlSessionFactory"></property>

</bean>

<bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"

destroy-method="close">

<property name="driverClassName" value="${jdbc.driver}"/>

<property name="url" value="${jdbc.url}"/>

<property name="username" value="${jdbc.username}"/>

<property name="password" value="${jdbc.password}"/>

<!-- 初始化连接大小 -->

<property name="initialSize" value="${jdbc.initialSize}"></property>

<!-- 连接池最大数量 -->

<property name="maxActive" value="${jdbc.maxActive}"></property>

<!-- 连接池最大空闲 -->

<property name="maxIdle" value="${jdbc.maxIdle}"></property>

<!-- 连接池最小空闲 -->

<property name="minIdle" value="${jdbc.minIdle}"></property>

<!-- 获取连接最大等待时间 -->

<property name="maxWait" value="${jdbc.maxWait}"></property>

<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"/>

</bean>

<!-- spring和MyBatis完美整合,不需要mybatis的配置映射文件 -->

<bean id="sqlSessionFactory" class="org.mybatis.spring.SqlSessionFactoryBean">

<property name="dataSource" ref="dataSource"/>

</bean>

<!-- (事务管理)transaction manager, use JtaTransactionManager for global tx -->

<bean id="transactionManager"

class="org.springframework.jdbc.datasource.DataSourceTransactionManager">

<property name="dataSource" ref="dataSource"/>

</bean>

<!-- 事务控制-->

<tx:annotation-driven transaction-manager="transactionManager"/>

</beans>

五、配置app-context.xml

[html] view
plain copy

<?xml version="1.0" encoding="UTF-8"?>

<beans xmlns="http://www.springframework.org/schema/beans"

xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"

xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<!-- 加载配置文件 -->

<bean id="propertyConfigurer"

class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">

<property name="locations">

<list>

<value>/WEB-INF/properties/jdbc.properties</value>

</list>

</property>

</bean>

</beans>

六、配置jdbc.properties

[html] view
plain copy

jdbc.driver=com.mysql.jdbc.Driver

jdbc.url=“”

jdbc.username=“”

jdbc.password=“”

#定义初始连接数

jdbc.initialSize=10

#定义最大连接数

#定义最大空闲

jdbc.maxActive=200

jdbc.maxIdle=20

#定义最小空闲

jdbc.minIdle=1

#定义最长等待时间

jdbc.maxWait=60000

七、集成Log4j

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

log4j2.xml的配置如下:

[html] view
plain copy

<?xml version="1.0" encoding="UTF-8"?>

<Configuration status="TRACE" monitorInterval="1800">

<properties>

<property name="LOG_HOME">logs</property>

<property name="FILE_NAME">log</property>

</properties>

<Appenders>

<Console name="Console" target="SYSTEM_OUT">

<PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/>

</Console>

<RollingRandomAccessFile name="running-log"

fileName="${LOG_HOME}/${FILE_NAME}.log"

filePattern="${LOG_HOME}/$${date:yyyy-MM}/${FILE_NAME}-%d{yyyy-MM-dd}-%i.log.gz">

<PatternLayout

pattern="%date{yyyy-MM-dd HH:mm:ss.SSS} %level [%thread][%file:%line] - %msg%n"/>

<Policies>

<TimeBasedTriggeringPolicy/>

<SizeBasedTriggeringPolicy size="10 MB"/>

</Policies>

<DefaultRolloverStrategy max="20"/>

</RollingRandomAccessFile>

</Appenders>

<Loggers>

<Logger name="testTime" level="trace"

additivity="true">

<AppenderRef ref="running-log"/>

</Logger>

<Root level="error">

<AppenderRef ref="Console"/>

</Root>

</Loggers>

</Configuration>

LogUtils类如下:

[java] view
plain copy

package com.sysu.utils;

import org.apache.logging.log4j.LogManager;

import org.apache.logging.log4j.Logger;

/**

* Created by Rongjie on 2016/3/13.

* Guangzhou Baoshan Technology Co,Ltd.

*/

public class LogUtils {

static private Logger logger = LogManager.getLogger("testTime");

public static void trace(Object object) {

logger.trace(object);

}

public static void debug(Object object) {

logger.debug(object);

}

public static void info(Object object) {

logger.info(object);

}

public static void warn(Object object) {

logger.warn(object);

}

public static void error(Object object) {

logger.error(object);

}

public static void fatal(Object object) {

logger.fatal(object);

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: