初始化项目

This commit is contained in:
Leo 2025-07-05 12:29:03 +08:00
commit afe542010b
24 changed files with 1483 additions and 0 deletions

38
.gitignore vendored Normal file
View File

@ -0,0 +1,38 @@
target/
!.mvn/wrapper/maven-wrapper.jar
!**/src/main/**/target/
!**/src/test/**/target/
### IntelliJ IDEA ###
.idea/modules.xml
.idea/jarRepositories.xml
.idea/compiler.xml
.idea/libraries/
*.iws
*.iml
*.ipr
### Eclipse ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### NetBeans ###
/nbproject/private/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/
build/
!**/src/main/**/build/
!**/src/test/**/build/
### VS Code ###
.vscode/
### Mac OS ###
.DS_Store

8
.idea/.gitignore vendored Normal file
View File

@ -0,0 +1,8 @@
# Default ignored files
/shelf/
/workspace.xml
# Editor-based HTTP Client requests
/httpRequests/
# Datasource local storage ignored files
/dataSources/
/dataSources.local.xml

25
.idea/encodings.xml Normal file
View File

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="Encoding">
<file url="file://$PROJECT_DIR$/coder-common-thin-common/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-common/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-model/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-model/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-modules/coder-common-thin-system/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-modules/coder-common-thin-system/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-modules/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-modules/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-mybatisplus/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-mybatisplus/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-plugins/coder-common-thin-resultex/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-plugins/coder-common-thin-resultex/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-plugins/coder-common-thin-sa-token/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-plugins/coder-common-thin-sa-token/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-plugins/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-plugins/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-web/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/coder-common-thin-web/src/main/resources" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
<file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
</component>
</project>

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="GitToolBoxBlameSettings">
<option name="version" value="2" />
</component>
</project>

View File

@ -0,0 +1,6 @@
<component name="InspectionProjectProfileManager">
<profile version="1.0">
<option name="myName" value="Project Default" />
<inspection_tool class="VulnerableLibrariesLocal" enabled="false" level="WARNING" enabled_by_default="false" />
</profile>
</component>

16
.idea/misc.xml Normal file
View File

@ -0,0 +1,16 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="ExternalStorageConfigurationManager" enabled="true" />
<component name="MavenProjectsManager">
<option name="originalFiles">
<list>
<option value="$PROJECT_DIR$/pom.xml" />
<option value="$PROJECT_DIR$/coder-common-thin-plugins/coder-common-thin-resultex/pom.xml" />
<option value="$PROJECT_DIR$/coder-common-thin-plugins/coder-common-thin-sa-token/pom.xml" />
</list>
</option>
</component>
<component name="ProjectRootManager" version="2" languageLevel="JDK_17" default="true" project-jdk-name="17" project-jdk-type="JavaSDK">
<output url="file://$PROJECT_DIR$/out" />
</component>
</project>

6
.idea/vcs.xml Normal file
View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?>
<project version="4">
<component name="VcsDirectoryMappings">
<mapping directory="$PROJECT_DIR$" vcs="Git" />
</component>
</project>

View File

@ -0,0 +1,94 @@
<?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.leocoder.thin</groupId>
<artifactId>coder-common-thin-backend</artifactId>
<version>${revision}</version>
</parent>
<name>coder-common-thin-common</name>
<artifactId>coder-common-thin-common</artifactId>
<description>全局工具类</description>
<dependencies>
<!-- SpringBoot Web容器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Redis -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-redis</artifactId>
</dependency>
<!-- SpringBoot 安全性检查[可以用于检测系统的健康情况、当前的Beans、系统的缓存] -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<!-- 解析客户端操作系统、浏览器等 -->
<dependency>
<groupId>eu.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
</dependency>
<!-- 阿里StringUtils工具类 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
</dependency>
<!-- 阿里JSON转化工具 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- Slf4j -->
<dependency>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-api</artifactId>
</dependency>
<!-- Joda-Time日期时间工具类 -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
</dependency>
<!-- Ip地址获取 -->
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-ip2region</artifactId>
</dependency>
<!-- guava -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
</dependency>
<!-- hutool工具类 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
</dependency>
<!-- 动态数据源[单独提供给web服务使用] -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
</dependency>
<!-- Sa-Token 权限认证在线文档https://sa-token.cc -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot3-starter</artifactId>
</dependency>
<!-- 验证码-->
<dependency>
<groupId>com.github.whvcse</groupId>
<artifactId>easy-captcha</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,51 @@
<?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.leocoder.thin</groupId>
<artifactId>coder-common-thin-backend</artifactId>
<version>${revision}</version>
</parent>
<name>coder-common-thin-model</name>
<artifactId>coder-common-thin-model</artifactId>
<description>实体类模块</description>
<dependencies>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</dependency>
<!-- 实体中会用mp的注解 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
</dependency>
<!-- 自定义验证注解 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-validation</artifactId>
</dependency>
<!-- 数据脱敏 -->
<!-- <dependency> -->
<!-- <groupId>org.leocoder.thin</groupId> -->
<!-- <artifactId>coder-common-thin-desensitize</artifactId> -->
<!-- <version>${revision}</version> -->
<!-- </dependency> -->
<!-- 参数校验 -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
</dependency>
<!-- EasyExcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,45 @@
<?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.leocoder.thin</groupId>
<artifactId>coder-common-thin-backend</artifactId>
<version>${revision}</version>
<relativePath>../../pom.xml</relativePath>
</parent>
<name>coder-common-thin-system</name>
<artifactId>coder-common-thin-system</artifactId>
<description>系统模块</description>
<dependencies>
<!-- 公共模块 -->
<dependency>
<groupId>org.leocoder.thin</groupId>
<artifactId>coder-common-thin-common</artifactId>
<version>${revision}</version>
</dependency>
<!-- 数据统一返回、全局异常以及限流、数据脱敏、重复提交等插件 -->
<dependency>
<groupId>org.leocoder.thin</groupId>
<artifactId>coder-common-thin-resultex</artifactId>
<version>${revision}</version>
</dependency>
<!-- Sa-Token组件 -->
<dependency>
<groupId>org.leocoder.thin</groupId>
<artifactId>coder-common-thin-sa-token</artifactId>
<version>${revision}</version>
</dependency>
<!-- 操作日志组件 -->
<!-- <dependency> -->
<!-- <groupId>org.leocoder.thin</groupId> -->
<!-- <artifactId>coder-common-thin-oper-logs</artifactId> -->
<!-- <version>${revision}</version> -->
<!-- </dependency> -->
</dependencies>
</project>

View File

@ -0,0 +1,22 @@
<?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.leocoder.thin</groupId>
<artifactId>coder-common-thin-backend</artifactId>
<version>${revision}</version>
</parent>
<artifactId>coder-common-thin-modules</artifactId>
<packaging>pom</packaging>
<description>业务模块</description>
<modules>
<module>coder-common-thin-system</module>
</modules>
</project>

View File

@ -0,0 +1,46 @@
<?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.leocoder.thin</groupId>
<artifactId>coder-common-thin-backend</artifactId>
<version>${revision}</version>
</parent>
<name>coder-mybatis-plus</name>
<artifactId>coder-common-thin-mybatisplus</artifactId>
<description>MybatisPlus插件</description>
<dependencies>
<!-- Mapper针对pojo,bo,vo,dto等依赖进来 -->
<dependency>
<groupId>org.leocoder.thin</groupId>
<artifactId>coder-common-thin-model</artifactId>
<version>${revision}</version>
</dependency>
<!-- MySQL数据库连接依赖[只有接口工程需要] -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
</dependency>
<!-- Mapper会用到MyBatisPlus的类 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
</dependency>
<!-- MyBatisPlus PaginationInnerInterceptor分离插件 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
</dependency>
<!-- p6spy SQL打印 -->
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,67 @@
<?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.leocoder.thin</groupId>
<artifactId>coder-common-thin-plugins</artifactId>
<version>${revision}</version>
</parent>
<name>coder-common-thin-resultex</name>
<artifactId>coder-common-thin-resultex</artifactId>
<description>全局统一返回 和 全局异常类</description>
<dependencies>
<!-- Model模块 -->
<dependency>
<groupId>org.leocoder.thin</groupId>
<artifactId>coder-common-thin-model</artifactId>
<version>${revision}</version>
</dependency>
<!-- MyBatisPlus模块[可删除coder-dict插件已经依赖] -->
<dependency>
<groupId>org.leocoder.thin</groupId>
<artifactId>coder-common-thin-mybatisplus</artifactId>
<version>${revision}</version>
</dependency>
<!-- 数据字典翻译 -->
<!-- <dependency> -->
<!-- <groupId>org.leocoder.thin</groupId> -->
<!-- <artifactId>coder-common-thin-dict</artifactId> -->
<!-- <version>${revision}</version> -->
<!-- </dependency> -->
<!-- 限流(工具类模块已包含里面,其他插件都使用) -->
<!-- <dependency> -->
<!-- <groupId>org.leocoder.thin</groupId> -->
<!-- <artifactId>coder-common-thin-limit</artifactId> -->
<!-- <version>${revision}</version> -->
<!-- </dependency> -->
<!-- 重复提交插件-->
<!-- <dependency> -->
<!-- <groupId>org.leocoder.thin</groupId> -->
<!-- <artifactId>coder-common-thin-repect</artifactId> -->
<!-- <version>${revision}</version> -->
<!-- </dependency> -->
<!-- EasyExcel插件 -->
<!-- <dependency> -->
<!-- <groupId>org.leocoder.thin</groupId> -->
<!-- <artifactId>coder-common-thin-easyexcel</artifactId> -->
<!-- <version>${revision}</version> -->
<!-- </dependency> -->
<!-- 常用注解:例如:部门数据权限注解 -->
<!-- <dependency> -->
<!-- <groupId>org.leocoder.thin</groupId> -->
<!-- <artifactId>coder-common-thin-annotation</artifactId> -->
<!-- <version>${revision}</version> -->
<!-- </dependency> -->
<!-- Sa-Token 权限认证用来处理全局拦截sa-token异常使用在线文档https://sa-token.cc -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot3-starter</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,58 @@
<?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.leocoder.thin</groupId>
<artifactId>coder-common-thin-plugins</artifactId>
<version>${revision}</version>
</parent>
<name>coder-common-thin-sa-token</name>
<artifactId>coder-common-thin-sa-token</artifactId>
<description>Sa-Token模块</description>
<dependencies>
<!-- 全局公共模块 -->
<dependency>
<groupId>org.leocoder.thin</groupId>
<artifactId>coder-common-thin-common</artifactId>
<version>${revision}</version>
</dependency>
<!-- MyBatisPlus模块 -->
<dependency>
<groupId>org.leocoder.thin</groupId>
<artifactId>coder-common-thin-mybatisplus</artifactId>
<version>${revision}</version>
</dependency>
<!-- Aop依赖 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>
<!-- Sa-Token 权限认证 start -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot3-starter</artifactId>
</dependency>
<!-- Sa-Token 整合 Redis[使用 jackson 序列化方式] -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-redis-jackson</artifactId>
</dependency>
<!-- 注意:无论使用哪种序列化方式,你都必须为项目提供一个 Redis 实例化方案 -->
<!-- 提供Redis连接池[Sa-Token] -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
</dependency>
<!-- Sa-Token 整合 SpringAOP 实现注解鉴权 -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-aop</artifactId>
</dependency>
</dependencies>
</project>

View File

@ -0,0 +1,22 @@
<?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.leocoder.thin</groupId>
<artifactId>coder-common-thin-backend</artifactId>
<version>${revision}</version>
</parent>
<artifactId>coder-common-thin-plugins</artifactId>
<packaging>pom</packaging>
<description>插件模块</description>
<modules>
<module>coder-common-thin-resultex</module>
<module>coder-common-thin-sa-token</module>
</modules>
</project>

View File

@ -0,0 +1,88 @@
<?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.leocoder.thin</groupId>
<artifactId>coder-common-thin-backend</artifactId>
<version>${revision}</version>
</parent>
<name>coder-common-thin-web</name>
<artifactId>coder-common-thin-web</artifactId>
<description>入口项目,负责打包</description>
<dependencies>
<!-- SpringBoot Web容器 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Sa-Token模块和系统管理模块 -->
<dependency>
<groupId>org.leocoder.thin</groupId>
<artifactId>coder-common-thin-system</artifactId>
<version>${revision}</version>
</dependency>
<!-- 定时任务 -->
<!-- <dependency> -->
<!-- <groupId>org.leocoder.thin</groupId> -->
<!-- <artifactId>coder-common-thin-job</artifactId> -->
<!-- <version>${revision}</version> -->
<!-- </dependency> -->
<!-- 代码生成器 -->
<!-- <dependency> -->
<!-- <groupId>org.leocoder.thin</groupId> -->
<!-- <artifactId>coder-common-thin-generator</artifactId> -->
<!-- <version>${revision}</version> -->
<!-- </dependency> -->
<!-- 监控模块 -->
<!-- <dependency> -->
<!-- <groupId>org.leocoder.thin</groupId> -->
<!-- <artifactId>coder-common-thin-monitor</artifactId> -->
<!-- <version>${revision}</version> -->
<!-- </dependency> -->
<!-- 热榜API模块 -->
<!-- <dependency> -->
<!-- <groupId>org.leocoder.thin</groupId> -->
<!-- <artifactId>coder-hotlist-api</artifactId> -->
<!-- <version>${revision}</version> -->
<!-- </dependency> -->
</dependencies>
<build>
<!-- 指定打包名字 -->
<finalName>coder-admin</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${springboot.version}</version>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>
</project>

View File

@ -0,0 +1,43 @@
package org.leocoder.thin.web;
import lombok.extern.slf4j.Slf4j;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.scheduling.annotation.EnableScheduling;
/**
* @author : Leocoder
* @version 1.0
* @date 2025-06-28 14:05
* @description : 开头的注解是一个插件插入的开关如果不是相同目录级别的可以使用这个进行跨包!
*/
// @EnableCoderSaToken
// @EnableCoderEasyExcel
// @EnableCoderDesensitize
// @EnableCoderRepeatSubmit
// @EnableCoderLimit
// @EnableMybatisPlus
// @EnableResultEx
// @EnableOperLog
// @EnableCoderDict
@EnableScheduling
@Slf4j
@SpringBootApplication(scanBasePackages = "org.leocoder.thin")
public class CoderApplication {
public static void main(String[] args) {
/* 注意:注入依赖三种选择:@Autowired(required = false) OR @Resource[推荐] OR @RequiredArgsConstructor[推荐] */
SpringApplication.run(CoderApplication.class, args);
log.info(
"\n" +
"Coder-Admin管理平台starter =>ヽ(✿゚▽゚) \n" +
"超级无敌宇宙最强最帅最可爱系统启动成功(๑‾ ꇴ ‾๑) \n" +
" ____ __. .__ _____ ________ _____ .___ _______ \n" +
"| |/ _|____ |__| / _ \\ \\______ \\ / \\ | |\\ \\ \n" +
"| < / _ \\| | ______ / /_\\ \\ | | \\ / \\ / \\| |/ | \\ \n" +
"| | ( <_> ) | /_____/ / | \\| ` \\/ Y \\ / | \\ \n" +
"|____|__ \\____/|__| \\____|__ /_______ /\\____|__ /___\\____|__ / \n" +
" \\/ \\/ \\/ \\/ \\/ \n" +
"CoderApplication[18088] => 闪亮登场(๑•̀ㅂ•́) ✧"
);
}
}

View File

@ -0,0 +1,79 @@
spring:
datasource:
type: com.zaxxer.hikari.HikariDataSource
hikari:
# 连接池名字
pool-name: CORDER-HIKARI-DEV
# 最大连接池数量
maximum-pool-size: 20
# 最小空闲线程数量
minimum-idle: 10
# 配置获取连接等待超时的时间
connectionTimeout: 30000
# 校验超时时间
validationTimeout: 5000
# 空闲连接存活最大时间默认10分钟
idleTimeout: 600000
# 此属性控制池中连接的最长生命周期值0表示无限生命周期默认30分钟
maxLifetime: 1800000
# 连接测试query[配置检测连接是否有效]
connectionTestQuery: SELECT 1
# 多久检查一次连接的活性
keepaliveTime: 30000
dynamic:
# 性能分析插件[有性能损耗,不建议生产环境使用]
p6spy: true
# 默认数据源[master]
primary: master
# 严格匹配数据源默认false. true未匹配到指定数据源时抛异常false使用默认数据源
strict: false
datasource:
# 主库数据源
master: # 没有@DS默认数据源
type: ${spring.datasource.type}
url: jdbc:mysql://localhost:3306/coder-common-thin?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: coder
# 从库数据源
slave: # @DS("dsName")dsName可以为组名也可以为具体某个库的名称使用多数据源遵循格式注解都在mapper层使用。
lazy: true
type: ${spring.datasource.type}
url: jdbc:mysql://localhost:3306/coder-common-thin-backup?serverTimezone=GMT%2b8&useUnicode=true&characterEncoding=utf-8&useSSL=false&rewriteBatchedStatements=true
driver-class-name: com.mysql.cj.jdbc.Driver
username: root
password: coder
# redis配置
data:
redis:
# 地址
host: localhost
# 端口默认为6379
port: 16379
# 数据库索引
database: 0
# 密码[若没有密码请注释掉,若有账号密码:则 账号:密码]
password: coder
# 连接超时时间
timeout: 10s
# 是否开启ssl
ssl.enabled: false
# 项目配置
coder:
# 名称
projectName: CORDER-ADMIN-THIN
# 版本
projectVersion: 1.0.0
# 文件路径 示例[Windows配置D:/CoderFileLinux配置 /usr/local/CoderFile]
filePath: /Users/leocoder/leocoder/develop/templates/coder-common-thin/coder-common-thin-backend/picture
# 全局限流
globalLimit:
# 是否开启全局限流
enabled: false
# 默认限流时间[秒]
time: 1
# 默认限流次数
count: 12
# 是否封禁IP
ban: false

View File

@ -0,0 +1,177 @@
server:
port: ${port:18099}
tomcat:
# tomcat的URI编码
uri-encoding: UTF-8
# Tomcat默认限制文件上传的大小是2MB ,超过就不会被捕获,需要调整大一点或者-1不限制
max-swallow-size: -1
# 不限制POST提交请求的数据大小默认是2MB
max-http-form-post-size: -1
# 连接数满后的排队数默认为100
accept-count: 1000
threads:
# tomcat最大线程数默认为200
max: 800
# Tomcat启动初始化的线程数默认值10
min-spare: 100
# 开启GZIP压缩利于你静态资源传输提升网站请求响应速度
compression:
enabled: true
min-response-size: 1024
# 默认是8k
max-http-request-header-size: 80KB
spring:
messages:
encoding: UTF-8
basename: i18n/messages
profiles:
active: dev
# 操作日志配置
coder:
oper-log:
# 异步线程池配置
async:
core-pool-size: 2
max-pool-size: 5
queue-capacity: 1000
keep-alive-seconds: 60
# 日志清理配置
clean:
enabled: true
days: 90
cron: "0 0 2 * * ?"
# 参数记录配置
param:
max-length: 2000
exclude-fields:
- password
- pwd
- oldPassword
- newPassword
- confirmPassword
# 结果记录配置
result:
max-length: 2000
exclude-large-result: true
# 解决时间的保存及显示错误问题[实体中就无需再额外注解]
jackson:
date-format: yyyy-MM-dd HH:mm:ss
locale: zh_CN
# 解决java中时间是对的序列化后到前端差8小时
time-zone: GMT+8
default-property-inclusion: non_null
mvc:
# 解决时间的保存及显示错误问题[实体中就无需再额外注解]
format:
date: yyyy-MM-dd HH:mm:ss
main: # SpringBootv2.6.3中,做了循环应用的检查,默认情况下,如果类中存在有循环引用的情况,就会报上面的错误
allow-circular-references: true
application:
name: coder-web
servlet:
multipart:
enabled: true
# 是单个文件大小 默认1M 10KB
max-file-size: 10MB
# 是设置总上传的数据大小
max-request-size: 20MB
freemarker:
# 指定HttpServletRequest的属性是否可以覆盖controller的model的同名项
allow-request-override: false
# req访问request
request-context-attribute: request
# 后缀名freemarker默认后缀为.ftl当然你也可以改成自己习惯的.html
suffix: .html
# 设置响应的内容类型
content-type: text/html;charset=utf-8
# 是否允许mvc使用freemarker
enabled: true
# 是否开启template caching
cache: false
# 检查模板位置是否存在
check-template-location: true
# 设定模板的加载路径,多个以逗号分隔,默认: [“classpath:/templates/”]
template-loader-path: classpath:/templates/,classpath:/templates/**/
# 设定Template的编码
charset: UTF-8
settings:
template_update_delay: 0 # 检查模板更新延迟时间设置为0表示立即检查如果时间大于0会有缓存不方便进行模板测试
tag_syntax: auto_detect
default_encoding: UTF-8
output_encoding: UTF-8
locale: zh_CN
date_format: yyyy-MM-dd
time_format: HH:mm:ss
boolean_format: true,false
whitespace_stripping: true
url_escaping_charset: UTF-8
datetime_format: yyyy/MM/dd HH:mm:ss
number_format: 0.##
classic_compatible: true
# ignore,debug,html_debug,rethrow
template_exception_handler: rethrow
prefer-file-system-access: false
# mybatis-plus配置
mybatis-plus:
mapper-locations: classpath*:mapper/**/*.xml,mapper/*.xml
configuration:
# MybatisPlus配置中设置将sql日志和结果集输出到控制台会有性能损耗 org.apache.ibatis.logging.stdout.StdOutImpl
# 关闭日志记录[单纯使用 p6spy 分析] org.apache.ibatis.logging.nologging.NoLoggingImpl
# 默认日志输出 org.apache.ibatis.logging.slf4j.Slf4jImpl
log-impl: org.apache.ibatis.logging.nologging.NoLoggingImpl
global-config:
# 是否打印 Logo banner
banner: true
dbConfig:
# 主键类型
# AUTO[自增] NONE[空] INPUT[用户输入] ASSIGN_ID[雪花] ASSIGN_UUID[唯一] UUID[UUID]
idType: ASSIGN_ID
# 逻辑已删除值[框架表均使用此值 禁止随意修改]
logicDeleteValue: 0
# 逻辑未删除值
logicNotDeleteValue: 1
insertStrategy: NOT_NULL
updateStrategy: NOT_NULL
whereStrategy: NOT_NULL
############## Sa-Token 配置 [文档: https://sa-token.cc] ##############
# 1、被顶下线旧的token为何还存在 如果还是用旧token来请求就会返回你已被顶下线
# 2、前后端分离模式记录的sa-session存在哪个地方 会存在Redis中
# 3、前后端分离模式退出时前后端模式获取到token的值只从前端传递过来headers中拿yml中进行配置的如下方所示
# 然后StpUtil.logout();自动根据Headers的Authorization获取值进行从redis中删除token
# 是否尝试从header里读取tokenHeader用来获取客户端使用的操作系统和浏览器名称和版本和token前端将token怎么存储的需要跟yml下方中配置的保持一致
# is-read-header: true
# 是否尝试从cookie里读取token
# is-read-cookie: false
# 是否尝试从请求体里读取token
# is-read-body: false
# StpUtil.getLoginIdAsString() 使用这种Sa-Token封装的方法必须携带token
sa-token:
# token名称 [同时也是cookie名称推荐使用]
token-name: Authorization
# token 前缀
token-prefix: Bearer
# token 风格默认可取值uuid、simple-uuid、random-32、random-64、random-128、tik
token-style: tik
# token有效期单位s 默认30天, -1代表永不过期10800[3小时]后端生成的 token即使用户一直操作在 30 天后一定会过期,要求用户重新登录)
timeout: -1
# token 最低活跃频率[单位:秒],如果 token 超过此时间没有访问系统就会被冻结,默认-1 代表不限制,永不冻结 3600
active-timeout: -1
# 自动续签,指定时间内有操作,则会自动续签
auto-renew: true
# 是否尝试从cookie里读取token
is-read-cookie: false
# 是否尝试从header里读取token
is-read-header: true
# 是否允许同一账号多地同时登录[为 true 时允许一起登录, 为 false 时新登录挤掉旧登录]
is-concurrent: true
# 在多人登录同一账号时,是否共用一个 token[为 true 时所有登录共用一个 token, 为 false 时每次登录新建一个 token]
is-share: false
# 是否在初始化配置时打印版本字符画
is-print: true
# 是否输出操作日志
is-log: true

View File

@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 注意此日志配置将info、warn、error日志合并一个输出并且按照小时自动生成。 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>coder-common-thin-logback</contextName>
<property name="CORDER_ADMIN_LOGS" value="./logs"/>
<!-- 彩色日志 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex" converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx" converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- 彩色日志格式 [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n -->
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr([TraceId: %X{traceId}]%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- 控制台 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="combinedFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
</filter>
<!-- 日志存储路径 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${CORDER_ADMIN_LOGS}/%d{yyyy-MM-dd_HH}.log</fileNamePattern>
<maxHistory>30</maxHistory>
<!-- 每个小时生成一个新的文件而不受日志大小限制比如100MB的影响可以将这个注释 -->
<!-- 单个日志文件最大100M到了这个值就会再创建一个日志文件日志文件的名字最后+1 -->
<!-- <maxFileSize>100MB</maxFileSize> -->
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>[[TraceId: %X{traceId}]%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{36} : %msg%n</pattern>
</encoder>
</appender>
<springProfile name="dev">
<root level="info">
<appender-ref ref="stdout"/>
<appender-ref ref="combinedFile"/>
</root>
</springProfile>
<springProfile name="prod">
<root level="info">
<appender-ref ref="combinedFile"/>
</root>
</springProfile>
</configuration>

View File

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 注意此日志配置将info、error日志分开输出并且按照小时生成日志文件不足100MB则还打印到第一个生成的日志文件。 -->
<!--
scan: 当此属性设置为true时配置文件如果发生改变将会被重新加载默认值为true。
scanPeriod: 设置监测配置文件是否有修改的时间间隔如果没有给出时间单位默认单位是毫秒。当scan为true时此属性生效。默认的时间间隔为1分钟。
debug: 当此属性设置为true时将打印出logback内部日志信息实时查看logback运行状态。默认值为false。
configuration 子节点为 appender、logger、root
注意此日志配置是将info、error日志分开放置。
-->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<!-- 用于区分不同应用程序的记录 -->
<contextName>coder-common-thin-logback</contextName>
<!-- 日志文件所在目录如果是tomcat如下写法日志文件会在则为${TOMCAT_HOME}/bin/logs/目录下 -->
<property name="CORDER_ADMIN_LOGS" value="./logs"/>
<!-- 彩色日志 -->
<!-- 彩色日志依赖的渲染类 -->
<conversionRule conversionWord="clr" converterClass="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex"
converterClass="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx"
converterClass="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- 彩色日志格式 [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n -->
<property name="CONSOLE_LOG_PATTERN"
value="${CONSOLE_LOG_PATTERN:-%clr([TraceId: %X{traceId}]%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- 控制台 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<!-- 格式化输出:%d表示日期%thread表示线程名%-5level级别从左显示5个字符宽度 %logger输出日志的logger名 %msg日志消息%n是换行符 -->
<!-- <pattern>[%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{36} : %msg%n</pattern> -->
<pattern>${CONSOLE_LOG_PATTERN}</pattern><!-- 彩打日志 -->
<!-- 解决乱码问题 -->
<charset>UTF-8</charset>
</encoder>
</appender>
<!-- 滚动文件 -->
<appender name="infoFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- ThresholdFilter:临界值过滤器,过滤掉 TRACE 和 DEBUG 级别的日志 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${CORDER_ADMIN_LOGS}/info/%d{yyyy-MM-dd}/%d{HH}.log</fileNamePattern>
<!-- 每个小时生成一个新的文件而不受日志大小限制比如100MB的影响可以将这个注释 -->
<!-- 单个日志文件最大100M到了这个值就会再创建一个日志文件日志文件的名字最后+1 -->
<maxFileSize>100MB</maxFileSize>
<!-- 保存最近30天的日志 -->
<maxHistory>30</maxHistory>
<!-- 所有的日志文件最大3G超过就会删除旧的日志 -->
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>[[TraceId: %X{traceId}]%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{36} : %msg%n
</pattern>
</encoder>
</appender>
<!-- 滚动文件 -->
<appender name="errorFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<!-- ThresholdFilter临界值过滤器过滤掉 TRACE 和 DEBUG 级别的日志 -->
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>ERROR</level>
</filter>
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${CORDER_ADMIN_LOGS}/error/%d{yyyy-MM-dd}/%d{HH}.log</fileNamePattern>
<!-- 每个小时生成一个新的文件而不受日志大小限制比如100MB的影响可以将这个注释 -->
<!-- 单个日志文件最大100M到了这个值就会再创建一个日志文件日志文件的名字最后+1 -->
<maxFileSize>100MB</maxFileSize>
<!-- 保存最近30天的日志 -->
<maxHistory>30</maxHistory>
<!-- 所有的日志文件最大3G超过就会删除旧的日志 -->
<totalSizeCap>10GB</totalSizeCap>
</rollingPolicy>
<encoder>
<charset>UTF-8</charset>
<pattern>[[TraceId: %X{traceId}]%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{36} : %msg%n
</pattern>
</encoder>
</appender>
<!-- 配置多环境日志输出 可以在application.properties中配置选择哪个profiles : spring.profiles.active=dev -->
<!-- 开发环境:打印控制台 -->
<springProfile name="dev">
<root level="info">
<appender-ref ref="stdout"/>
<appender-ref ref="infoFile"/>
<appender-ref ref="errorFile"/>
</root>
</springProfile>
<!-- 生产环境:输出到文件 -->
<springProfile name="prod">
<root level="info">
<appender-ref ref="infoFile"/>
<appender-ref ref="errorFile"/>
</root>
</springProfile>
</configuration>

View File

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- 注意此日志配置将info、warn、error日志合并一个输出按照天划分大于100MB后面日志名字最后+1 -->
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<contextName>coder-common-thin-logback</contextName>
<property name="CORDER_ADMIN_LOGS" value="./logs"/>
<!-- 彩色日志 -->
<conversionRule conversionWord="clr" class="org.springframework.boot.logging.logback.ColorConverter"/>
<conversionRule conversionWord="wex" class="org.springframework.boot.logging.logback.WhitespaceThrowableProxyConverter"/>
<conversionRule conversionWord="wEx" class="org.springframework.boot.logging.logback.ExtendedWhitespaceThrowableProxyConverter"/>
<!-- 彩色日志格式 [%-5p] %d{yyyy-MM-dd HH:mm:ss,SSS} method:%l%n%m%n -->
<property name="CONSOLE_LOG_PATTERN" value="${CONSOLE_LOG_PATTERN:-%clr([TraceId: [%boldCyan(%X{traceId})]]%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}}"/>
<!-- 控制台 -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>${CONSOLE_LOG_PATTERN}</pattern>
<charset>UTF-8</charset>
</encoder>
</appender>
<appender name="combinedFile" class="ch.qos.logback.core.rolling.RollingFileAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>ERROR</level>
</filter>
<filter class="ch.qos.logback.classic.filter.LevelFilter">
<level>WARN</level>
</filter>
<!-- 日志存储路径 -->
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
<fileNamePattern>${CORDER_ADMIN_LOGS}/%d{yyyy-MM-dd}.log</fileNamePattern>
<maxHistory>30</maxHistory>
</rollingPolicy>
<!-- 日志很多每天,需要拆分使用下方这个 -->
<!-- <rollingPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedRollingPolicy">-->
<!-- <fileNamePattern>${CORDER_ADMIN_LOGS}/%d{yyyy-MM-dd}.%i.log</fileNamePattern>-->
<!-- <maxHistory>30</maxHistory>-->
<!-- &lt;!&ndash; 单个日志文件最大100M &ndash;&gt;-->
<!-- <maxFileSize>100MB</maxFileSize>-->
<!-- </rollingPolicy>-->
<encoder>
<charset>UTF-8</charset>
<pattern>[[TraceId: %X{traceId}]%d{yyyy-MM-dd HH:mm:ss.SSS}] [%thread] %-5level %logger{36} : %msg%n</pattern>
</encoder>
</appender>
<springProfile name="dev">
<root level="info">
<appender-ref ref="stdout"/>
<appender-ref ref="combinedFile"/>
</root>
</springProfile>
<springProfile name="prod">
<root level="info">
<appender-ref ref="combinedFile"/>
</root>
</springProfile>
</configuration>

88
logs/2025-07-05.log Normal file
View File

@ -0,0 +1,88 @@
[[TraceId: ]2025-07-05 12:26:15.487] [background-preinit] INFO o.h.validator.internal.util.Version : HV000001: Hibernate Validator 9.0.0.Final
[[TraceId: ]2025-07-05 12:26:15.509] [main] INFO o.leocoder.thin.web.CoderApplication : Starting CoderApplication using Java 17.0.13 with PID 87212 (/Users/leocoder/leocoder/develop/templates/coder-common-thin/coder-common-thin-backend/coder-common-thin-web/target/classes started by leocoder in /Users/leocoder/leocoder/develop/templates/coder-common-thin/coder-common-thin-backend)
[[TraceId: ]2025-07-05 12:26:15.509] [main] INFO o.leocoder.thin.web.CoderApplication : The following 1 profile is active: "dev"
[[TraceId: ]2025-07-05 12:26:16.046] [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
[[TraceId: ]2025-07-05 12:26:16.048] [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
[[TraceId: ]2025-07-05 12:26:16.059] [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 2 ms. Found 0 Redis repository interfaces.
[[TraceId: ]2025-07-05 12:26:16.110] [main] WARN o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[org.leocoder.thin.web]' package. Please check your configuration.
[[TraceId: ]2025-07-05 12:26:16.293] [main] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker : Bean 'cn.dev33.satoken.aop.SaAopPointcutAdvisorBeanRegister' of type [cn.dev33.satoken.aop.SaAopPointcutAdvisorBeanRegister$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE.
[[TraceId: ]2025-07-05 12:26:16.301] [main] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker : Bean 'saAroundAnnotationHandlePointcutAdvisor' of type [cn.dev33.satoken.aop.SaAroundAnnotationPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE.
[[TraceId: ]2025-07-05 12:26:16.536] [main] INFO o.s.b.w.e.tomcat.TomcatWebServer : Tomcat initialized with port 18099 (http)
[[TraceId: ]2025-07-05 12:26:16.545] [main] INFO o.a.coyote.http11.Http11NioProtocol : Initializing ProtocolHandler ["http-nio-18099"]
[[TraceId: ]2025-07-05 12:26:16.546] [main] INFO o.a.catalina.core.StandardService : Starting service [Tomcat]
[[TraceId: ]2025-07-05 12:26:16.546] [main] INFO o.a.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.41]
[[TraceId: ]2025-07-05 12:26:16.577] [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
[[TraceId: ]2025-07-05 12:26:16.578] [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1044 ms
[[TraceId: ]2025-07-05 12:26:17.114] [main] INFO c.b.d.d.DynamicRoutingDataSource : dynamic-datasource detect P6SPY plugin and enabled it
[[TraceId: ]2025-07-05 12:26:17.121] [main] INFO com.zaxxer.hikari.HikariDataSource : master - Starting...
[[TraceId: ]2025-07-05 12:26:17.228] [main] INFO com.zaxxer.hikari.pool.HikariPool : master - Added connection com.mysql.cj.jdbc.ConnectionImpl@6a4f7c17
[[TraceId: ]2025-07-05 12:26:17.229] [main] INFO com.zaxxer.hikari.HikariDataSource : master - Start completed.
[[TraceId: ]2025-07-05 12:26:17.230] [main] INFO c.b.d.d.DynamicRoutingDataSource : dynamic-datasource - add a datasource named [slave] success
[[TraceId: ]2025-07-05 12:26:17.230] [main] INFO c.b.d.d.DynamicRoutingDataSource : dynamic-datasource - add a datasource named [master] success
[[TraceId: ]2025-07-05 12:26:17.230] [main] INFO c.b.d.d.DynamicRoutingDataSource : dynamic-datasource initial loaded [2] datasource,primary datasource named [master]
[[TraceId: ]2025-07-05 12:26:17.298] [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware : Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4c432866
[[TraceId: ]2025-07-05 12:26:17.665] [main] INFO o.s.b.a.e.web.EndpointLinksResolver : Exposing 1 endpoint beneath base path '/actuator'
[[TraceId: ]2025-07-05 12:26:17.710] [main] INFO o.a.coyote.http11.Http11NioProtocol : Starting ProtocolHandler ["http-nio-18099"]
[[TraceId: ]2025-07-05 12:26:17.725] [main] INFO o.s.b.w.e.tomcat.TomcatWebServer : Tomcat started on port 18099 (http) with context path '/'
[[TraceId: ]2025-07-05 12:26:17.737] [main] INFO o.leocoder.thin.web.CoderApplication : Started CoderApplication in 2.582 seconds (process running for 3.154)
[[TraceId: ]2025-07-05 12:26:17.741] [main] INFO o.leocoder.thin.web.CoderApplication :
Coder-Admin管理平台starter =>ヽ(✿゚▽゚)
超级无敌宇宙最强最帅最可爱系统启动成功(๑‾ ꇴ ‾๑)
____ __. .__ _____ ________ _____ .___ _______
| |/ _|____ |__| / _ \ \______ \ / \ | |\ \
| < / _ \| | ______ / /_\ \ | | \ / \ / \| |/ | \
| | ( <_> ) | /_____/ / | \| ` \/ Y \ / | \
|____|__ \____/|__| \____|__ /_______ /\____|__ /___\____|__ /
\/ \/ \/ \/ \/
CoderApplication[18088] => 闪亮登场(๑•̀ㅂ•́) ✧
[[TraceId: ]2025-07-05 12:26:18.238] [RMI TCP Connection(2)-192.168.86.9] INFO o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
[[TraceId: ]2025-07-05 12:26:18.238] [RMI TCP Connection(2)-192.168.86.9] INFO o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
[[TraceId: ]2025-07-05 12:26:18.239] [RMI TCP Connection(2)-192.168.86.9] INFO o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms
[[TraceId: ]2025-07-05 12:27:02.694] [SpringApplicationShutdownHook] INFO o.s.b.w.e.tomcat.GracefulShutdown : Commencing graceful shutdown. Waiting for active requests to complete
[[TraceId: ]2025-07-05 12:27:04.707] [tomcat-shutdown] INFO o.s.b.w.e.tomcat.GracefulShutdown : Graceful shutdown complete
[[TraceId: ]2025-07-05 12:27:04.720] [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource : dynamic-datasource start closing ....
[[TraceId: ]2025-07-05 12:27:04.722] [SpringApplicationShutdownHook] INFO c.b.d.d.d.DefaultDataSourceDestroyer : dynamic-datasource close the datasource named [slave] success,
[[TraceId: ]2025-07-05 12:27:04.722] [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource : master - Shutdown initiated...
[[TraceId: ]2025-07-05 12:27:04.729] [SpringApplicationShutdownHook] INFO com.zaxxer.hikari.HikariDataSource : master - Shutdown completed.
[[TraceId: ]2025-07-05 12:27:04.729] [SpringApplicationShutdownHook] INFO c.b.d.d.d.DefaultDataSourceDestroyer : dynamic-datasource close the datasource named [master] success,
[[TraceId: ]2025-07-05 12:27:04.729] [SpringApplicationShutdownHook] INFO c.b.d.d.DynamicRoutingDataSource : dynamic-datasource all closed success,bye
[[TraceId: ]2025-07-05 12:27:06.855] [background-preinit] INFO o.h.validator.internal.util.Version : HV000001: Hibernate Validator 9.0.0.Final
[[TraceId: ]2025-07-05 12:27:06.891] [main] INFO o.leocoder.thin.web.CoderApplication : Starting CoderApplication using Java 17.0.13 with PID 87235 (/Users/leocoder/leocoder/develop/templates/coder-common-thin/coder-common-thin-backend/coder-common-thin-web/target/classes started by leocoder in /Users/leocoder/leocoder/develop/templates/coder-common-thin/coder-common-thin-backend)
[[TraceId: ]2025-07-05 12:27:06.892] [main] INFO o.leocoder.thin.web.CoderApplication : The following 1 profile is active: "dev"
[[TraceId: ]2025-07-05 12:27:07.433] [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate : Multiple Spring Data modules found, entering strict repository configuration mode
[[TraceId: ]2025-07-05 12:27:07.434] [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate : Bootstrapping Spring Data Redis repositories in DEFAULT mode.
[[TraceId: ]2025-07-05 12:27:07.445] [main] INFO o.s.d.r.c.RepositoryConfigurationDelegate : Finished Spring Data repository scanning in 2 ms. Found 0 Redis repository interfaces.
[[TraceId: ]2025-07-05 12:27:07.495] [main] WARN o.m.s.mapper.ClassPathMapperScanner : No MyBatis mapper was found in '[org.leocoder.thin.web]' package. Please check your configuration.
[[TraceId: ]2025-07-05 12:27:07.676] [main] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker : Bean 'cn.dev33.satoken.aop.SaAopPointcutAdvisorBeanRegister' of type [cn.dev33.satoken.aop.SaAopPointcutAdvisorBeanRegister$$SpringCGLIB$$0] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE.
[[TraceId: ]2025-07-05 12:27:07.685] [main] WARN o.s.c.s.PostProcessorRegistrationDelegate$BeanPostProcessorChecker : Bean 'saAroundAnnotationHandlePointcutAdvisor' of type [cn.dev33.satoken.aop.SaAroundAnnotationPointcutAdvisor] is not eligible for getting processed by all BeanPostProcessors (for example: not eligible for auto-proxying). Is this bean getting eagerly injected/applied to a currently created BeanPostProcessor [meterRegistryPostProcessor]? Check the corresponding BeanPostProcessor declaration and its dependencies/advisors. If this bean does not have to be post-processed, declare it with ROLE_INFRASTRUCTURE.
[[TraceId: ]2025-07-05 12:27:07.925] [main] INFO o.s.b.w.e.tomcat.TomcatWebServer : Tomcat initialized with port 18099 (http)
[[TraceId: ]2025-07-05 12:27:07.935] [main] INFO o.a.coyote.http11.Http11NioProtocol : Initializing ProtocolHandler ["http-nio-18099"]
[[TraceId: ]2025-07-05 12:27:07.936] [main] INFO o.a.catalina.core.StandardService : Starting service [Tomcat]
[[TraceId: ]2025-07-05 12:27:07.937] [main] INFO o.a.catalina.core.StandardEngine : Starting Servlet engine: [Apache Tomcat/10.1.41]
[[TraceId: ]2025-07-05 12:27:07.969] [main] INFO o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring embedded WebApplicationContext
[[TraceId: ]2025-07-05 12:27:07.970] [main] INFO o.s.b.w.s.c.ServletWebServerApplicationContext : Root WebApplicationContext: initialization completed in 1057 ms
[[TraceId: ]2025-07-05 12:27:08.525] [main] INFO c.b.d.d.DynamicRoutingDataSource : dynamic-datasource detect P6SPY plugin and enabled it
[[TraceId: ]2025-07-05 12:27:08.532] [main] INFO com.zaxxer.hikari.HikariDataSource : master - Starting...
[[TraceId: ]2025-07-05 12:27:08.641] [main] INFO com.zaxxer.hikari.pool.HikariPool : master - Added connection com.mysql.cj.jdbc.ConnectionImpl@6a4f7c17
[[TraceId: ]2025-07-05 12:27:08.642] [main] INFO com.zaxxer.hikari.HikariDataSource : master - Start completed.
[[TraceId: ]2025-07-05 12:27:08.643] [main] INFO c.b.d.d.DynamicRoutingDataSource : dynamic-datasource - add a datasource named [slave] success
[[TraceId: ]2025-07-05 12:27:08.643] [main] INFO c.b.d.d.DynamicRoutingDataSource : dynamic-datasource - add a datasource named [master] success
[[TraceId: ]2025-07-05 12:27:08.644] [main] INFO c.b.d.d.DynamicRoutingDataSource : dynamic-datasource initial loaded [2] datasource,primary datasource named [master]
[[TraceId: ]2025-07-05 12:27:08.713] [main] INFO c.b.m.e.s.MybatisPlusApplicationContextAware : Register ApplicationContext instances org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext@4c432866
[[TraceId: ]2025-07-05 12:27:09.079] [main] INFO o.s.b.a.e.web.EndpointLinksResolver : Exposing 1 endpoint beneath base path '/actuator'
[[TraceId: ]2025-07-05 12:27:09.128] [main] INFO o.a.coyote.http11.Http11NioProtocol : Starting ProtocolHandler ["http-nio-18099"]
[[TraceId: ]2025-07-05 12:27:09.145] [main] INFO o.s.b.w.e.tomcat.TomcatWebServer : Tomcat started on port 18099 (http) with context path '/'
[[TraceId: ]2025-07-05 12:27:09.160] [main] INFO o.leocoder.thin.web.CoderApplication : Started CoderApplication in 2.62 seconds (process running for 3.133)
[[TraceId: ]2025-07-05 12:27:09.164] [main] INFO o.leocoder.thin.web.CoderApplication :
Coder-Admin管理平台starter =>ヽ(✿゚▽゚)
超级无敌宇宙最强最帅最可爱系统启动成功(๑‾ ꇴ ‾๑)
____ __. .__ _____ ________ _____ .___ _______
| |/ _|____ |__| / _ \ \______ \ / \ | |\ \
| < / _ \| | ______ / /_\ \ | | \ / \ / \| |/ | \
| | ( <_> ) | /_____/ / | \| ` \/ Y \ / | \
|____|__ \____/|__| \____|__ /_______ /\____|__ /___\____|__ /
\/ \/ \/ \/ \/
CoderApplication[18088] => 闪亮登场(๑•̀ㅂ•́) ✧
[[TraceId: ]2025-07-05 12:27:09.600] [RMI TCP Connection(1)-192.168.86.9] INFO o.a.c.c.C.[Tomcat].[localhost].[/] : Initializing Spring DispatcherServlet 'dispatcherServlet'
[[TraceId: ]2025-07-05 12:27:09.600] [RMI TCP Connection(1)-192.168.86.9] INFO o.s.web.servlet.DispatcherServlet : Initializing Servlet 'dispatcherServlet'
[[TraceId: ]2025-07-05 12:27:09.601] [RMI TCP Connection(1)-192.168.86.9] INFO o.s.web.servlet.DispatcherServlet : Completed initialization in 1 ms

273
pom.xml Normal file
View File

@ -0,0 +1,273 @@
<?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>
<groupId>org.leocoder.thin</groupId>
<artifactId>coder-common-thin-backend</artifactId>
<version>${revision}</version>
<!-- 父工程标识 -->
<name>coder-common-thin-backend</name>
<packaging>pom</packaging>
<description>父模块</description>
<modules>
<module>coder-common-thin-web</module>
<module>coder-common-thin-mybatisplus</module>
<module>coder-common-thin-modules</module>
<module>coder-common-thin-plugins</module>
<module>coder-common-thin-model</module>
<module>coder-common-thin-common</module>
</modules>
<!-- 打包执行 clean + package -->
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<maven.compiler.source>17</maven.compiler.source>
<maven.compiler.target>17</maven.compiler.target>
<revision>1.0.0</revision>
<java.version>17</java.version>
<springboot.version>3.5.0</springboot.version>
<lombok.version>1.18.38</lombok.version>
<mysql.version>9.3.0</mysql.version>
<mybatis.version>3.0.4</mybatis.version>
<mybatisplus.version>3.5.12</mybatisplus.version>
<p6spy.version>3.9.1</p6spy.version>
<dynamic.version>4.3.1</dynamic.version>
<satoken.version>1.43.0</satoken.version>
<hutool.version>5.8.38</hutool.version>
<fastjson2.version>2.0.57</fastjson2.version>
<lang3.version>3.17.0</lang3.version>
<oshi.version>6.8.1</oshi.version>
<guava.version>33.4.8-jre</guava.version>
<ip2region.version>3.4.5</ip2region.version>
<easyexcel.version>4.0.3</easyexcel.version>
<UserAgentUtils.version>1.21</UserAgentUtils.version>
<pool2.version>2.12.1</pool2.version>
<validator.version>9.0.0.Final</validator.version>
<jodaTime.version>2.14.0</jodaTime.version>
<captcha.version>1.6.2</captcha.version>
<freemarker.version>2.3.34</freemarker.version>
<!-- 插件版本 -->
<maven-compiler-plugin.verison>3.14.0</maven-compiler-plugin.verison>
<maven-resources-plugin.version>3.3.1</maven-resources-plugin.version>
</properties>
<dependencyManagement>
<dependencies>
<!-- Springframework -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${springboot.version}</version>
<scope>import</scope>
<type>pom</type>
</dependency>
<!-- Lombok -->
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<!-- MySQL -->
<dependency>
<groupId>com.mysql</groupId>
<artifactId>mysql-connector-j</artifactId>
<version>${mysql.version}</version>
</dependency>
<!-- MyBatis -->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis-spring</artifactId>
<version>${mybatis.version}</version>
</dependency>
<!-- MyBatisPlus -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-spring-boot3-starter</artifactId>
<version>${mybatisplus.version}</version>
</dependency>
<!-- MyBatisPlus PaginationInnerInterceptor分离插件 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>mybatis-plus-jsqlparser</artifactId>
<version>${mybatisplus.version}</version>
</dependency>
<!-- P6spy SQL打印 -->
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
<version>${p6spy.version}</version>
</dependency>
<!-- 动态数据源 -->
<dependency>
<groupId>com.baomidou</groupId>
<artifactId>dynamic-datasource-spring-boot3-starter</artifactId>
<version>${dynamic.version}</version>
</dependency>
<!-- hutool工具类 -->
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>${hutool.version}</version>
</dependency>
<!-- 阿里JSON解析FastjsonAddressUtil、Xss等工具类使用 -->
<dependency>
<groupId>com.alibaba.fastjson2</groupId>
<artifactId>fastjson2</artifactId>
<version>${fastjson2.version}</version>
</dependency>
<!-- 判断是否为空工具类 -->
<!-- StringUtils.isNotBlank()[true] 和 StringUtils.isBlank()[true] -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-lang3</artifactId>
<version>${lang3.version}</version>
</dependency>
<!-- 参数校验 @NotNull等 -->
<dependency>
<groupId>org.hibernate.validator</groupId>
<artifactId>hibernate-validator</artifactId>
<version>${validator.version}</version>
</dependency>
<!-- IpUtils工具类使用joda-time日期工具类日期处理可以做到日期的相加和减的功能, coderLogAspect日志切面用到这个 -->
<dependency>
<groupId>joda-time</groupId>
<artifactId>joda-time</artifactId>
<version>${jodaTime.version}</version>
</dependency>
<!-- 解析客户端操作系统、浏览器等 -->
<dependency>
<groupId>eu.bitwalker</groupId>
<artifactId>UserAgentUtils</artifactId>
<version>${UserAgentUtils.version}</version>
</dependency>
<!-- 获取服务器信息 -->
<!-- oshi-core插件是开源的获取系统信息的工具通过该工具可以方便的帮助我们获取丰富的系统信息包括操作系统信息、服务器信息、JVM信息、磁盘信息等等。-->
<dependency>
<groupId>com.github.oshi</groupId>
<artifactId>oshi-core</artifactId>
<version>${oshi.version}</version>
</dependency>
<!-- Google Guava工具类内涵StringUtils新增方法等 -->
<!-- Guava含有令牌桶和漏桶但是没有客户端IP这些维度 -->
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>${guava.version}</version>
</dependency>
<!-- 根据Ip获取地理位置 -->
<dependency>
<groupId>net.dreamlu</groupId>
<artifactId>mica-ip2region</artifactId>
<version>${ip2region.version}</version>
</dependency>
<!-- Easyexcel -->
<dependency>
<groupId>com.alibaba</groupId>
<artifactId>easyexcel</artifactId>
<version>${easyexcel.version}</version>
</dependency>
<!-- Sa-Token 权限认证 starter -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-boot3-starter</artifactId>
<version>${satoken.version}</version>
</dependency>
<!-- Sa-Token 整合 Redis (使用 jackson 序列化方式) -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-redis-jackson</artifactId>
<version>${satoken.version}</version>
</dependency>
<!-- 注意:无论使用哪种序列化方式,你都必须为项目提供一个 Redis 实例化方案 -->
<!-- 提供Redis连接池 -->
<dependency>
<groupId>org.apache.commons</groupId>
<artifactId>commons-pool2</artifactId>
<version>${pool2.version}</version>
</dependency>
<!-- Sa-Token 整合 SpringAOP 实现注解鉴权 -->
<dependency>
<groupId>cn.dev33</groupId>
<artifactId>sa-token-spring-aop</artifactId>
<version>${satoken.version}</version>
</dependency>
<!-- 验证码-->
<dependency>
<groupId>com.github.whvcse</groupId>
<artifactId>easy-captcha</artifactId>
<version>${captcha.version}</version>
</dependency>
<!-- Freemarker -->
<dependency>
<groupId>org.freemarker</groupId>
<artifactId>freemarker</artifactId>
<version>${freemarker.version}</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<!-- 统一插件管理 -->
<pluginManagement>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<version>${springboot.version}</version>
<configuration>
<excludes>
<exclude>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
</exclude>
</excludes>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-compiler-plugin</artifactId>
<version>${maven-compiler-plugin.verison}</version>
<configuration>
<parameters>true</parameters>
<source>${java.version}</source>
<target>${java.version}</target>
<annotationProcessorPaths>
<path>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</path>
</annotationProcessorPaths>
</configuration>
</plugin>
<plugin>
<groupId>org.apache.maven.plugins</groupId>
<artifactId>maven-resources-plugin</artifactId>
<version>${maven-resources-plugin.version}</version>
</plugin>
</plugins>
</pluginManagement>
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
<resource>
<directory>src/main/resources</directory>
<includes>
<include>**/*</include>
</includes>
</resource>
</resources>
</build>
</project>