Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
daydreamdayday
xfg-frame-archetype-lite
提交
96368059
xfg-frame-archetype-lite
项目概览
daydreamdayday
/
xfg-frame-archetype-lite
与 Fork 源项目一致
Fork自
KnowledgePlanet / road-map / xfg-frame-archetype-lite
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
xfg-frame-archetype-lite
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
96368059
编写于
11月 04, 2023
作者:
小傅哥
⛹
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
小傅哥,feat:maven 工程脚手架
上级
475e4845
变更
57
隐藏空白更改
内联
并排
Showing
57 changed file
with
1794 addition
and
0 deletion
+1794
-0
scaffold-lite/.gitignore
scaffold-lite/.gitignore
+38
-0
scaffold-lite/README.md
scaffold-lite/README.md
+142
-0
scaffold-lite/pom.xml
scaffold-lite/pom.xml
+54
-0
scaffold-lite/src/main/resources/META-INF/maven/archetype-metadata.xml
.../src/main/resources/META-INF/maven/archetype-metadata.xml
+105
-0
scaffold-lite/src/main/resources/archetype-resources/README.md
...old-lite/src/main/resources/archetype-resources/README.md
+2
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/Dockerfile
...ces/archetype-resources/__rootArtifactId__-app/Dockerfile
+18
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/build.sh
...urces/archetype-resources/__rootArtifactId__-app/build.sh
+9
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/pom.xml
...ources/archetype-resources/__rootArtifactId__-app/pom.xml
+138
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/java/Application.java
...ces/__rootArtifactId__-app/src/main/java/Application.java
+18
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/java/config/GuavaConfig.java
...ootArtifactId__-app/src/main/java/config/GuavaConfig.java
+23
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/java/config/ThreadPoolConfig.java
...tifactId__-app/src/main/java/config/ThreadPoolConfig.java
+53
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/java/config/ThreadPoolConfigProperties.java
...-app/src/main/java/config/ThreadPoolConfigProperties.java
+29
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/java/config/package-info.java
...otArtifactId__-app/src/main/java/config/package-info.java
+9
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/java/package-info.java
...es/__rootArtifactId__-app/src/main/java/package-info.java
+7
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/application-dev.yml
...otArtifactId__-app/src/main/resources/application-dev.yml
+44
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/application-prod.yml
...tArtifactId__-app/src/main/resources/application-prod.yml
+44
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/application-test.yml
...tArtifactId__-app/src/main/resources/application-test.yml
+44
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/application.yml
...__rootArtifactId__-app/src/main/resources/application.yml
+8
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/logback-spring.xml
...ootArtifactId__-app/src/main/resources/logback-spring.xml
+116
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/mybatis/config/mybatis-config.xml
...-app/src/main/resources/mybatis/config/mybatis-config.xml
+12
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/mybatis/mapper/frame_case_mapper.xml
...p/src/main/resources/mybatis/mapper/frame_case_mapper.xml
+28
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/test/java/test/ApiTest.java
...es/__rootArtifactId__-app/src/test/java/test/ApiTest.java
+22
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/pom.xml
...ces/archetype-resources/__rootArtifactId__-domain/pom.xml
+75
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/xxx/adapter/package-info.java
...domain/src/main/java/domain/xxx/adapter/package-info.java
+7
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/xxx/model/aggregate/package-info.java
...rc/main/java/domain/xxx/model/aggregate/package-info.java
+10
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/xxx/model/entity/package-info.java
...n/src/main/java/domain/xxx/model/entity/package-info.java
+10
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/xxx/model/valobj/package-info.java
...n/src/main/java/domain/xxx/model/valobj/package-info.java
+9
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/xxx/repository/package-info.java
...ain/src/main/java/domain/xxx/repository/package-info.java
+8
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/xxx/service/package-info.java
...domain/src/main/java/domain/xxx/service/package-info.java
+4
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/yyy/model/aggregate/package-info.java
...rc/main/java/domain/yyy/model/aggregate/package-info.java
+10
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/yyy/model/entity/package-info.java
...n/src/main/java/domain/yyy/model/entity/package-info.java
+10
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/yyy/model/valobj/package-info.java
...n/src/main/java/domain/yyy/model/valobj/package-info.java
+9
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/yyy/repository/package-info.java
...ain/src/main/java/domain/yyy/repository/package-info.java
+8
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/yyy/service/package-info.java
...domain/src/main/java/domain/yyy/service/package-info.java
+4
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/pom.xml
...etype-resources/__rootArtifactId__-infrastructure/pom.xml
+46
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/src/main/java/infrastructure/gateway/adapter/package-info.java
...ain/java/infrastructure/gateway/adapter/package-info.java
+4
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/src/main/java/infrastructure/gateway/api/package-info.java
...rc/main/java/infrastructure/gateway/api/package-info.java
+4
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/src/main/java/infrastructure/gateway/dto/package-info.java
...rc/main/java/infrastructure/gateway/dto/package-info.java
+4
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/src/main/java/infrastructure/persistent/dao/package-info.java
...main/java/infrastructure/persistent/dao/package-info.java
+7
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/src/main/java/infrastructure/persistent/po/package-info.java
.../main/java/infrastructure/persistent/po/package-info.java
+7
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/src/main/java/infrastructure/persistent/repository/package-info.java
...va/infrastructure/persistent/repository/package-info.java
+7
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-trigger/pom.xml
...es/archetype-resources/__rootArtifactId__-trigger/pom.xml
+59
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-trigger/src/main/java/trigger/http/package-info.java
...Id__-trigger/src/main/java/trigger/http/package-info.java
+7
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-trigger/src/main/java/trigger/job/package-info.java
...tId__-trigger/src/main/java/trigger/job/package-info.java
+7
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-trigger/src/main/java/trigger/listener/package-info.java
...-trigger/src/main/java/trigger/listener/package-info.java
+8
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-types/pom.xml
...rces/archetype-resources/__rootArtifactId__-types/pom.xml
+53
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-types/src/main/java/types/common/Constants.java
...ifactId__-types/src/main/java/types/common/Constants.java
+10
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-types/src/main/java/types/enums/ResponseCode.java
...actId__-types/src/main/java/types/enums/ResponseCode.java
+23
-0
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-types/src/main/java/types/exception/AppException.java
...d__-types/src/main/java/types/exception/AppException.java
+49
-0
scaffold-lite/src/main/resources/archetype-resources/docs/dev-ops/app/docker-compose-1.0.yml
...chetype-resources/docs/dev-ops/app/docker-compose-1.0.yml
+21
-0
scaffold-lite/src/main/resources/archetype-resources/docs/dev-ops/app/start.sh
...n/resources/archetype-resources/docs/dev-ops/app/start.sh
+20
-0
scaffold-lite/src/main/resources/archetype-resources/docs/dev-ops/app/stop.sh
...in/resources/archetype-resources/docs/dev-ops/app/stop.sh
+1
-0
scaffold-lite/src/main/resources/archetype-resources/docs/dev-ops/mysql/docker-compose.yml
...archetype-resources/docs/dev-ops/mysql/docker-compose.yml
+29
-0
scaffold-lite/src/main/resources/archetype-resources/docs/dev-ops/mysql/sql/xfg-frame-archetype.sql
...-resources/docs/dev-ops/mysql/sql/xfg-frame-archetype.sql
+108
-0
scaffold-lite/src/main/resources/archetype-resources/pom.xml
scaffold-lite/src/main/resources/archetype-resources/pom.xml
+183
-0
scaffold-lite/src/test/resources/projects/basic/archetype.properties
...te/src/test/resources/projects/basic/archetype.properties
+10
-0
scaffold-lite/src/test/resources/projects/basic/goal.txt
scaffold-lite/src/test/resources/projects/basic/goal.txt
+0
-0
未找到文件。
scaffold-lite/.gitignore
0 → 100644
浏览文件 @
96368059
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
\ No newline at end of file
scaffold-lite/README.md
0 → 100644
浏览文件 @
96368059
# xfg-frame-archetype - DDD 脚手架
## 1. 脚手架安装使用
### 1. 生成
```
shell
mvn clean
install
```
-
在 IntelliJ IDEA 执行
`mvn clean install`
这样会把脚手架安装到本地仓库中
### 2. 配置
```
shell
/Users/fuzhengwei/Documents/develop/apache-maven-3.8.6/repository
```
-
把你的 Maven 路径的 repository 配置到 IntelliJ IDEA 创建 Maven 工程的路径下。
## 2. 工程结构介绍
```
java
.
├──
README
.
md
├──
docs
│
└──
dev
-
ops
│
├──
app
│
│
└──
docker
-
compose
-
1.0
.
yml
│
└──
mysql
│
├──
docker
-
compose
.
yml
│
└──
sql
│
└──
xfg
-
frame
-
archetype
.
sql
├──
pom
.
xml
├──
xfg
-
ddd
-
app
│
├──
Dockerfile
│
├──
build
.
sh
│
├──
pom
.
xml
│
├──
src
│
│
├──
main
│
│
│
├──
java
│
│
│
│
└──
cn
│
│
│
│
└──
bugstack
│
│
│
│
├──
Application
.
java
│
│
│
│
├──
config
│
│
│
│
│
├──
GuavaConfig
.
java
│
│
│
│
│
├──
ThreadPoolConfig
.
java
│
│
│
│
│
├──
ThreadPoolConfigProperties
.
java
│
│
│
│
│
└──
package
-
info.java
│
│
│
│
└──
package
-
info.java
│
│
│
└──
resources
│
│
│
├──
application
-
dev
.
yml
│
│
│
├──
application
-
prod
.
yml
│
│
│
├──
application
-
test
.
yml
│
│
│
├──
application
.
yml
│
│
│
├──
logback
-
spring
.
xml
│
│
│
└──
mybatis
│
│
│
├──
config
│
│
│
│
└──
mybatis
-
config
.
xml
│
│
│
└──
mapper
│
│
│
└──
frame_case_mapper
.
xml
│
│
└──
test
│
│
└──
java
│
│
└──
cn
│
│
└──
bugstack
│
│
└──
test
│
│
└──
ApiTest
.
java
│
├──
start
.
sh
│
└──
stop
.
sh
├──
xfg
-
ddd
-
domain
│
├──
pom
.
xml
│
└──
src
│
└──
main
│
└──
java
│
└──
cn
│
└──
bugstack
│
└──
domain
│
├──
xxx
│
│
├──
adapter
│
│
│
└──
package
-
info.java
│
│
├──
model
│
│
│
├──
aggregate
│
│
│
│
└──
package
-
info.java
│
│
│
├──
entity
│
│
│
│
└──
package
-
info.java
│
│
│
└──
valobj
│
│
│
└──
package
-
info.java
│
│
├──
repository
│
│
│
└──
package
-
info.java
│
│
└──
service
│
│
└──
package
-
info.java
│
└──
yyy
│
├──
model
│
│
├──
aggregate
│
│
│
└──
package
-
info.java
│
│
├──
entity
│
│
│
└──
package
-
info.java
│
│
└──
valobj
│
│
└──
package
-
info.java
│
├──
repository
│
│
└──
package
-
info.java
│
└──
service
│
└──
package
-
info.java
├──
xfg
-
ddd
-
infrastructure
│
├──
pom
.
xml
│
└──
src
│
└──
main
│
└──
java
│
└──
cn
│
└──
bugstack
│
└──
infrastructure
│
├──
gateway
│
│
├──
adapter
│
│
│
└──
package
-
info.java
│
│
├──
api
│
│
│
└──
package
-
info.java
│
│
└──
dto
│
│
└──
package
-
info.java
│
└──
persistent
│
├──
dao
│
│
└──
package
-
info.java
│
├──
po
│
│
└──
package
-
info.java
│
└──
repository
│
└──
package
-
info.java
├──
xfg
-
ddd
-
trigger
│
├──
pom
.
xml
│
└──
src
│
└──
main
│
└──
java
│
└──
cn
│
└──
bugstack
│
└──
trigger
│
├──
http
│
│
└──
package
-
info.java
│
├──
job
│
│
└──
package
-
info.java
│
└──
listener
│
└──
package
-
info.java
└──
xfg
-
ddd
-
types
```
scaffold-lite/pom.xml
0 → 100644
浏览文件 @
96368059
<?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>
cn.bugstack
</groupId>
<artifactId>
scaffold-lite
</artifactId>
<version>
1.0
</version>
<packaging>
maven-archetype
</packaging>
<name>
xfg-frame-archetype
</name>
<build>
<extensions>
<extension>
<groupId>
org.apache.maven.archetype
</groupId>
<artifactId>
archetype-packaging
</artifactId>
<version>
3.2.0
</version>
</extension>
</extensions>
<pluginManagement>
<plugins>
<plugin>
<artifactId>
maven-archetype-plugin
</artifactId>
<version>
3.2.0
</version>
</plugin>
</plugins>
</pluginManagement>
</build>
<description>
Parent pom providing dependency and plugin management for applications built with Maven
</description>
<url>
https://spring.io/projects/spring-boot/xfg-frame-archetype
</url>
<developers>
<developer>
<name>
fuzhengwei
</name>
<email>
184172133@qq.com
</email>
<organization>
fuzhengwei
</organization>
<organizationUrl>
https://github.com/fuzhengwei
</organizationUrl>
</developer>
</developers>
<licenses>
<license>
<name>
Apache License, Version 2.0
</name>
<url>
https://www.apache.org/licenses/LICENSE-2.0
</url>
</license>
</licenses>
<scm>
<url>
https://github.com/spring-projects/spring-boot/xfg-frame-archetype
</url>
</scm>
</project>
scaffold-lite/src/main/resources/META-INF/maven/archetype-metadata.xml
0 → 100644
浏览文件 @
96368059
<?xml version="1.0" encoding="UTF-8"?>
<archetype-descriptor
xsi:schemaLocation=
"https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0 http://maven.apache.org/xsd/archetype-descriptor-1.1.0.xsd"
name=
"xfg-frame-archetype"
xmlns=
"https://maven.apache.org/plugins/maven-archetype-plugin/archetype-descriptor/1.1.0"
xmlns:xsi=
"http://www.w3.org/2001/XMLSchema-instance"
>
<fileSets>
<fileSet
filtered=
"true"
encoding=
"UTF-8"
>
<directory>
docs/dev-ops
</directory>
<includes>
<include>
**/*.yml
</include>
</includes>
</fileSet>
<fileSet
filtered=
"true"
encoding=
"UTF-8"
>
<directory>
docs/dev-ops
</directory>
<includes>
<include>
**/*.sql
</include>
<include>
**/*.yml
</include>
<include>
**/*.sh
</include>
</includes>
</fileSet>
<fileSet
encoding=
"UTF-8"
>
<directory/>
<includes>
<include>
README.md
</include>
<include>
__gitignore__
</include>
</includes>
</fileSet>
</fileSets>
<modules>
<module
id=
"${rootArtifactId}-app"
dir=
"__rootArtifactId__-app"
name=
"${rootArtifactId}-app"
>
<fileSets>
<fileSet
filtered=
"true"
packaged=
"true"
encoding=
"UTF-8"
>
<directory>
src/main/java
</directory>
<includes>
<include>
**/*.java
</include>
</includes>
</fileSet>
<fileSet
filtered=
"true"
encoding=
"UTF-8"
>
<directory>
src/main/resources
</directory>
<includes>
<include>
**/*.xml
</include>
<include>
**/*.yml
</include>
</includes>
</fileSet>
<fileSet
filtered=
"true"
packaged=
"true"
encoding=
"UTF-8"
>
<directory>
src/test/java
</directory>
<includes>
<include>
**/*.java
</include>
</includes>
</fileSet>
<fileSet
filtered=
"true"
encoding=
"UTF-8"
>
<directory/>
<includes>
<include>
Dockerfile
</include>
<include>
*.sh
</include>
</includes>
</fileSet>
</fileSets>
</module>
<module
id=
"${rootArtifactId}-domain"
dir=
"__rootArtifactId__-domain"
name=
"${rootArtifactId}-domain"
>
<fileSets>
<fileSet
filtered=
"true"
packaged=
"true"
encoding=
"UTF-8"
>
<directory>
src/main/java
</directory>
<includes>
<include>
**/*.java
</include>
</includes>
</fileSet>
</fileSets>
</module>
<module
id=
"${rootArtifactId}-infrastructure"
dir=
"__rootArtifactId__-infrastructure"
name=
"${rootArtifactId}-infrastructure"
>
<fileSets>
<fileSet
filtered=
"true"
packaged=
"true"
encoding=
"UTF-8"
>
<directory>
src/main/java
</directory>
<includes>
<include>
**/*.java
</include>
</includes>
</fileSet>
</fileSets>
</module>
<module
id=
"${rootArtifactId}-trigger"
dir=
"__rootArtifactId__-trigger"
name=
"${rootArtifactId}-trigger"
>
<fileSets>
<fileSet
filtered=
"true"
packaged=
"true"
encoding=
"UTF-8"
>
<directory>
src/main/java
</directory>
<includes>
<include>
**/*.java
</include>
</includes>
</fileSet>
</fileSets>
</module>
<module
id=
"${rootArtifactId}-types"
dir=
"__rootArtifactId__-types"
name=
"${rootArtifactId}-types"
>
<fileSets>
<fileSet
filtered=
"true"
packaged=
"true"
encoding=
"UTF-8"
>
<directory>
src/main/java
</directory>
<includes>
<include>
**/*.java
</include>
</includes>
</fileSet>
</fileSets>
</module>
</modules>
</archetype-descriptor>
scaffold-lite/src/main/resources/archetype-resources/README.md
0 → 100644
浏览文件 @
96368059
# xfg-frame-archetype - DDD 脚手架
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/Dockerfile
0 → 100644
浏览文件 @
96368059
# 基础镜像
FROM
openjdk:8-jre-slim
# 作者
MAINTAINER
xiaofuge
# 配置
ENV
PARAMS=""
# 时区
ENV
TZ=PRC
RUN
ln
-snf
/usr/share/zoneinfo/
$TZ
/etc/localtime
&&
echo
$TZ
>
/etc/timezone
# 添加应用
ADD
target/${artifactId}-app.jar /${artifactId}-app.jar
## 在镜像运行为容器后执行的命令
ENTRYPOINT
["sh","-c","java -jar $JAVA_OPTS /${artifactId}-app.jar $PARAMS"]
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/build.sh
0 → 100644
浏览文件 @
96368059
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
# 普通镜像构建,随系统版本构建 amd/arm
docker build
-t
system/
${
artifactId
}
:
${
version
}
-f
./Dockerfile
.
# 兼容 amd、arm 构建镜像
# docker buildx build --load --platform liunx/amd64,linux/arm64 -t xiaofuge/xfg-frame-archetype-app:1.0 -f ./Dockerfile . --push
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/pom.xml
0 → 100644
浏览文件 @
96368059
<?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>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}
</artifactId>
<version>
${version}
</version>
</parent>
<artifactId>
${artifactId}
</artifactId>
<packaging>
jar
</packaging>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-test
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
org.apache.tomcat.embed
</groupId>
<artifactId>
tomcat-embed-core
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-configuration-processor
</artifactId>
</dependency>
<dependency>
<groupId>
org.mybatis.spring.boot
</groupId>
<artifactId>
mybatis-spring-boot-starter
</artifactId>
</dependency>
<!-- # 多数据源路由配置
# mysql 5.x driver-class-name: com.mysql.jdbc.Driver mysql-connector-java 5.1.34
# mysql 8.x driver-class-name: com.mysql.cj.jdbc.Driver mysql-connector-java 8.0.22-->
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
<dependency>
<groupId>
com.google.guava
</groupId>
<artifactId>
guava
</artifactId>
</dependency>
<dependency>
<groupId>
junit
</groupId>
<artifactId>
junit
</artifactId>
<scope>
test
</scope>
</dependency>
<dependency>
<groupId>
io.jsonwebtoken
</groupId>
<artifactId>
jjwt
</artifactId>
</dependency>
<dependency>
<groupId>
com.auth0
</groupId>
<artifactId>
java-jwt
</artifactId>
</dependency>
<dependency>
<groupId>
commons-codec
</groupId>
<artifactId>
commons-codec
</artifactId>
</dependency>
<dependency>
<groupId>
com.squareup.retrofit2
</groupId>
<artifactId>
converter-gson
</artifactId>
<version>
2.9.0
</version>
</dependency>
<!-- 工程模块;启动依赖 trigger->domain, infrastructure-->
<dependency>
<groupId>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}-trigger
</artifactId>
</dependency>
<dependency>
<groupId>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}-infrastructure
</artifactId>
</dependency>
</dependencies>
<build>
<finalName>
${rootArtifactId}-app
</finalName>
<resources>
<resource>
<directory>
src/main/resources
</directory>
<filtering>
true
</filtering>
<includes>
<include>
**/**
</include>
</includes>
</resource>
</resources>
<testResources>
<testResource>
<directory>
src/test/resources
</directory>
<filtering>
true
</filtering>
<includes>
<include>
**/**
</include>
</includes>
</testResource>
</testResources>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-surefire-plugin
</artifactId>
<version>
2.6
</version>
<configuration>
<skipTests>
true
</skipTests>
<testFailureIgnore>
false
</testFailureIgnore>
<includes>
<include>
**/*Test.java
</include>
</includes>
</configuration>
</plugin>
<plugin>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-maven-plugin
</artifactId>
<configuration>
<mainClass>
${groupId}.Application
</mainClass>
<layout>
JAR
</layout>
</configuration>
</plugin>
</plugins>
</build>
</project>
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/java/Application.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
};
import
org.springframework.beans.factory.annotation.Configurable
;
import
org.springframework.boot.SpringApplication
;
import
org.springframework.boot.autoconfigure.SpringBootApplication
;
@SpringBootApplication
@Configurable
public
class
Application
{
public
static
void
main
(
String
[]
args
){
SpringApplication
.
run
(
Application
.
class
);
}
}
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/java/config/GuavaConfig.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
}.
config
;
import
com.google.common.cache.Cache
;
import
com.google.common.cache.CacheBuilder
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
java.util.concurrent.TimeUnit
;
@Configuration
public
class
GuavaConfig
{
@Bean
(
name
=
"cache"
)
public
Cache
<
String
,
String
>
cache
()
{
return
CacheBuilder
.
newBuilder
()
.
expireAfterWrite
(
3
,
TimeUnit
.
SECONDS
)
.
build
();
}
}
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/java/config/ThreadPoolConfig.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
}.
config
;
import
lombok.extern.slf4j.Slf4j
;
import
org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean
;
import
org.springframework.boot.context.properties.EnableConfigurationProperties
;
import
org.springframework.context.annotation.Bean
;
import
org.springframework.context.annotation.Configuration
;
import
org.springframework.scheduling.annotation.EnableAsync
;
import
java.util.concurrent.*
;
@Slf4j
@EnableAsync
@Configuration
@EnableConfigurationProperties
(
ThreadPoolConfigProperties
.
class
)
public
class
ThreadPoolConfig
{
@Bean
@ConditionalOnMissingBean
(
ThreadPoolExecutor
.
class
)
public
ThreadPoolExecutor
threadPoolExecutor
(
ThreadPoolConfigProperties
properties
)
throws
ClassNotFoundException
,
InstantiationException
,
IllegalAccessException
{
// 实例化策略
RejectedExecutionHandler
handler
;
switch
(
properties
.
getPolicy
()){
case
"AbortPolicy"
:
handler
=
new
ThreadPoolExecutor
.
AbortPolicy
();
break
;
case
"DiscardPolicy"
:
handler
=
new
ThreadPoolExecutor
.
DiscardPolicy
();
break
;
case
"DiscardOldestPolicy"
:
handler
=
new
ThreadPoolExecutor
.
DiscardOldestPolicy
();
break
;
case
"CallerRunsPolicy"
:
handler
=
new
ThreadPoolExecutor
.
CallerRunsPolicy
();
break
;
default
:
handler
=
new
ThreadPoolExecutor
.
AbortPolicy
();
break
;
}
// 创建线程池
return
new
ThreadPoolExecutor
(
properties
.
getCorePoolSize
(),
properties
.
getMaxPoolSize
(),
properties
.
getKeepAliveTime
(),
TimeUnit
.
SECONDS
,
new
LinkedBlockingQueue
<>(
properties
.
getBlockQueueSize
()),
Executors
.
defaultThreadFactory
(),
handler
);
}
}
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/java/config/ThreadPoolConfigProperties.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
}.
config
;
import
lombok.Data
;
import
org.springframework.boot.context.properties.ConfigurationProperties
;
@Data
@ConfigurationProperties
(
prefix
=
"thread.pool.executor.config"
,
ignoreInvalidFields
=
true
)
public
class
ThreadPoolConfigProperties
{
/** 核心线程数 */
private
Integer
corePoolSize
=
20
;
/** 最大线程数 */
private
Integer
maxPoolSize
=
200
;
/** 最大等待时间 */
private
Long
keepAliveTime
=
10L
;
/** 最大队列数 */
private
Integer
blockQueueSize
=
5000
;
/*
* AbortPolicy:丢弃任务并抛出RejectedExecutionException异常。
* DiscardPolicy:直接丢弃任务,但是不会抛出异常
* DiscardOldestPolicy:将最早进入队列的任务删除,之后再尝试加入队列的任务被拒绝
* CallerRunsPolicy:如果任务添加线程池失败,那么主线程自己执行该任务
* */
private
String
policy
=
"AbortPolicy"
;
}
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/java/config/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 1. 用于管理引入的Jar所需的资源启动或者初始化处理
* 2. 如果有AOP切面,可以再建一个aop包,来写切面逻辑
*/
package
${
package
}.
config
;
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/java/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 应用启动层,注意Application所在的包路径,是在上一层。这样才能扫描到其他 module
* */
package
${
package
};
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/application-dev.yml
0 → 100644
浏览文件 @
96368059
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
server
:
port
:
8091
${symbol_pound} 线程池配置
thread
:
pool
:
executor
:
config
:
core-pool-size
:
20
max-pool-size
:
50
keep-alive-time
:
5000
block-queue-size
:
5000
policy
:
CallerRunsPolicy
${symbol_pound} 数据库配置;启动时配置数据库资源信息
spring
:
datasource
:
username
:
root
password
:
123456
url
:
jdbc:mysql://127.0.0.1:3306/xfg_frame_archetype?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC&useSSL=true
driver-class-name
:
com.mysql.cj.jdbc.Driver
hikari
:
pool-name
:
Retail_HikariCP
minimum-idle
:
15 ${symbol_pound}最小空闲连接数量
idle-timeout
:
180000 ${symbol_pound}空闲连接存活最大时间,默认600000(10分钟)
maximum-pool-size
:
25 ${symbol_pound}连接池最大连接数,默认是10
auto-commit
:
true
${symbol_pound}此属性控制从池返回的连接的默认自动提交行为,默认值:true
max-lifetime
:
1800000 ${symbol_pound}此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
connection-timeout
:
30000 ${symbol_pound}数据库连接超时时间,默认30秒,即30000
connection-test-query
:
SELECT
1
type
:
com.zaxxer.hikari.HikariDataSource
#mybatis:
# mapper-locations: classpath:/mybatis/mapper/*.xml
# config-location: classpath:/mybatis/config/mybatis-config.xml
${symbol_pound} 日志
logging
:
level
:
root
:
info
config
:
classpath:logback-spring.xml
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/application-prod.yml
0 → 100644
浏览文件 @
96368059
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
server
:
port
:
8091
${symbol_pound} 线程池配置
thread
:
pool
:
executor
:
config
:
core-pool-size
:
20
max-pool-size
:
50
keep-alive-time
:
5000
block-queue-size
:
5000
policy
:
CallerRunsPolicy
${symbol_pound} 数据库配置
#spring:
# datasource:
# username: root
# password: 123456
# url: jdbc:mysql://127.0.0.1:3306/xfg_frame_archetype?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC&useSSL=true
# driver-class-name: com.mysql.cj.jdbc.Driver
# hikari:
# pool-name: Retail_HikariCP
# minimum-idle: 15 ${symbol_pound}最小空闲连接数量
# idle-timeout: 180000 ${symbol_pound}空闲连接存活最大时间,默认600000(10分钟)
# maximum-pool-size: 25 ${symbol_pound}连接池最大连接数,默认是10
# auto-commit: true ${symbol_pound}此属性控制从池返回的连接的默认自动提交行为,默认值:true
# max-lifetime: 1800000 ${symbol_pound}此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
# connection-timeout: 30000 ${symbol_pound}数据库连接超时时间,默认30秒,即30000
# connection-test-query: SELECT 1
# type: com.zaxxer.hikari.HikariDataSource
#mybatis:
# mapper-locations: classpath:/mybatis/mapper/*.xml
# config-location: classpath:/mybatis/config/mybatis-config.xml
${symbol_pound} 日志
logging
:
level
:
root
:
info
config
:
classpath:logback-spring.xml
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/application-test.yml
0 → 100644
浏览文件 @
96368059
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
server
:
port
:
8091
${symbol_pound} 线程池配置
thread
:
pool
:
executor
:
config
:
core-pool-size
:
20
max-pool-size
:
50
keep-alive-time
:
5000
block-queue-size
:
5000
policy
:
CallerRunsPolicy
${symbol_pound} 数据库配置
#spring:
# datasource:
# username: root
# password: 123456
# url: jdbc:mysql://127.0.0.1:3306/xfg_frame_archetype?useUnicode=true&characterEncoding=utf8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&serverTimezone=UTC&useSSL=true
# driver-class-name: com.mysql.cj.jdbc.Driver
# hikari:
# pool-name: Retail_HikariCP
# minimum-idle: 15 ${symbol_pound}最小空闲连接数量
# idle-timeout: 180000 ${symbol_pound}空闲连接存活最大时间,默认600000(10分钟)
# maximum-pool-size: 25 ${symbol_pound}连接池最大连接数,默认是10
# auto-commit: true ${symbol_pound}此属性控制从池返回的连接的默认自动提交行为,默认值:true
# max-lifetime: 1800000 ${symbol_pound}此属性控制池中连接的最长生命周期,值0表示无限生命周期,默认1800000即30分钟
# connection-timeout: 30000 ${symbol_pound}数据库连接超时时间,默认30秒,即30000
# connection-test-query: SELECT 1
# type: com.zaxxer.hikari.HikariDataSource
#mybatis:
# mapper-locations: classpath:/mybatis/mapper/*.xml
# config-location: classpath:/mybatis/config/mybatis-config.xml
${symbol_pound} 日志
logging
:
level
:
root
:
info
config
:
classpath:logback-spring.xml
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/application.yml
0 → 100644
浏览文件 @
96368059
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
spring
:
config
:
name
:
${artifactId}
profiles
:
active
:
dev
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/logback-spring.xml
0 → 100644
浏览文件 @
96368059
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
<?xml version="1.0" encoding="UTF-8"?>
<!-- 日志级别从低到高分为TRACE < DEBUG < INFO < WARN < ERROR < FATAL,如果设置为WARN,则低于WARN的信息都不会输出 -->
<configuration
scan=
"true"
scanPeriod=
"10 seconds"
>
<contextName>
logback
</contextName>
<!-- name的值是变量的名称,value的值时变量定义的值。通过定义的值会被插入到logger上下文中。定义变量后,可以使“${symbol_dollar}{}”来使用变量。 -->
<springProperty
scope=
"context"
name=
"log.path"
source=
"logging.path"
/>
<!-- 日志格式 -->
<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"
/>
<!-- 输出到控制台 -->
<appender
name=
"CONSOLE"
class=
"ch.qos.logback.core.ConsoleAppender"
>
<!-- 此日志appender是为开发使用,只配置最底级别,控制台输出的日志级别是大于或等于此级别的日志信息 -->
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
info
</level>
</filter>
<encoder>
<pattern>
%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0}%X{ServiceId} -%X{trace-id} %m%n
</pattern>
<charset>
UTF-8
</charset>
</encoder>
</appender>
<!--输出到文件-->
<!-- 时间滚动输出 level为 INFO 日志 -->
<appender
name=
"INFO_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 正在记录的日志文件的路径及文件名 -->
<file>
./data/log/log_info.log
</file>
<!--日志文件输出格式-->
<encoder>
<pattern>
%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0}%X{ServiceId} -%X{trace-id} %m%n
</pattern>
<charset>
UTF-8
</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<!-- 每天日志归档路径以及格式 -->
<fileNamePattern>
./data/log/log-info-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
100MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!--日志文件保留天数-->
<maxHistory>
15
</maxHistory>
<totalSizeCap>
10GB
</totalSizeCap>
</rollingPolicy>
</appender>
<!-- 时间滚动输出 level为 ERROR 日志 -->
<appender
name=
"ERROR_FILE"
class=
"ch.qos.logback.core.rolling.RollingFileAppender"
>
<!-- 正在记录的日志文件的路径及文件名 -->
<file>
./data/log/log_error.log
</file>
<!--日志文件输出格式-->
<encoder>
<pattern>
%d{yy-MM-dd.HH:mm:ss.SSS} [%-16t] %-5p %-22c{0}%X{ServiceId} -%X{trace-id} %m%n
</pattern>
<charset>
UTF-8
</charset>
</encoder>
<!-- 日志记录器的滚动策略,按日期,按大小记录 -->
<rollingPolicy
class=
"ch.qos.logback.core.rolling.TimeBasedRollingPolicy"
>
<fileNamePattern>
./data/log/log-error-%d{yyyy-MM-dd}.%i.log
</fileNamePattern>
<timeBasedFileNamingAndTriggeringPolicy
class=
"ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP"
>
<maxFileSize>
100MB
</maxFileSize>
</timeBasedFileNamingAndTriggeringPolicy>
<!-- 日志文件保留天数【根据服务器预留,可自行调整】 -->
<maxHistory>
7
</maxHistory>
<totalSizeCap>
5GB
</totalSizeCap>
</rollingPolicy>
<!-- WARN 级别及以上 -->
<filter
class=
"ch.qos.logback.classic.filter.ThresholdFilter"
>
<level>
WARN
</level>
</filter>
</appender>
<!-- 异步输出 -->
<appender
name=
"ASYNC_FILE_INFO"
class=
"ch.qos.logback.classic.AsyncAppender"
>
<!-- 队列剩余容量小于discardingThreshold,则会丢弃TRACT、DEBUG、INFO级别的日志;默认值-1,为queueSize的20%;0不丢失日志 -->
<discardingThreshold>
0
</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>
8192
</queueSize>
<!-- neverBlock:true 会丢失日志,但业务性能不受影响 -->
<neverBlock>
true
</neverBlock>
<!--是否提取调用者数据-->
<includeCallerData>
false
</includeCallerData>
<appender-ref
ref=
"INFO_FILE"
/>
</appender>
<appender
name=
"ASYNC_FILE_ERROR"
class=
"ch.qos.logback.classic.AsyncAppender"
>
<!-- 队列剩余容量小于discardingThreshold,则会丢弃TRACT、DEBUG、INFO级别的日志;默认值-1,为queueSize的20%;0不丢失日志 -->
<discardingThreshold>
0
</discardingThreshold>
<!-- 更改默认的队列的深度,该值会影响性能.默认值为256 -->
<queueSize>
1024
</queueSize>
<!-- neverBlock:true 会丢失日志,但业务性能不受影响 -->
<neverBlock>
true
</neverBlock>
<!--是否提取调用者数据-->
<includeCallerData>
false
</includeCallerData>
<appender-ref
ref=
"ERROR_FILE"
/>
</appender>
<!-- 开发环境:控制台打印 -->
<springProfile
name=
"dev"
>
<logger
name=
"com.nmys.view"
level=
"debug"
/>
</springProfile>
<root
level=
"info"
>
<appender-ref
ref=
"CONSOLE"
/>
<!-- 异步日志-INFO -->
<appender-ref
ref=
"ASYNC_FILE_INFO"
/>
<!-- 异步日志-ERROR -->
<appender-ref
ref=
"ASYNC_FILE_ERROR"
/>
</root>
</configuration>
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/mybatis/config/mybatis-config.xml
0 → 100644
浏览文件 @
96368059
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE configuration
PUBLIC "-//mybatis.org//DTD Config 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 暂时未使用 文档:https://mybatis.org/mybatis-3/zh/configuration.html${symbol_pound}typeAliases -->
<typeAliases>
</typeAliases>
</configuration>
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/main/resources/mybatis/mapper/frame_case_mapper.xml
0 → 100644
浏览文件 @
96368059
#set( $symbol_pound = '#' )
#set( $symbol_dollar = '$' )
#set( $symbol_escape = '\' )
<?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=
"${package}.infrastructure.persistent.dao.Xxx"
>
<resultMap
id=
"CaseMap"
type=
"${package}.infrastructure.persistent.po.A"
>
<id
column=
"id"
property=
"id"
/>
<result
column=
"create_time"
property=
"createTime"
/>
<result
column=
"update_time"
property=
"updateTime"
/>
</resultMap>
<insert
id=
"insert"
parameterType=
"${package}.infrastructure.persistent.po.A"
>
INSERT INTO table(a,b,c) VALUES(${symbol_pound}{a}, ${symbol_pound}{b}, ${symbol_pound}{c})
</insert>
<update
id=
"update"
parameterType=
"${package}.infrastructure.persistent.po.A"
>
UPDATE table SET a = ${symbol_pound}{a} WHERE b = ${symbol_pound}{b}
</update>
<select
id=
"queryEmployeeByEmployNumber"
parameterType=
"java.lang.String"
resultMap=
"CaseMap"
>
SELECT a, b, c
FROM table
WHERE a = ${symbol_pound}{a}
</select>
</mapper>
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-app/src/test/java/test/ApiTest.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
}.
test
;
import
lombok.extern.slf4j.Slf4j
;
import
org.junit.Test
;
import
org.junit.runner.RunWith
;
import
org.springframework.boot.test.context.SpringBootTest
;
import
org.springframework.test.context.junit4.SpringRunner
;
@Slf4j
@RunWith
(
SpringRunner
.
class
)
@SpringBootTest
public
class
ApiTest
{
@Test
public
void
test
()
{
log
.
info
(
"测试完成"
);
}
}
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/pom.xml
0 → 100644
浏览文件 @
96368059
<?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>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}
</artifactId>
<version>
${version}
</version>
</parent>
<artifactId>
${artifactId}
</artifactId>
<dependencies>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
</dependency>
<dependency>
<groupId>
com.google.guava
</groupId>
<artifactId>
guava
</artifactId>
</dependency>
<dependency>
<groupId>
io.jsonwebtoken
</groupId>
<artifactId>
jjwt
</artifactId>
</dependency>
<dependency>
<groupId>
com.auth0
</groupId>
<artifactId>
java-jwt
</artifactId>
</dependency>
<dependency>
<groupId>
commons-codec
</groupId>
<artifactId>
commons-codec
</artifactId>
</dependency>
<!-- 系统模块 -->
<dependency>
<groupId>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}-types
</artifactId>
</dependency>
</dependencies>
<build>
<finalName>
${rootArtifactId}-domain
</finalName>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-archetype-plugin
</artifactId>
<version>
3.2.0
</version>
<executions>
<execution>
<goals>
<goal>
create-from-project
</goal>
</goals>
</execution>
</executions>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<configuration>
<source>
${java.version}
</source>
<target>
${java.version}
</target>
<compilerVersion>
${java.version}
</compilerVersion>
</configuration>
</plugin>
</plugins>
</build>
</project>
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/xxx/adapter/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 外部接口适配器层;当需要调用外部接口时,则创建出这一层,并定义接口,之后由基础设施层的 adapter 层具体实现
*/
package
${
package
}.
domain
.
xxx
.
adapter
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/xxx/model/aggregate/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 聚合对象;
* 1. 聚合实体和值对象
* 2. 聚合是聚合的对象,和提供基础处理对象的方法。但不建议在聚合中引入仓储和接口来做过大的逻辑。而这些复杂的操作应该放到service中处理
* 3. 对象名称 XxxAggregate
*/
package
${
package
}.
domain
.
xxx
.
model
.
aggregate
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/xxx/model/entity/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 实体对象;
* 1. 一般和数据库持久化对象1v1的关系,但因各自开发系统的不同,也有1vn的可能。
* 2. 如果是老系统改造,那么旧的库表冗余了太多的字段,可能会有nv1的情况
* 3. 对象名称 XxxEntity
*/
package
${
package
}.
domain
.
xxx
.
model
.
entity
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/xxx/model/valobj/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 值对象;
* 1. 用于描述对象属性的值,如一个库表中有json后者一个字段多个属性信息的枚举对象
* 2. 对象名称如;XxxVO
*/
package
${
package
}.
domain
.
xxx
.
model
.
valobj
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/xxx/repository/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 仓储服务
* 1. 定义仓储接口,之后由基础设施层做具体实现
*/
package
${
package
}.
domain
.
xxx
.
repository
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/xxx/service/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
}.
domain
.
xxx
.
service
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/yyy/model/aggregate/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 聚合对象;
* 1. 聚合实体和值对象
* 2. 聚合是聚合的对象,和提供基础处理对象的方法。但不建议在聚合中引入仓储和接口来做过大的逻辑。而这些复杂的操作应该放到service中处理
* 3. 对象名称 XxxAggregate
*/
package
${
package
}.
domain
.
yyy
.
model
.
aggregate
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/yyy/model/entity/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 实体对象;
* 1. 一般和数据库持久化对象1v1的关系,但因各自开发系统的不同,也有1vn的可能。
* 2. 如果是老系统改造,那么旧的库表冗余了太多的字段,可能会有nv1的情况
* 3. 对象名称 XxxEntity
*/
package
${
package
}.
domain
.
yyy
.
model
.
entity
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/yyy/model/valobj/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 值对象;
* 1. 用于描述对象属性的值,如一个库表中有json后者一个字段多个属性信息的枚举对象
* 2. 对象名称如;XxxVO
*/
package
${
package
}.
domain
.
yyy
.
model
.
valobj
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/yyy/repository/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 仓储服务
* 1. 定义仓储接口,之后由基础设施层做具体实现
*/
package
${
package
}.
domain
.
yyy
.
repository
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-domain/src/main/java/domain/yyy/service/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
}.
domain
.
yyy
.
service
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/pom.xml
0 → 100644
浏览文件 @
96368059
<?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>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}
</artifactId>
<version>
${version}
</version>
</parent>
<artifactId>
${artifactId}
</artifactId>
<dependencies>
<dependency>
<groupId>
org.mybatis.spring.boot
</groupId>
<artifactId>
mybatis-spring-boot-starter
</artifactId>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
<!-- 系统模块 -->
<dependency>
<groupId>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}-domain
</artifactId>
</dependency>
</dependencies>
<build>
<finalName>
${rootArtifactId}-infrastructure
</finalName>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-archetype-plugin
</artifactId>
<version>
3.2.0
</version>
<executions>
<execution>
<goals>
<goal>
create-from-project
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/src/main/java/infrastructure/gateway/adapter/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
}.
infrastructure
.
gateway
.
adapter
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/src/main/java/infrastructure/gateway/api/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
}.
infrastructure
.
gateway
.
api
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/src/main/java/infrastructure/gateway/dto/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
}.
infrastructure
.
gateway
.
dto
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/src/main/java/infrastructure/persistent/dao/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* DAO 接口;IXxxDao
*/
package
${
package
}.
infrastructure
.
persistent
.
dao
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/src/main/java/infrastructure/persistent/po/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 持久化对象;XxxPO 最后的 PO 是大写,UserPO
*/
package
${
package
}.
infrastructure
.
persistent
.
po
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-infrastructure/src/main/java/infrastructure/persistent/repository/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 仓储实现;用于实现 domain 中定义的仓储接口,如;IXxxRepository 在 Repository 中调用服务
*/
package
${
package
}.
infrastructure
.
persistent
.
repository
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-trigger/pom.xml
0 → 100644
浏览文件 @
96368059
<?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>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}
</artifactId>
<version>
${version}
</version>
</parent>
<artifactId>
${artifactId}
</artifactId>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
</dependency>
<dependency>
<groupId>
org.springframework
</groupId>
<artifactId>
spring-tx
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
</dependency>
<!-- 系统模块 -->
<dependency>
<groupId>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}-types
</artifactId>
</dependency>
<dependency>
<groupId>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}-domain
</artifactId>
</dependency>
</dependencies>
<build>
<finalName>
${rootArtifactId}-trigger
</finalName>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-archetype-plugin
</artifactId>
<version>
3.2.0
</version>
<executions>
<execution>
<goals>
<goal>
create-from-project
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-trigger/src/main/java/trigger/http/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* HTTP 接口服务
*/
package
${
package
}.
trigger
.
http
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-trigger/src/main/java/trigger/job/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 任务服务,可以选择使用 Spring 默认提供的 Schedule https://bugstack.cn/md/road-map/quartz.html
*/
package
${
package
}.
trigger
.
job
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-trigger/src/main/java/trigger/listener/package-info.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
/**
* 监听服务;在单体服务中,解耦流程。类似MQ的使用,如Spring的Event,Guava的事件总线都可以。如果使用了 Redis 那么也可以有发布/订阅使用。
* Guava:https://bugstack.cn/md/road-map/guava.html
*/
package
${
package
}.
trigger
.
listener
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-types/pom.xml
0 → 100644
浏览文件 @
96368059
<?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>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}
</artifactId>
<version>
${version}
</version>
</parent>
<artifactId>
${artifactId}
</artifactId>
<dependencies>
<dependency>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-web
</artifactId>
</dependency>
<dependency>
<groupId>
org.projectlombok
</groupId>
<artifactId>
lombok
</artifactId>
</dependency>
<dependency>
<groupId>
com.thoughtworks.xstream
</groupId>
<artifactId>
xstream
</artifactId>
</dependency>
<dependency>
<groupId>
dom4j
</groupId>
<artifactId>
dom4j
</artifactId>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
</dependency>
</dependencies>
<build>
<finalName>
${rootArtifactId}-types
</finalName>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-archetype-plugin
</artifactId>
<version>
3.2.0
</version>
<executions>
<execution>
<goals>
<goal>
create-from-project
</goal>
</goals>
</execution>
</executions>
</plugin>
</plugins>
</build>
</project>
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-types/src/main/java/types/common/Constants.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
}.
types
.
common
;
public
class
Constants
{
public
final
static
String
SPLIT
=
","
;
}
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-types/src/main/java/types/enums/ResponseCode.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
}.
types
.
enums
;
import
lombok.AllArgsConstructor
;
import
lombok.Getter
;
import
lombok.NoArgsConstructor
;
@AllArgsConstructor
@NoArgsConstructor
@Getter
public
enum
ResponseCode
{
SUCCESS
(
"0000"
,
"成功"
),
UN_ERROR
(
"0001"
,
"未知失败"
),
ILLEGAL_PARAMETER
(
"0002"
,
"非法参数"
),
;
private
String
code
;
private
String
info
;
}
scaffold-lite/src/main/resources/archetype-resources/__rootArtifactId__-types/src/main/java/types/exception/AppException.java
0 → 100644
浏览文件 @
96368059
#
set
(
$symbol_pound
=
'#'
)
#
set
(
$symbol_dollar
=
'$'
)
#
set
(
$symbol_escape
=
'\'
)
package
${
package
}.
types
.
exception
;
import
lombok.Data
;
import
lombok.EqualsAndHashCode
;
@EqualsAndHashCode
(
callSuper
=
true
)
@Data
public
class
AppException
extends
RuntimeException
{
private
static
final
long
serialVersionUID
=
5317680961212299217L
;
/** 异常码 */
private
String
code
;
/** 异常信息 */
private
String
info
;
public
AppException
(
String
code
)
{
this
.
code
=
code
;
}
public
AppException
(
String
code
,
Throwable
cause
)
{
this
.
code
=
code
;
super
.
initCause
(
cause
);
}
public
AppException
(
String
code
,
String
message
)
{
this
.
code
=
code
;
this
.
info
=
message
;
}
public
AppException
(
String
code
,
String
message
,
Throwable
cause
)
{
this
.
code
=
code
;
this
.
info
=
message
;
super
.
initCause
(
cause
);
}
@Override
public
String
toString
()
{
return
"${package}.x.api.types.exception.XApiException{"
+
"code='"
+
code
+
'$
{
symbol_escape
}
''
+
", info='"
+
info
+
'$
{
symbol_escape
}
''
+
'}'
;
}
}
scaffold-lite/src/main/resources/archetype-resources/docs/dev-ops/app/docker-compose-1.0.yml
0 → 100644
浏览文件 @
96368059
# /usr/local/bin/docker-compose -f /docs/dev-ops/environment/environment-docker-compose-2.4.yml up -d
version
:
'
3.8'
# docker-compose -f docker-compose-1.0.yml up -d
# 你需要修改system为你自身系统的仓库名
services
:
x-api-app
:
image
:
system/${artifactId}:${version}
container_name
:
${artifactId}
restart
:
on-failure
ports
:
-
"
8091:8091"
environment
:
-
TZ=PRC
-
SERVER_PORT=8091
volumes
:
-
./log:/data/log
logging
:
driver
:
"
json-file"
options
:
max-size
:
"
10m"
max-file
:
"
3"
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/docs/dev-ops/app/start.sh
0 → 100644
浏览文件 @
96368059
CONTAINER_NAME
=
${
artifactId
}
IMAGE_NAME
=
system/
${
artifactId
}
:
${
version
}
PORT
=
8091
echo
"容器部署开始
${
CONTAINER_NAME
}
"
# 停止容器
docker stop
${
CONTAINER_NAME
}
# 删除容器
docker
rm
${
CONTAINER_NAME
}
# 启动容器
docker run
--name
${
CONTAINER_NAME
}
\
-p
${
PORT
}
:
${
PORT
}
\
-d
${
IMAGE_NAME
}
echo
"容器部署成功
${
CONTAINER_NAME
}
"
docker logs
-f
${
CONTAINER_NAME
}
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/docs/dev-ops/app/stop.sh
0 → 100644
浏览文件 @
96368059
docker stop
${
artifactId
}
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/docs/dev-ops/mysql/docker-compose.yml
0 → 100644
浏览文件 @
96368059
# 命令执行 docker-compose up -d
version
:
'
3.9'
services
:
mysql
:
image
:
mysql:8.0.32
container_name
:
mysql
command
:
--default-authentication-plugin=mysql_native_password
restart
:
always
environment
:
TZ
:
Asia/Shanghai
# MYSQL_ALLOW_EMPTY_PASSWORD: 'yes' # 可配置无密码,注意配置 SPRING_DATASOURCE_PASSWORD=
MYSQL_ROOT_PASSWORD
:
123456
MYSQL_USER
:
xfg
MYSQL_PASSWORD
:
123456
depends_on
:
-
mysql-job-dbdata
ports
:
-
"
3306:3306"
volumes
:
-
./sql:/docker-entrypoint-initdb.d
volumes_from
:
-
mysql-job-dbdata
# 自动加载数据
mysql-job-dbdata
:
image
:
alpine:3.18.2
container_name
:
mysql-job-dbdata
volumes
:
-
/var/lib/mysql
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/docs/dev-ops/mysql/sql/xfg-frame-archetype.sql
0 → 100644
浏览文件 @
96368059
/*
Navicat Premium Data Transfer
Source Server : 127.0.0.1
Source Server Type : MySQL
Source Server Version : 50639
Source Host : localhost:3306
Source Schema : road-map
Target Server Type : MySQL
Target Server Version : 50639
File Encoding : 65001
Date: 15/07/2023 09:26:39
*/
SET
NAMES
utf8mb4
;
SET
FOREIGN_KEY_CHECKS
=
0
;
CREATE
database
if
NOT
EXISTS
`xfg_frame_archetype`
default
character
set
utf8mb4
collate
utf8mb4_0900_ai_ci
;
use
`xfg_frame_archetype`
;
-- ----------------------------
-- Table structure for employee
-- ----------------------------
DROP
TABLE
IF
EXISTS
`employee`
;
CREATE
TABLE
`employee`
(
`id`
int
(
11
)
unsigned
NOT
NULL
AUTO_INCREMENT
,
`employee_number`
varchar
(
16
)
NOT
NULL
DEFAULT
''
COMMENT
'雇员ID'
,
`employee_name`
varchar
(
32
)
NOT
NULL
DEFAULT
''
COMMENT
'雇员姓名'
,
`employee_level`
varchar
(
8
)
NOT
NULL
DEFAULT
''
COMMENT
'雇员级别'
,
`employee_title`
varchar
(
16
)
NOT
NULL
DEFAULT
''
COMMENT
'雇员岗位Title'
,
`create_time`
datetime
NOT
NULL
COMMENT
'创建时间'
,
`update_time`
datetime
NOT
NULL
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`idx_employee_number`
(
`employee_number`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
40
DEFAULT
CHARSET
=
utf8
;
-- ----------------------------
-- Records of employee
-- ----------------------------
BEGIN
;
INSERT
INTO
`employee`
VALUES
(
1
,
'10000001'
,
'sXvfDpsWnJdLsCVk64tJgw=='
,
'T-3'
,
'中级工程师'
,
'2023-07-14 15:26:26'
,
'2023-07-14 15:26:26'
);
INSERT
INTO
`employee`
VALUES
(
2
,
'10000010'
,
'sXvfDpsWnJdLsCVk64tJgw=='
,
'T2'
,
'见习工程师'
,
'2023-07-14 15:34:40'
,
'2023-07-14 15:34:40'
);
INSERT
INTO
`employee`
VALUES
(
3
,
'10000011'
,
'sXvfDpsWnJdLsCVk64tJgw=='
,
'T2'
,
'见习工程师'
,
'2023-07-14 15:34:40'
,
'2023-07-14 15:34:40'
);
INSERT
INTO
`employee`
VALUES
(
4
,
'10000012'
,
'sXvfDpsWnJdLsCVk64tJgw=='
,
'T2'
,
'见习工程师'
,
'2023-07-14 15:34:40'
,
'2023-07-14 15:34:40'
);
INSERT
INTO
`employee`
VALUES
(
5
,
'10000013'
,
'sXvfDpsWnJdLsCVk64tJgw=='
,
'T2'
,
'见习工程师'
,
'2023-07-14 15:34:40'
,
'2023-07-14 15:34:40'
);
INSERT
INTO
`employee`
VALUES
(
6
,
'10000014'
,
'sXvfDpsWnJdLsCVk64tJgw=='
,
'T2'
,
'见习工程师'
,
'2023-07-14 15:34:40'
,
'2023-07-14 15:34:40'
);
INSERT
INTO
`employee`
VALUES
(
9
,
'10000002'
,
'sXvfDpsWnJdLsCVk64tJgw=='
,
'T2'
,
'见习工程师'
,
'2023-07-15 07:42:52'
,
'2023-07-15 07:42:52'
);
INSERT
INTO
`employee`
VALUES
(
22
,
'10000015'
,
'hMCgLG6WV3CsNBQ1UD6PEQ=='
,
'T2'
,
'见习工程师'
,
'2023-07-15 08:02:31'
,
'2023-07-15 08:02:31'
);
INSERT
INTO
`employee`
VALUES
(
23
,
'10000016'
,
'hMCgLG6WV3CsNBQ1UD6PEQ=='
,
'T2'
,
'见习工程师'
,
'2023-07-15 08:02:31'
,
'2023-07-15 08:02:31'
);
INSERT
INTO
`employee`
VALUES
(
24
,
'10000017'
,
'hMCgLG6WV3CsNBQ1UD6PEQ=='
,
'T2'
,
'见习工程师'
,
'2023-07-15 08:02:31'
,
'2023-07-15 08:02:31'
);
INSERT
INTO
`employee`
VALUES
(
39
,
'10000022'
,
'GyG+V0r6mBCNsdusuKl03g=='
,
'T1'
,
'实习工程师'
,
'2023-07-15 09:17:49'
,
'2023-07-15 09:17:49'
);
COMMIT
;
-- ----------------------------
-- Table structure for employee_salary
-- ----------------------------
DROP
TABLE
IF
EXISTS
`employee_salary`
;
CREATE
TABLE
`employee_salary`
(
`id`
int
(
11
)
unsigned
NOT
NULL
AUTO_INCREMENT
,
`employee_number`
varchar
(
16
)
NOT
NULL
DEFAULT
''
COMMENT
'雇员编号'
,
`salary_total_amount`
decimal
(
8
,
2
)
NOT
NULL
COMMENT
'薪资总额'
,
`salary_merit_amount`
decimal
(
8
,
2
)
NOT
NULL
COMMENT
'绩效工资'
,
`salary_base_amount`
decimal
(
8
,
2
)
NOT
NULL
COMMENT
'基础工资'
,
`create_time`
datetime
NOT
NULL
COMMENT
'创建时间'
,
`update_time`
datetime
DEFAULT
NULL
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`id`
),
KEY
`idx_employee_number`
(
`employee_number`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
9
DEFAULT
CHARSET
=
utf8
;
-- ----------------------------
-- Records of employee_salary
-- ----------------------------
BEGIN
;
INSERT
INTO
`employee_salary`
VALUES
(
1
,
'10000001'
,
5100
.
00
,
1020
.
00
,
4080
.
00
,
'2023-07-14 16:09:06'
,
'2023-07-14 16:09:06'
);
INSERT
INTO
`employee_salary`
VALUES
(
2
,
'10000010'
,
5000
.
00
,
1000
.
00
,
4000
.
00
,
'2023-07-14 16:17:10'
,
'2023-07-14 16:17:10'
);
INSERT
INTO
`employee_salary`
VALUES
(
3
,
'10000011'
,
5000
.
00
,
1000
.
00
,
4000
.
00
,
'2023-07-14 16:17:10'
,
'2023-07-14 16:17:10'
);
INSERT
INTO
`employee_salary`
VALUES
(
4
,
'10000012'
,
5000
.
00
,
1000
.
00
,
4000
.
00
,
'2023-07-14 16:17:10'
,
'2023-07-14 16:17:10'
);
INSERT
INTO
`employee_salary`
VALUES
(
5
,
'10000013'
,
5000
.
00
,
1000
.
00
,
4000
.
00
,
'2023-07-14 16:17:10'
,
'2023-07-14 16:17:10'
);
INSERT
INTO
`employee_salary`
VALUES
(
6
,
'10000014'
,
5000
.
00
,
1000
.
00
,
4000
.
00
,
'2023-07-14 16:17:10'
,
'2023-07-14 16:17:10'
);
INSERT
INTO
`employee_salary`
VALUES
(
8
,
'10000022'
,
100
.
00
,
10
.
00
,
90
.
00
,
'2023-07-15 09:17:49'
,
'2023-07-15 09:17:49'
);
COMMIT
;
-- ----------------------------
-- Table structure for employee_salary_adjust
-- ----------------------------
DROP
TABLE
IF
EXISTS
`employee_salary_adjust`
;
CREATE
TABLE
`employee_salary_adjust`
(
`id`
int
(
11
)
unsigned
NOT
NULL
AUTO_INCREMENT
,
`employee_number`
varchar
(
16
)
NOT
NULL
DEFAULT
''
COMMENT
'雇员编号'
,
`adjust_order_id`
varchar
(
32
)
NOT
NULL
DEFAULT
''
COMMENT
'调薪单号'
,
`adjust_total_amount`
decimal
(
8
,
2
)
NOT
NULL
COMMENT
'总额调薪'
,
`adjust_base_amount`
decimal
(
8
,
2
)
NOT
NULL
COMMENT
'基础调薪'
,
`adjust_merit_amount`
decimal
(
8
,
2
)
NOT
NULL
COMMENT
'绩效调薪'
,
`create_time`
datetime
NOT
NULL
COMMENT
'创建时间'
,
`update_time`
datetime
NOT
NULL
COMMENT
'更新时间'
,
PRIMARY
KEY
(
`id`
),
UNIQUE
KEY
`idx_order_id`
(
`adjust_order_id`
)
)
ENGINE
=
InnoDB
AUTO_INCREMENT
=
3
DEFAULT
CHARSET
=
utf8
;
-- ----------------------------
-- Records of employee_salary_adjust
-- ----------------------------
BEGIN
;
INSERT
INTO
`employee_salary_adjust`
VALUES
(
1
,
'10000001'
,
'109089990198888811'
,
1000
.
00
,
800
.
00
,
200
.
00
,
'2023-07-14 16:55:53'
,
'2023-07-14 16:55:53'
);
INSERT
INTO
`employee_salary_adjust`
VALUES
(
2
,
'10000001'
,
'100908977676001'
,
100
.
00
,
20
.
00
,
80
.
00
,
'2023-07-14 21:57:39'
,
'2023-07-14 21:57:39'
);
COMMIT
;
\ No newline at end of file
scaffold-lite/src/main/resources/archetype-resources/pom.xml
0 → 100644
浏览文件 @
96368059
<?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>
${groupId}
</groupId>
<artifactId>
${artifactId}
</artifactId>
<version>
${version}
</version>
<packaging>
pom
</packaging>
<modules>
<module>
${rootArtifactId}-app
</module>
<module>
${rootArtifactId}-domain
</module>
<module>
${rootArtifactId}-trigger
</module>
<module>
${rootArtifactId}-infrastructure
</module>
<module>
${rootArtifactId}-types
</module>
</modules>
<properties>
<java.version>
1.8
</java.version>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
<maven.compiler.source>
8
</maven.compiler.source>
<maven.compiler.target>
8
</maven.compiler.target>
<project.build.sourceEncoding>
UTF-8
</project.build.sourceEncoding>
</properties>
<developers>
<developer>
<name>
xiaofuge
</name>
<email>
184172133@qq.com
</email>
<organization>
fuzhengwei
</organization>
<organizationUrl>
https://github.com/fuzhengwei
</organizationUrl>
</developer>
</developers>
<licenses>
<license>
<name>
Apache License, Version 2.0
</name>
<url>
https://www.apache.org/licenses/LICENSE-2.0
</url>
</license>
</licenses>
<parent>
<groupId>
org.springframework.boot
</groupId>
<artifactId>
spring-boot-starter-parent
</artifactId>
<version>
2.7.12
</version>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>
org.mybatis.spring.boot
</groupId>
<artifactId>
mybatis-spring-boot-starter
</artifactId>
<version>
2.1.4
</version>
</dependency>
<!-- # 多数据源路由配置
# mysql 5.x driver-class-name: com.mysql.jdbc.Driver mysql-connector-java 5.1.34
# mysql 8.x driver-class-name: com.mysql.cj.jdbc.Driver mysql-connector-java 8.0.22-->
<dependency>
<groupId>
mysql
</groupId>
<artifactId>
mysql-connector-java
</artifactId>
<version>
8.0.22
</version>
</dependency>
<dependency>
<groupId>
com.alibaba
</groupId>
<artifactId>
fastjson
</artifactId>
<version>
2.0.28
</version>
</dependency>
<dependency>
<groupId>
org.apache.commons
</groupId>
<artifactId>
commons-lang3
</artifactId>
<version>
3.9
</version>
</dependency>
<dependency>
<groupId>
com.google.guava
</groupId>
<artifactId>
guava
</artifactId>
<version>
32.1.3-jre
</version>
</dependency>
<dependency>
<groupId>
dom4j
</groupId>
<artifactId>
dom4j
</artifactId>
<version>
1.6.1
</version>
</dependency>
<dependency>
<groupId>
com.thoughtworks.xstream
</groupId>
<artifactId>
xstream
</artifactId>
<version>
1.4.10
</version>
</dependency>
<dependency>
<groupId>
io.jsonwebtoken
</groupId>
<artifactId>
jjwt
</artifactId>
<version>
0.9.1
</version>
</dependency>
<dependency>
<groupId>
com.auth0
</groupId>
<artifactId>
java-jwt
</artifactId>
<version>
4.4.0
</version>
</dependency>
<dependency>
<groupId>
commons-codec
</groupId>
<artifactId>
commons-codec
</artifactId>
<version>
1.15
</version>
</dependency>
<!-- 工程模块 -->
<dependency>
<groupId>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}-domain
</artifactId>
<version>
${version}
</version>
</dependency>
<dependency>
<groupId>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}-infrastructure
</artifactId>
<version>
${version}
</version>
</dependency>
<dependency>
<groupId>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}-types
</artifactId>
<version>
${version}
</version>
</dependency>
<dependency>
<groupId>
${groupId}
</groupId>
<artifactId>
${rootArtifactId}-trigger
</artifactId>
<version>
${version}
</version>
</dependency>
</dependencies>
</dependencyManagement>
<build>
<plugins>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-compiler-plugin
</artifactId>
<version>
3.0
</version>
<configuration>
<source>
${java.version}
</source>
<target>
${java.version}
</target>
<encoding>
${project.build.sourceEncoding}
</encoding>
</configuration>
</plugin>
<plugin>
<groupId>
org.apache.maven.plugins
</groupId>
<artifactId>
maven-resources-plugin
</artifactId>
<version>
2.5
</version>
<configuration>
<encoding>
UTF-8
</encoding>
</configuration>
</plugin>
<plugin>
<groupId>
org.codehaus.mojo
</groupId>
<artifactId>
versions-maven-plugin
</artifactId>
<version>
2.7
</version>
</plugin>
</plugins>
</build>
<profiles>
<profile>
<id>
dev
</id>
<activation>
<activeByDefault>
true
</activeByDefault>
</activation>
<properties>
<java_jvm>
-Xms1G -Xmx1G -server -XX:MaxPermSize=256M -Xss256K -Dspring.profiles.active=test -XX:+DisableExplicitGC -XX:+UseG1GC -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/Logs/${rootArtifactId}-boot -Xloggc:/export/Logs/${rootArtifactId}-boot/gc-${rootArtifactId}-boot.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps
</java_jvm>
<profileActive>
dev
</profileActive>
</properties>
</profile>
<profile>
<id>
test
</id>
<properties>
<java_jvm>
-Xms1G -Xmx1G -server -XX:MaxPermSize=256M -Xss256K -Dspring.profiles.active=test -XX:+DisableExplicitGC -XX:+UseG1GC -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/Logs/${rootArtifactId}-boot -Xloggc:/export/Logs/${rootArtifactId}-boot/gc-${rootArtifactId}-boot.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps
</java_jvm>
<profileActive>
test
</profileActive>
</properties>
</profile>
<profile>
<id>
prod
</id>
<properties>
<java_jvm>
-Xms6G -Xmx6G -server -XX:MaxPermSize=256M -Xss256K -Dspring.profiles.active=release -XX:+DisableExplicitGC -XX:+UseG1GC -XX:LargePageSizeInBytes=128m -XX:+UseFastAccessorMethods -XX:+HeapDumpOnOutOfMemoryError -XX:HeapDumpPath=/export/Logs/fq-mall-activity-app -Xloggc:/export/Logs/${rootArtifactId}-boot/gc-${rootArtifactId}-boot.log -XX:+PrintGCDetails -XX:+PrintGCDateStamps
</java_jvm>
<profileActive>
prod
</profileActive>
</properties>
</profile>
</profiles>
</project>
scaffold-lite/src/test/resources/projects/basic/archetype.properties
0 → 100644
浏览文件 @
96368059
#Mon Oct 30 15:50:35 CST 2023
package
=
cn.bugstack
version
=
1.0.0-SNAPSHOT
groupId
=
cn.bugstack
artifactId
=
xfg-frame-archetype
gitignore
=
.gitignore
appName
=
xfg-ddd
uAppName
=
XfgDDD
author
=
system
date
=
2023-10-24 10:24
\ No newline at end of file
scaffold-lite/src/test/resources/projects/basic/goal.txt
0 → 100644
浏览文件 @
96368059
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录