Commit 0d436f6e by s_guodong

init

parent 7cb11d6a
.gradle/
build/
target/
bin/
logs/
# Eclipse Project Files
.classpath
.project
.settings/
# IntelliJ IDEA Files
*.iml
*.ipr
*.iws
*.idea
*.class
*.factorypath
*.springBeans
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.1.1.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<groupId>com.brilliance</groupId>
<artifactId>springboot-cli</artifactId>
<version>1.0-SNAPSHOT</version>
<properties>
<maven.compiler.source>8</maven.compiler.source>
<maven.compiler.target>8</maven.compiler.target>
<mybatis.spring-boot.version>1.3.0</mybatis.spring-boot.version>
<mysql.connector.version>5.1.46</mysql.connector.version>
<alibaba.druid.version>1.1.6</alibaba.druid.version>
<page.helper.version>1.2.5</page.helper.version>
<lombok.version>1.18.4</lombok.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!--web-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.mybatis.spring.boot</groupId>
<artifactId>mybatis-spring-boot-starter</artifactId>
<version>${mybatis.spring-boot.version}</version>
</dependency>
<!--mysql connector-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>${mysql.connector.version}</version>
</dependency>
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>druid</artifactId>
<version>${alibaba.druid.version}</version>
</dependency>
<!--pageHelper-->
<dependency>
<groupId>com.github.pagehelper</groupId>
<artifactId>pagehelper-spring-boot-starter</artifactId>
<version>${page.helper.version}</version>
</dependency>
<!--lombok-->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
<scope>provided</scope>
</dependency>
</dependencies>
<build>
<finalName>${project.artifactId}-${project.version}</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>2.1.1.RELEASE</version>
<configuration>
<includeSystemScope>true</includeSystemScope>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>3.10.1</version>
<configuration>
<source>${java.version}</source>
<target>${java.version}</target>
</configuration>
</plugin>
<plugin>
<groupId>org.mybatis.generator</groupId>
<artifactId>mybatis-generator-maven-plugin</artifactId>
<version>1.3.2</version>
<configuration>
<verbose>true</verbose>
<overwrite>true</overwrite>
</configuration>
</plugin>
</plugins>
</build>
</project>
\ No newline at end of file
package com.brilliance;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
/**
* @Description
* @Author s_guodong
* @Date 2022/12/6
*/
@SpringBootApplication
public class App {
public static void main(String[] args) {
SpringApplication.run(App.class, args);
}
}
package com.brilliance.controller;
import com.brilliance.service.UserService;
import com.brilliance.vo.PageData;
import com.brilliance.vo.Result;
import com.brilliance.vo.UserVO;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
/**
* @Description
* @Author s_guodong
* @Date 2022/12/6
*/
@RestController
@RequestMapping("user")
public class UserController {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Autowired
private UserService userService;
@GetMapping("list")
public Result userList(@RequestParam("pageNum") Integer pageNum,
@RequestParam("pageSize") Integer pageSize) {
logger.info("获取用户列表,pageNum:{},pageSize:{}", pageNum, pageSize);
PageData<UserVO> pageData = userService.userList(pageNum, pageSize);
return new Result(pageData);
}
}
package com.brilliance.entity;
public class Rol {
private String inr;
private String rolnam;
public String getInr() {
return inr;
}
public void setInr(String inr) {
this.inr = inr == null ? null : inr.trim();
}
public String getRolnam() {
return rolnam;
}
public void setRolnam(String rolnam) {
this.rolnam = rolnam == null ? null : rolnam.trim();
}
}
\ No newline at end of file
package com.brilliance.entity;
public class Usr {
private String inr;
private String usrnam;
private Integer age;
public String getInr() {
return inr;
}
public void setInr(String inr) {
this.inr = inr == null ? null : inr.trim();
}
public String getUsrnam() {
return usrnam;
}
public void setUsrnam(String usrnam) {
this.usrnam = usrnam == null ? null : usrnam.trim();
}
public Integer getAge() {
return age;
}
public void setAge(Integer age) {
this.age = age;
}
}
\ No newline at end of file
package com.brilliance.entity;
public class UsrRol {
private String inr;
private String usrinr;
private String rolinr;
public String getInr() {
return inr;
}
public void setInr(String inr) {
this.inr = inr == null ? null : inr.trim();
}
public String getUsrinr() {
return usrinr;
}
public void setUsrinr(String usrinr) {
this.usrinr = usrinr == null ? null : usrinr.trim();
}
public String getRolinr() {
return rolinr;
}
public void setRolinr(String rolinr) {
this.rolinr = rolinr == null ? null : rolinr.trim();
}
}
\ No newline at end of file
package com.brilliance.interceptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
public class AuthInterceptor implements HandlerInterceptor {
private Logger logger = LoggerFactory.getLogger(this.getClass());
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String token = request.getHeader("token");
logger.info("进入认证拦截器,token:{}", token);
// 可做认证 授权等操作
return true;
}
}
package com.brilliance.interceptor;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Bean
public AuthInterceptor getAuthInterceptor() {
return new AuthInterceptor();
}
@Override
public void addInterceptors(InterceptorRegistry registry) {
//添加认证拦截器
InterceptorRegistration tokenInterceptorRegistration = registry.addInterceptor(getAuthInterceptor());
tokenInterceptorRegistration.addPathPatterns("/**");
tokenInterceptorRegistration.excludePathPatterns("/login");
}
}
package com.brilliance.mapper;
import com.brilliance.entity.Rol;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface RolMapper {
int deleteByPrimaryKey(String inr);
int insert(Rol record);
int insertSelective(Rol record);
Rol selectByPrimaryKey(String inr);
int updateByPrimaryKeySelective(Rol record);
int updateByPrimaryKey(Rol record);
}
\ No newline at end of file
package com.brilliance.mapper;
import com.brilliance.entity.Usr;
import com.brilliance.vo.UserVO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
@Mapper
public interface UsrMapper {
int deleteByPrimaryKey(String inr);
int insert(Usr record);
int insertSelective(Usr record);
Usr selectByPrimaryKey(String inr);
int updateByPrimaryKeySelective(Usr record);
int updateByPrimaryKey(Usr record);
/**
* 查询用户列表
*
* @return
*/
List<UserVO> selectUserList();
}
\ No newline at end of file
package com.brilliance.mapper;
import com.brilliance.entity.UsrRol;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface UsrRolMapper {
int deleteByPrimaryKey(String inr);
int insert(UsrRol record);
int insertSelective(UsrRol record);
UsrRol selectByPrimaryKey(String inr);
int updateByPrimaryKeySelective(UsrRol record);
int updateByPrimaryKey(UsrRol record);
}
\ No newline at end of file
package com.brilliance.service;
import com.brilliance.vo.PageData;
import com.brilliance.vo.UserVO;
import java.util.List;
/**
* @Description
* @Author s_guodong
* @Date 2022/12/6
*/
public interface UserService {
/**
* 查询用户列表
*
* @param pageNum
* @param pageSize
* @return
*/
PageData<UserVO> userList(Integer pageNum, Integer pageSize);
}
package com.brilliance.service.impl;
import com.brilliance.mapper.UsrMapper;
import com.brilliance.service.UserService;
import com.brilliance.vo.PageData;
import com.brilliance.vo.UserVO;
import com.github.pagehelper.PageHelper;
import com.github.pagehelper.PageInfo;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* @Description
* @Author s_guodong
* @Date 2022/12/6
*/
@Service
public class UserServiceImpl implements UserService {
@Autowired
private UsrMapper usrMapper;
@Override
public PageData<UserVO> userList(Integer pageNum, Integer pageSize) {
PageHelper.startPage(pageNum, pageSize);
List<UserVO> list = usrMapper.selectUserList();
PageInfo<UserVO> pageInfo = PageInfo.of(list);
PageHelper.clearPage();
PageData pageData = new PageData(list, pageInfo.getPageNum(), pageInfo.getPageSize(), pageInfo.getPages(), pageInfo.getTotal());
return pageData;
}
}
package com.brilliance.vo;
import lombok.Data;
import java.util.List;
/**
* @Description
* @Author s_guodong
* @Date 2022/12/6
*/
@Data
public class PageData<T> {
/**
* 页码
*/
private Integer pageNum;
/**
* 分页大小
*/
private Integer pageSize;
/**
* 总页数
*/
private Integer pages;
/**
* 数据总数量
*/
private Long total;
private List<T> list;
public PageData() {
}
public PageData(List<T> list, Integer pageNum, Integer pageSize, Integer pages, Long total) {
this.list = list;
this.pageNum = pageNum;
this.pageSize = pageSize;
this.pages = pages;
this.total = total;
}
}
package com.brilliance.vo;
import lombok.Data;
/**
* @Description
* @Author s_guodong
* @Date 2022/12/6
*/
@Data
public class Result {
private String code = "success";
private String msg = "请求成功";
private Object data;
public Result() {
}
public Result(Object data) {
this.data = data;
}
public Result(String code, String msg, Object data) {
this.code = code;
this.msg = msg;
this.data = data;
}
}
package com.brilliance.vo;
import lombok.Data;
/**
* @Description
* @Author s_guodong
* @Date 2022/12/6
*/
@Data
public class UserVO {
/**
* 用户标识
*/
private String usrInr;
/**
* 用户名称
*/
private String usrNam;
/**
* 用户年纪
*/
private Integer age;
/**
* 用户角色名称
*/
private String rolNam;
}
server:
port: 8085
spring:
datasource:
url: jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
username: root
password: 123456
driver-class-name: com.mysql.jdbc.Driver
spring:
profiles:
active: dev
logging:
config: classpath:logback.xml
# mybatis配置
mybatis:
mapperLocations: classpath:com.brilliance.mapper/*.xml
configuration:
logImpl: org.apache.ibatis.logging.stdout.StdOutImpl
call-setters-on-nulls: true
return-instance-for-empty-row: true
mapUnderscoreToCamelCase: true
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.brilliance.mapper.RolMapper" >
<resultMap id="BaseResultMap" type="com.brilliance.entity.Rol" >
<id column="inr" property="inr" jdbcType="VARCHAR" />
<result column="rolnam" property="rolnam" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
inr, rolnam
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from rol
where inr = #{inr,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
delete from rol
where inr = #{inr,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.brilliance.entity.Rol" >
insert into rol (inr, rolnam)
values (#{inr,jdbcType=VARCHAR}, #{rolnam,jdbcType=VARCHAR})
</insert>
<insert id="insertSelective" parameterType="com.brilliance.entity.Rol" >
insert into rol
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="inr != null" >
inr,
</if>
<if test="rolnam != null" >
rolnam,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="inr != null" >
#{inr,jdbcType=VARCHAR},
</if>
<if test="rolnam != null" >
#{rolnam,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.brilliance.entity.Rol" >
update rol
<set >
<if test="rolnam != null" >
rolnam = #{rolnam,jdbcType=VARCHAR},
</if>
</set>
where inr = #{inr,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.brilliance.entity.Rol" >
update rol
set rolnam = #{rolnam,jdbcType=VARCHAR}
where inr = #{inr,jdbcType=VARCHAR}
</update>
</mapper>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.brilliance.mapper.UsrMapper" >
<resultMap id="BaseResultMap" type="com.brilliance.entity.Usr" >
<id column="inr" property="inr" jdbcType="VARCHAR" />
<result column="usrnam" property="usrnam" jdbcType="VARCHAR" />
<result column="age" property="age" jdbcType="INTEGER" />
</resultMap>
<sql id="Base_Column_List" >
inr, usrnam, age
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from usr
where inr = #{inr,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
delete from usr
where inr = #{inr,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.brilliance.entity.Usr" >
insert into usr (inr, usrnam, age
)
values (#{inr,jdbcType=VARCHAR}, #{usrnam,jdbcType=VARCHAR}, #{age,jdbcType=INTEGER}
)
</insert>
<insert id="insertSelective" parameterType="com.brilliance.entity.Usr" >
insert into usr
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="inr != null" >
inr,
</if>
<if test="usrnam != null" >
usrnam,
</if>
<if test="age != null" >
age,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="inr != null" >
#{inr,jdbcType=VARCHAR},
</if>
<if test="usrnam != null" >
#{usrnam,jdbcType=VARCHAR},
</if>
<if test="age != null" >
#{age,jdbcType=INTEGER},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.brilliance.entity.Usr" >
update usr
<set >
<if test="usrnam != null" >
usrnam = #{usrnam,jdbcType=VARCHAR},
</if>
<if test="age != null" >
age = #{age,jdbcType=INTEGER},
</if>
</set>
where inr = #{inr,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.brilliance.entity.Usr" >
update usr
set usrnam = #{usrnam,jdbcType=VARCHAR},
age = #{age,jdbcType=INTEGER}
where inr = #{inr,jdbcType=VARCHAR}
</update>
<select id="selectUserList" resultType="com.brilliance.vo.UserVO">
select usr.inr as usrInr,usr.usrnam as usrNam,usr.age as age, rol.rolnam as rolNam
from usr inner join usr_rol on usr.inr=usr_rol.usrinr
inner join rol on rol.inr=usr_rol.rolinr
</select>
</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.brilliance.mapper.UsrRolMapper" >
<resultMap id="BaseResultMap" type="com.brilliance.entity.UsrRol" >
<id column="inr" property="inr" jdbcType="VARCHAR" />
<result column="usrinr" property="usrinr" jdbcType="VARCHAR" />
<result column="rolinr" property="rolinr" jdbcType="VARCHAR" />
</resultMap>
<sql id="Base_Column_List" >
inr, usrinr, rolinr
</sql>
<select id="selectByPrimaryKey" resultMap="BaseResultMap" parameterType="java.lang.String" >
select
<include refid="Base_Column_List" />
from usr_rol
where inr = #{inr,jdbcType=VARCHAR}
</select>
<delete id="deleteByPrimaryKey" parameterType="java.lang.String" >
delete from usr_rol
where inr = #{inr,jdbcType=VARCHAR}
</delete>
<insert id="insert" parameterType="com.brilliance.entity.UsrRol" >
insert into usr_rol (inr, usrinr, rolinr
)
values (#{inr,jdbcType=VARCHAR}, #{usrinr,jdbcType=VARCHAR}, #{rolinr,jdbcType=VARCHAR}
)
</insert>
<insert id="insertSelective" parameterType="com.brilliance.entity.UsrRol" >
insert into usr_rol
<trim prefix="(" suffix=")" suffixOverrides="," >
<if test="inr != null" >
inr,
</if>
<if test="usrinr != null" >
usrinr,
</if>
<if test="rolinr != null" >
rolinr,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides="," >
<if test="inr != null" >
#{inr,jdbcType=VARCHAR},
</if>
<if test="usrinr != null" >
#{usrinr,jdbcType=VARCHAR},
</if>
<if test="rolinr != null" >
#{rolinr,jdbcType=VARCHAR},
</if>
</trim>
</insert>
<update id="updateByPrimaryKeySelective" parameterType="com.brilliance.entity.UsrRol" >
update usr_rol
<set >
<if test="usrinr != null" >
usrinr = #{usrinr,jdbcType=VARCHAR},
</if>
<if test="rolinr != null" >
rolinr = #{rolinr,jdbcType=VARCHAR},
</if>
</set>
where inr = #{inr,jdbcType=VARCHAR}
</update>
<update id="updateByPrimaryKey" parameterType="com.brilliance.entity.UsrRol" >
update usr_rol
set usrinr = #{usrinr,jdbcType=VARCHAR},
rolinr = #{rolinr,jdbcType=VARCHAR}
where inr = #{inr,jdbcType=VARCHAR}
</update>
</mapper>
\ No newline at end of file
jdbc.driverLocation=lib/mysql-connector-java-8.0.30.jar
jdbc.driverClass=com.mysql.jdbc.Driver
jdbc.connectionURL=jdbc:mysql://localhost:3306/test?serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&useSSL=false
jdbc.userId=root
jdbc.password=123456
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE generatorConfiguration
PUBLIC "-//mybatis.org//DTD MyBatis Generator Configuration 1.0//EN"
"http://mybatis.org/dtd/mybatis-generator-config_1_0.dtd">
<generatorConfiguration>
<!--导入属性配置-->
<properties resource="generator.properties"></properties>
<classPathEntry location="${jdbc.driverLocation}"/>
<!--指定特定数据库的jdbc驱动jar包的位置-->
<context id="default" targetRuntime="MyBatis3">
<!-- optional,旨在创建class时,对注释进行控制 -->
<commentGenerator>
<property name="suppressDate" value="true"/>
<property name="suppressAllComments" value="true"/>
</commentGenerator>
<!--jdbc的数据库连接 -->
<jdbcConnection
driverClass="${jdbc.driverClass}"
connectionURL="${jdbc.connectionURL}"
userId="${jdbc.userId}"
password="${jdbc.password}">
</jdbcConnection>
<!-- 非必需,类型处理器,在数据库类型和java类型之间的转换控制-->
<javaTypeResolver>
<property name="forceBigDecimals" value="false"/>
</javaTypeResolver>
<!-- Model模型生成器,用来生成含有主键key的类,记录类 以及查询Example类
targetPackage 指定生成的model生成所在的包名
targetProject 指定在该项目下所在的路径
-->
<javaModelGenerator targetPackage="com.brilliance.entity" targetProject="src/main/java">
<!-- 是否允许子包,即targetPackage.schemaName.tableName -->
<property name="enableSubPackages" value="false"/>
<!-- 是否对model添加 构造函数 -->
<property name="constructorBased" value="false"/>
<!-- 是否对类CHAR类型的列的数据进行trim操作 -->
<property name="trimStrings" value="true"/>
<!-- 建立的Model对象是否 不可改变 即生成的Model对象不会有 setter方法,只有构造方法 -->
<property name="immutable" value="false"/>
</javaModelGenerator>
<!--Mapper映射文件生成所在的目录 为每一个数据库的表生成对应的SqlMap文件 -->
<sqlMapGenerator targetPackage="com.brilliance.mapper" targetProject="src/main/resources">
<property name="enableSubPackages" value="false"/>
</sqlMapGenerator>
<javaClientGenerator targetPackage="com.brilliance.mapper" targetProject="src/main/java" type="XMLMAPPER">
<property name="enableSubPackages" value="true"/>
</javaClientGenerator>
<!-- <table tableName="usr" domainObjectName="Usr" enableCountByExample="false"-->
<!-- enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false"-->
<!-- selectByExampleQueryId="false"/>-->
<!-- <table tableName="rol" domainObjectName="Rol" enableCountByExample="false"-->
<!-- enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false"-->
<!-- selectByExampleQueryId="false"/>-->
<!-- <table tableName="usr_rol" domainObjectName="UsrRol" enableCountByExample="false"-->
<!-- enableUpdateByExample="false" enableDeleteByExample="false" enableSelectByExample="false"-->
<!-- selectByExampleQueryId="false"/>-->
</context>
</generatorConfiguration>
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- 定义log文件的目录 -->
<property name="LOG_HOME" value="logs"></property>
<property name="maxFileSize" value="50MB"></property>
<property name="charset" value="UTF-8"></property>
<property name="immediateFlush" value="true"></property>
<property name="pattern"
value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight(%-6level) --- [%15.15(%thread)] %cyan(%-40.40(%logger{40})) : %msg%n"></property>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- %.-1level 只显示信息级别的首字母,%-5level 左对齐显示信息级别全称 -->
<pattern>${pattern}</pattern>
</encoder>
</appender>
<appender name="INFO_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/info.log</file>
<append>true</append>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/logs/info.%d{yyyy-MM-dd}.%i.log.zip
</fileNamePattern>
<maxFileSize>${maxFileSize}</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>${pattern}</pattern>
<charset>${charset}</charset>
<immediateFlush>${immediateFlush}</immediateFlush>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>INFO</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 异步输出 -->
<appender name="INFO_FILE_ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>8192</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="INFO_FILE" />
</appender>
<appender name="DEBUG_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/debug.log</file>
<append>true</append>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/logs/debug.%d{yyyy-MM-dd}.%i.log.zip
</fileNamePattern>
<maxFileSize>${maxFileSize}</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>${pattern}</pattern>
<charset>${charset}</charset>
<immediateFlush>${immediateFlush}</immediateFlush>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>DEBUG</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 异步输出 -->
<appender name="DEBUG_FILE_ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>8192</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="DEBUG_FILE" />
</appender>
<appender name="ERROR_FILE"
class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_HOME}/error.log</file>
<append>true</append>
<rollingPolicy
class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">
<fileNamePattern>${LOG_HOME}/logs/error.%d{yyyy-MM-dd}.%i.log.zip
</fileNamePattern>
<maxFileSize>${maxFileSize}</maxFileSize>
</rollingPolicy>
<encoder>
<pattern>${pattern}</pattern>
<charset>${charset}</charset>
<immediateFlush>${immediateFlush}</immediateFlush>
</encoder>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
<onMatch>ACCEPT</onMatch>
<onMismatch>DENY</onMismatch>
</filter>
</appender>
<!-- 异步输出 -->
<appender name="ERROR_FILE_ASYNC" class="ch.qos.logback.classic.AsyncAppender">
<!-- 不丢失日志.默认的,如果队列的80%已满,则会丢弃TRACT、DEBUG、INFO级别的日志 -->
<discardingThreshold>0</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>8192</queueSize>
<!-- 添加附加的appender,最多只能添加一个 -->
<appender-ref ref="ERROR_FILE" />
</appender>
<logger name="com.apache.ibatis" level="TRACE" />
<logger name="java.sql.Connection" level="DEBUG" />
<logger name="java.sql.Statement" level="DEBUG" />
<logger name="org.springframework.web" level="INFO"/>
<logger name="com.brilliance" level="DEBUG" />
<logger name="com.ceb" level="DEBUG" />
<root level="INFO">
<appender-ref ref="STDOUT" />
<appender-ref ref="INFO_FILE_ASYNC" />
<appender-ref ref="DEBUG_FILE_ASYNC" />
<appender-ref ref="ERROR_FILE_ASYNC" />
</root>
</configuration>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment