Commit ca90fcb8fa35e6b04501bce8acbe61d087ed1a3b

Authored by YunaiV
1 parent 0e338839

接入 swagger + knife4j 组件,实现 API 接口文档

http-client.env.json 0 → 100644
  1 +{
  2 + "local": {
  3 + "baseUrl": "http://127.0.0.1:8080"
  4 + }
  5 +}
1 -<?xml version="1.0" encoding="UTF-8"?>  
2 -<project xmlns="http://maven.apache.org/POM/4.0.0"  
3 - xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"  
4 - xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">  
5 - <modelVersion>4.0.0</modelVersion>  
6 -  
7 - <groupId>cn.iocoder</groupId>  
8 - <artifactId>dashboard</artifactId>  
9 - <version>1.0.0</version>  
10 -  
11 - <name>ruoyi</name>  
12 - <url>http://www.ruoyi.vip</url>  
13 - <description>若依管理系统</description>  
14 -  
15 - <properties>  
16 - <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>  
17 - <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>  
18 - <resource.delimiter>@</resource.delimiter>  
19 - <java.version>1.8</java.version>  
20 - <maven.compiler.source>${java.version}</maven.compiler.source>  
21 - <maven.compiler.target>${java.version}</maven.compiler.target>  
22 - <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>  
23 - <!-- 统一依赖管理 -->  
24 - <spring.boot.version>2.4.1</spring.boot.version>  
25 -  
26 -<!-- <ruoyi.version>3.3.0</ruoyi.version>-->  
27 -<!-- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>-->  
28 -<!-- <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>-->  
29 -<!-- <druid.version>1.2.2</druid.version>-->  
30 -<!-- <bitwalker.version>1.21</bitwalker.version>-->  
31 -<!-- <swagger.version>2.9.2</swagger.version>-->  
32 -<!-- <kaptcha.version>2.3.2</kaptcha.version>-->  
33 -<!-- <pagehelper.boot.version>1.3.0</pagehelper.boot.version>-->  
34 -<!-- <fastjson.version>1.2.74</fastjson.version>-->  
35 -<!-- <oshi.version>5.3.6</oshi.version>-->  
36 -<!-- <jna.version>5.6.0</jna.version>-->  
37 -<!-- <commons.io.version>2.5</commons.io.version>-->  
38 -<!-- <commons.fileupload.version>1.3.3</commons.fileupload.version>-->  
39 -<!-- <poi.version>4.1.2</poi.version>-->  
40 -<!-- <velocity.version>1.7</velocity.version>-->  
41 -<!-- <jwt.version>0.9.1</jwt.version>-->  
42 -  
43 - <!-- Web 相关 -->  
44 -  
45 - <!-- DB 相关 -->  
46 - <mysql-connector-java.version>5.1.46</mysql-connector-java.version>  
47 - <druid.version>1.2.4</druid.version>  
48 - <mybatis-plus.version>3.4.1</mybatis-plus.version>  
49 - <!-- 工具类相关 -->  
50 - <org.projectlombok.version>1.16.14</org.projectlombok.version>  
51 - <org.mapstruct.version>1.3.0.Final</org.mapstruct.version>  
52 - </properties>  
53 -  
54 - <!-- 依赖声明 -->  
55 - <dependencyManagement>  
56 - <dependencies>  
57 -  
58 -<!-- &lt;!&ndash;阿里数据库连接池 &ndash;&gt;-->  
59 -<!-- <dependency>-->  
60 -<!-- <groupId>com.alibaba</groupId>-->  
61 -<!-- <artifactId>druid-spring-boot-starter</artifactId>-->  
62 -<!-- <version>${druid.version}</version>-->  
63 -<!-- </dependency>-->  
64 -  
65 -<!-- &lt;!&ndash; 解析客户端操作系统、浏览器等 &ndash;&gt;-->  
66 -<!-- <dependency>-->  
67 -<!-- <groupId>eu.bitwalker</groupId>-->  
68 -<!-- <artifactId>UserAgentUtils</artifactId>-->  
69 -<!-- <version>${bitwalker.version}</version>-->  
70 -<!-- </dependency>-->  
71 -  
72 -<!-- &lt;!&ndash; pagehelper 分页插件 &ndash;&gt;-->  
73 -<!-- <dependency>-->  
74 -<!-- <groupId>com.github.pagehelper</groupId>-->  
75 -<!-- <artifactId>pagehelper-spring-boot-starter</artifactId>-->  
76 -<!-- <version>${pagehelper.boot.version}</version>-->  
77 -<!-- </dependency>-->  
78 -  
79 -<!-- &lt;!&ndash; 获取系统信息 &ndash;&gt;-->  
80 -<!-- <dependency>-->  
81 -<!-- <groupId>com.github.oshi</groupId>-->  
82 -<!-- <artifactId>oshi-core</artifactId>-->  
83 -<!-- <version>${oshi.version}</version>-->  
84 -<!-- </dependency>-->  
85 -  
86 -<!-- <dependency>-->  
87 -<!-- <groupId>net.java.dev.jna</groupId>-->  
88 -<!-- <artifactId>jna</artifactId>-->  
89 -<!-- <version>${jna.version}</version>-->  
90 -<!-- </dependency>-->  
91 -  
92 -<!-- <dependency>-->  
93 -<!-- <groupId>net.java.dev.jna</groupId>-->  
94 -<!-- <artifactId>jna-platform</artifactId>-->  
95 -<!-- <version>${jna.version}</version>-->  
96 -<!-- </dependency>-->  
97 -  
98 -<!-- &lt;!&ndash; swagger2&ndash;&gt;-->  
99 -<!-- <dependency>-->  
100 -<!-- <groupId>io.springfox</groupId>-->  
101 -<!-- <artifactId>springfox-swagger2</artifactId>-->  
102 -<!-- <version>${swagger.version}</version>-->  
103 -<!-- <exclusions>-->  
104 -<!-- <exclusion>-->  
105 -<!-- <groupId>io.swagger</groupId>-->  
106 -<!-- <artifactId>swagger-annotations</artifactId>-->  
107 -<!-- </exclusion>-->  
108 -<!-- <exclusion>-->  
109 -<!-- <groupId>io.swagger</groupId>-->  
110 -<!-- <artifactId>swagger-models</artifactId>-->  
111 -<!-- </exclusion>-->  
112 -<!-- </exclusions>-->  
113 -<!-- </dependency>-->  
114 -  
115 -<!-- &lt;!&ndash; swagger2-UI&ndash;&gt;-->  
116 -<!-- <dependency>-->  
117 -<!-- <groupId>io.springfox</groupId>-->  
118 -<!-- <artifactId>springfox-swagger-ui</artifactId>-->  
119 -<!-- <version>${swagger.version}</version>-->  
120 -<!-- </dependency>-->  
121 -  
122 -<!-- &lt;!&ndash;io常用工具类 &ndash;&gt;-->  
123 -<!-- <dependency>-->  
124 -<!-- <groupId>commons-io</groupId>-->  
125 -<!-- <artifactId>commons-io</artifactId>-->  
126 -<!-- <version>${commons.io.version}</version>-->  
127 -<!-- </dependency>-->  
128 -  
129 -<!-- &lt;!&ndash;文件上传工具类 &ndash;&gt;-->  
130 -<!-- <dependency>-->  
131 -<!-- <groupId>commons-fileupload</groupId>-->  
132 -<!-- <artifactId>commons-fileupload</artifactId>-->  
133 -<!-- <version>${commons.fileupload.version}</version>-->  
134 -<!-- </dependency>-->  
135 -  
136 -<!-- &lt;!&ndash; excel工具 &ndash;&gt;-->  
137 -<!-- <dependency>-->  
138 -<!-- <groupId>org.apache.poi</groupId>-->  
139 -<!-- <artifactId>poi-ooxml</artifactId>-->  
140 -<!-- <version>${poi.version}</version>-->  
141 -<!-- </dependency>-->  
142 -  
143 -<!-- &lt;!&ndash;velocity代码生成使用模板 &ndash;&gt;-->  
144 -<!-- <dependency>-->  
145 -<!-- <groupId>org.apache.velocity</groupId>-->  
146 -<!-- <artifactId>velocity</artifactId>-->  
147 -<!-- <version>${velocity.version}</version>-->  
148 -<!-- </dependency>-->  
149 -  
150 -<!-- &lt;!&ndash; 阿里JSON解析器 &ndash;&gt;-->  
151 -<!-- <dependency>-->  
152 -<!-- <groupId>com.alibaba</groupId>-->  
153 -<!-- <artifactId>fastjson</artifactId>-->  
154 -<!-- <version>${fastjson.version}</version>-->  
155 -<!-- </dependency>-->  
156 -  
157 -<!-- &lt;!&ndash;Token生成与解析&ndash;&gt;-->  
158 -<!-- <dependency>-->  
159 -<!-- <groupId>io.jsonwebtoken</groupId>-->  
160 -<!-- <artifactId>jjwt</artifactId>-->  
161 -<!-- <version>${jwt.version}</version>-->  
162 -<!-- </dependency>-->  
163 -  
164 -<!-- &lt;!&ndash;验证码 &ndash;&gt;-->  
165 -<!-- <dependency>-->  
166 -<!-- <groupId>com.github.penggle</groupId>-->  
167 -<!-- <artifactId>kaptcha</artifactId>-->  
168 -<!-- <version>${kaptcha.version}</version>-->  
169 -<!-- </dependency>-->  
170 -  
171 - <!-- 统一依赖管理 -->  
172 - <dependency>  
173 - <groupId>org.springframework.boot</groupId>  
174 - <artifactId>spring-boot-dependencies</artifactId>  
175 - <version>${spring.boot.version}</version>  
176 - <type>pom</type>  
177 - <scope>import</scope>  
178 - </dependency>  
179 - </dependencies>  
180 - </dependencyManagement>  
181 -  
182 -<!-- <modules>-->  
183 -<!-- <module>ruoyi-admin</module>-->  
184 -<!-- <module>ruoyi-framework</module>-->  
185 -<!-- <module>ruoyi-system</module>-->  
186 -<!-- <module>ruoyi-quartz</module>-->  
187 -<!-- <module>ruoyi-generator</module>-->  
188 -<!-- <module>ruoyi-common</module>-->  
189 -<!-- </modules>-->  
190 - <packaging>jar</packaging>  
191 -  
192 - <dependencies>  
193 -  
194 - <!-- Web 相关 -->  
195 - <dependency>  
196 - <groupId>org.springframework.boot</groupId>  
197 - <artifactId>spring-boot-starter-web</artifactId>  
198 - </dependency>  
199 -  
200 - <!-- DB 相关 -->  
201 - <dependency>  
202 - <groupId>mysql</groupId>  
203 - <artifactId>mysql-connector-java</artifactId>  
204 - <version>${mysql-connector-java.version}</version>  
205 - </dependency>  
206 -  
207 - <dependency>  
208 - <groupId>com.alibaba</groupId>  
209 - <artifactId>druid-spring-boot-starter</artifactId>  
210 - <version>${druid.version}</version>  
211 - </dependency>  
212 -  
213 - <dependency>  
214 - <groupId>com.baomidou</groupId>  
215 - <artifactId>mybatis-plus-boot-starter</artifactId>  
216 - <version>${mybatis-plus.version}</version>  
217 - </dependency>  
218 -  
219 - <!-- 工具类相关 -->  
220 - <dependency>  
221 - <groupId>org.projectlombok</groupId>  
222 - <artifactId>lombok</artifactId>  
223 - <version>${org.projectlombok.version}</version>  
224 - </dependency>  
225 - </dependencies>  
226 -  
227 -  
228 - <build>  
229 - <pluginManagement>  
230 - <plugins>  
231 - <!-- 提供给 mapstruct 使用 -->  
232 - <plugin>  
233 - <groupId>org.apache.maven.plugins</groupId>  
234 - <artifactId>maven-compiler-plugin</artifactId>  
235 - <version>${maven-compiler-plugin.version}</version>  
236 - <configuration>  
237 - <source>${java.version}</source> <!-- or higher, depending on your project -->  
238 - <target>${java.version}</target> <!-- or higher, depending on your project -->  
239 - <annotationProcessorPaths>  
240 - <path>  
241 - <groupId>org.mapstruct</groupId>  
242 - <artifactId>mapstruct-processor</artifactId>  
243 - <version>${org.mapstruct.version}</version>  
244 - </path>  
245 - <path>  
246 - <groupId>org.projectlombok</groupId>  
247 - <artifactId>lombok</artifactId>  
248 - <version>${org.projectlombok.version}</version>  
249 - </path>  
250 - </annotationProcessorPaths>  
251 - </configuration>  
252 - </plugin>  
253 -  
254 - <!-- 打包 -->  
255 - <plugin>  
256 - <groupId>org.springframework.boot</groupId>  
257 - <artifactId>spring-boot-maven-plugin</artifactId>  
258 - <configuration>  
259 - <fork>true</fork>  
260 - </configuration>  
261 - </plugin>  
262 - </plugins>  
263 - </pluginManagement>  
264 - </build>  
265 -  
266 -</project> 1 +<?xml version="1.0" encoding="UTF-8"?>
  2 +<project xmlns="http://maven.apache.org/POM/4.0.0"
  3 + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  4 + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  5 + <modelVersion>4.0.0</modelVersion>
  6 +
  7 + <groupId>cn.iocoder</groupId>
  8 + <artifactId>dashboard</artifactId>
  9 + <version>1.0.0</version>
  10 +
  11 + <name>ruoyi</name>
  12 + <url>http://www.ruoyi.vip</url>
  13 + <description>若依管理系统</description>
  14 +
  15 + <properties>
  16 + <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
  17 + <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  18 + <resource.delimiter>@</resource.delimiter>
  19 + <java.version>1.8</java.version>
  20 + <maven.compiler.source>${java.version}</maven.compiler.source>
  21 + <maven.compiler.target>${java.version}</maven.compiler.target>
  22 + <maven-compiler-plugin.version>3.8.0</maven-compiler-plugin.version>
  23 + <!-- 统一依赖管理 -->
  24 + <spring.boot.version>2.4.1</spring.boot.version>
  25 +
  26 +<!-- <ruoyi.version>3.3.0</ruoyi.version>-->
  27 +<!-- <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>-->
  28 +<!-- <maven-jar-plugin.version>3.1.1</maven-jar-plugin.version>-->
  29 +<!-- <druid.version>1.2.2</druid.version>-->
  30 +<!-- <bitwalker.version>1.21</bitwalker.version>-->
  31 +<!-- <swagger.version>2.9.2</swagger.version>-->
  32 +<!-- <kaptcha.version>2.3.2</kaptcha.version>-->
  33 +<!-- <pagehelper.boot.version>1.3.0</pagehelper.boot.version>-->
  34 +<!-- <fastjson.version>1.2.74</fastjson.version>-->
  35 +<!-- <oshi.version>5.3.6</oshi.version>-->
  36 +<!-- <jna.version>5.6.0</jna.version>-->
  37 +<!-- <commons.io.version>2.5</commons.io.version>-->
  38 +<!-- <commons.fileupload.version>1.3.3</commons.fileupload.version>-->
  39 +<!-- <poi.version>4.1.2</poi.version>-->
  40 +<!-- <velocity.version>1.7</velocity.version>-->
  41 +<!-- <jwt.version>0.9.1</jwt.version>-->
  42 +
  43 + <!-- Web 相关 -->
  44 + <knife4j.version>3.0.2</knife4j.version>
  45 +
  46 + <!-- DB 相关 -->
  47 + <mysql-connector-java.version>5.1.46</mysql-connector-java.version>
  48 + <druid.version>1.2.4</druid.version>
  49 + <mybatis-plus.version>3.4.1</mybatis-plus.version>
  50 + <redisson.version>3.13.6</redisson.version>
  51 + <!-- 工具类相关 -->
  52 + <org.projectlombok.version>1.16.14</org.projectlombok.version>
  53 + <org.mapstruct.version>1.3.0.Final</org.mapstruct.version>
  54 + <jjwt.version>0.9.1</jjwt.version>
  55 + <fastjson.version>1.2.75</fastjson.version>
  56 + <hutool.version>5.5.6</hutool.version>
  57 + </properties>
  58 +
  59 + <!-- 依赖声明 -->
  60 + <dependencyManagement>
  61 + <dependencies>
  62 +
  63 +<!-- &lt;!&ndash;阿里数据库连接池 &ndash;&gt;-->
  64 +<!-- <dependency>-->
  65 +<!-- <groupId>com.alibaba</groupId>-->
  66 +<!-- <artifactId>druid-spring-boot-starter</artifactId>-->
  67 +<!-- <version>${druid.version}</version>-->
  68 +<!-- </dependency>-->
  69 +
  70 +<!-- &lt;!&ndash; 解析客户端操作系统、浏览器等 &ndash;&gt;-->
  71 +<!-- <dependency>-->
  72 +<!-- <groupId>eu.bitwalker</groupId>-->
  73 +<!-- <artifactId>UserAgentUtils</artifactId>-->
  74 +<!-- <version>${bitwalker.version}</version>-->
  75 +<!-- </dependency>-->
  76 +
  77 +<!-- &lt;!&ndash; pagehelper 分页插件 &ndash;&gt;-->
  78 +<!-- <dependency>-->
  79 +<!-- <groupId>com.github.pagehelper</groupId>-->
  80 +<!-- <artifactId>pagehelper-spring-boot-starter</artifactId>-->
  81 +<!-- <version>${pagehelper.boot.version}</version>-->
  82 +<!-- </dependency>-->
  83 +
  84 +<!-- &lt;!&ndash; 获取系统信息 &ndash;&gt;-->
  85 +<!-- <dependency>-->
  86 +<!-- <groupId>com.github.oshi</groupId>-->
  87 +<!-- <artifactId>oshi-core</artifactId>-->
  88 +<!-- <version>${oshi.version}</version>-->
  89 +<!-- </dependency>-->
  90 +
  91 +<!-- <dependency>-->
  92 +<!-- <groupId>net.java.dev.jna</groupId>-->
  93 +<!-- <artifactId>jna</artifactId>-->
  94 +<!-- <version>${jna.version}</version>-->
  95 +<!-- </dependency>-->
  96 +
  97 +<!-- <dependency>-->
  98 +<!-- <groupId>net.java.dev.jna</groupId>-->
  99 +<!-- <artifactId>jna-platform</artifactId>-->
  100 +<!-- <version>${jna.version}</version>-->
  101 +<!-- </dependency>-->
  102 +
  103 +<!-- &lt;!&ndash; swagger2&ndash;&gt;-->
  104 +<!-- <dependency>-->
  105 +<!-- <groupId>io.springfox</groupId>-->
  106 +<!-- <artifactId>springfox-swagger2</artifactId>-->
  107 +<!-- <version>${swagger.version}</version>-->
  108 +<!-- <exclusions>-->
  109 +<!-- <exclusion>-->
  110 +<!-- <groupId>io.swagger</groupId>-->
  111 +<!-- <artifactId>swagger-annotations</artifactId>-->
  112 +<!-- </exclusion>-->
  113 +<!-- <exclusion>-->
  114 +<!-- <groupId>io.swagger</groupId>-->
  115 +<!-- <artifactId>swagger-models</artifactId>-->
  116 +<!-- </exclusion>-->
  117 +<!-- </exclusions>-->
  118 +<!-- </dependency>-->
  119 +
  120 +<!-- &lt;!&ndash; swagger2-UI&ndash;&gt;-->
  121 +<!-- <dependency>-->
  122 +<!-- <groupId>io.springfox</groupId>-->
  123 +<!-- <artifactId>springfox-swagger-ui</artifactId>-->
  124 +<!-- <version>${swagger.version}</version>-->
  125 +<!-- </dependency>-->
  126 +
  127 +<!-- &lt;!&ndash;io常用工具类 &ndash;&gt;-->
  128 +<!-- <dependency>-->
  129 +<!-- <groupId>commons-io</groupId>-->
  130 +<!-- <artifactId>commons-io</artifactId>-->
  131 +<!-- <version>${commons.io.version}</version>-->
  132 +<!-- </dependency>-->
  133 +
  134 +<!-- &lt;!&ndash;文件上传工具类 &ndash;&gt;-->
  135 +<!-- <dependency>-->
  136 +<!-- <groupId>commons-fileupload</groupId>-->
  137 +<!-- <artifactId>commons-fileupload</artifactId>-->
  138 +<!-- <version>${commons.fileupload.version}</version>-->
  139 +<!-- </dependency>-->
  140 +
  141 +<!-- &lt;!&ndash; excel工具 &ndash;&gt;-->
  142 +<!-- <dependency>-->
  143 +<!-- <groupId>org.apache.poi</groupId>-->
  144 +<!-- <artifactId>poi-ooxml</artifactId>-->
  145 +<!-- <version>${poi.version}</version>-->
  146 +<!-- </dependency>-->
  147 +
  148 +<!-- &lt;!&ndash;velocity代码生成使用模板 &ndash;&gt;-->
  149 +<!-- <dependency>-->
  150 +<!-- <groupId>org.apache.velocity</groupId>-->
  151 +<!-- <artifactId>velocity</artifactId>-->
  152 +<!-- <version>${velocity.version}</version>-->
  153 +<!-- </dependency>-->
  154 +
  155 +<!-- &lt;!&ndash; 阿里JSON解析器 &ndash;&gt;-->
  156 +<!-- <dependency>-->
  157 +<!-- <groupId>com.alibaba</groupId>-->
  158 +<!-- <artifactId>fastjson</artifactId>-->
  159 +<!-- <version>${fastjson.version}</version>-->
  160 +<!-- </dependency>-->
  161 +
  162 +<!-- &lt;!&ndash;Token生成与解析&ndash;&gt;-->
  163 +<!-- <dependency>-->
  164 +<!-- <groupId>io.jsonwebtoken</groupId>-->
  165 +<!-- <artifactId>jjwt</artifactId>-->
  166 +<!-- <version>${jwt.version}</version>-->
  167 +<!-- </dependency>-->
  168 +
  169 +<!-- &lt;!&ndash;验证码 &ndash;&gt;-->
  170 +<!-- <dependency>-->
  171 +<!-- <groupId>com.github.penggle</groupId>-->
  172 +<!-- <artifactId>kaptcha</artifactId>-->
  173 +<!-- <version>${kaptcha.version}</version>-->
  174 +<!-- </dependency>-->
  175 +
  176 + <!-- 统一依赖管理 -->
  177 + <dependency>
  178 + <groupId>org.springframework.boot</groupId>
  179 + <artifactId>spring-boot-dependencies</artifactId>
  180 + <version>${spring.boot.version}</version>
  181 + <type>pom</type>
  182 + <scope>import</scope>
  183 + </dependency>
  184 + </dependencies>
  185 + </dependencyManagement>
  186 +
  187 +<!-- <modules>-->
  188 +<!-- <module>ruoyi-admin</module>-->
  189 +<!-- <module>ruoyi-framework</module>-->
  190 +<!-- <module>ruoyi-system</module>-->
  191 +<!-- <module>ruoyi-quartz</module>-->
  192 +<!-- <module>ruoyi-generator</module>-->
  193 +<!-- <module>ruoyi-common</module>-->
  194 +<!-- </modules>-->
  195 + <packaging>jar</packaging>
  196 +
  197 + <dependencies>
  198 + <!-- Spring 核心 -->
  199 + <dependency>
  200 + <!-- 用于生成自定义的 Spring @ConfigurationProperties 配置类的说明文件 -->
  201 + <groupId>org.springframework.boot</groupId>
  202 + <artifactId>spring-boot-configuration-processor</artifactId>
  203 + <optional>true</optional>
  204 + </dependency>
  205 +
  206 + <!-- Web 相关 -->
  207 + <dependency>
  208 + <groupId>org.springframework.boot</groupId>
  209 + <artifactId>spring-boot-starter-web</artifactId>
  210 + </dependency>
  211 +
  212 + <dependency>
  213 + <groupId>org.springframework.boot</groupId>
  214 + <artifactId>spring-boot-starter-security</artifactId>
  215 + </dependency>
  216 +
  217 + <dependency>
  218 + <groupId>org.springframework.boot</groupId>
  219 + <artifactId>spring-boot-starter-validation</artifactId>
  220 + </dependency>
  221 +
  222 + <dependency>
  223 + <groupId>com.github.xiaoymin</groupId>
  224 + <artifactId>knife4j-spring-boot-starter</artifactId>
  225 + <version>${knife4j.version}</version>
  226 + </dependency>
  227 +
  228 + <!-- DB 相关 -->
  229 + <dependency>
  230 + <groupId>mysql</groupId>
  231 + <artifactId>mysql-connector-java</artifactId>
  232 + <version>${mysql-connector-java.version}</version>
  233 + </dependency>
  234 + <dependency>
  235 + <groupId>com.alibaba</groupId>
  236 + <artifactId>druid-spring-boot-starter</artifactId>
  237 + <version>${druid.version}</version>
  238 + </dependency>
  239 + <dependency>
  240 + <groupId>com.baomidou</groupId>
  241 + <artifactId>mybatis-plus-boot-starter</artifactId>
  242 + <version>${mybatis-plus.version}</version>
  243 + </dependency>
  244 +
  245 + <dependency>
  246 + <groupId>org.redisson</groupId>
  247 + <artifactId>redisson-spring-boot-starter</artifactId>
  248 + <version>${redisson.version}</version>
  249 + </dependency>
  250 +
  251 + <!-- 工具类相关 -->
  252 + <dependency>
  253 + <groupId>org.projectlombok</groupId>
  254 + <artifactId>lombok</artifactId>
  255 + <version>${org.projectlombok.version}</version>
  256 + </dependency>
  257 +
  258 + <dependency>
  259 + <groupId>io.jsonwebtoken</groupId>
  260 + <artifactId>jjwt</artifactId>
  261 + <version>${jjwt.version}</version>
  262 + </dependency>
  263 +
  264 + <dependency>
  265 + <groupId>com.alibaba</groupId>
  266 + <artifactId>fastjson</artifactId>
  267 + <version>${fastjson.version}</version>
  268 + </dependency>
  269 +
  270 + <dependency>
  271 + <groupId>org.projectlombok</groupId>
  272 + <artifactId>lombok</artifactId>
  273 + <version>${org.projectlombok.version}</version>
  274 + </dependency>
  275 +
  276 + <dependency>
  277 + <!-- 解析客户端操作系统、浏览器等 TODO 芋艿:后面看看 hutool 有没替代 -->
  278 + <groupId>eu.bitwalker</groupId>
  279 + <artifactId>UserAgentUtils</artifactId>
  280 + <version>1.21</version>
  281 + </dependency>
  282 +
  283 + <dependency>
  284 + <groupId>cn.hutool</groupId>
  285 + <artifactId>hutool-core</artifactId>
  286 + <version>${hutool.version}</version>
  287 + </dependency>
  288 + </dependencies>
  289 +
  290 +
  291 + <build>
  292 + <pluginManagement>
  293 + <plugins>
  294 + <!-- 提供给 mapstruct 使用 -->
  295 + <plugin>
  296 + <groupId>org.apache.maven.plugins</groupId>
  297 + <artifactId>maven-compiler-plugin</artifactId>
  298 + <version>${maven-compiler-plugin.version}</version>
  299 + <configuration>
  300 + <source>${java.version}</source> <!-- or higher, depending on your project -->
  301 + <target>${java.version}</target> <!-- or higher, depending on your project -->
  302 + <annotationProcessorPaths>
  303 + <path>
  304 + <groupId>org.mapstruct</groupId>
  305 + <artifactId>mapstruct-processor</artifactId>
  306 + <version>${org.mapstruct.version}</version>
  307 + </path>
  308 + <path>
  309 + <groupId>org.projectlombok</groupId>
  310 + <artifactId>lombok</artifactId>
  311 + <version>${org.projectlombok.version}</version>
  312 + </path>
  313 + </annotationProcessorPaths>
  314 + </configuration>
  315 + </plugin>
  316 +
  317 + <!-- 打包 -->
  318 + <plugin>
  319 + <groupId>org.springframework.boot</groupId>
  320 + <artifactId>spring-boot-maven-plugin</artifactId>
  321 + <configuration>
  322 + <fork>true</fork>
  323 + </configuration>
  324 + </plugin>
  325 + </plugins>
  326 + </pluginManagement>
  327 + </build>
  328 +
  329 +</project>
src/main/java/cn/iocoder/dashboard/framework/swagger/config/SwaggerAutoConfiguration.java 0 → 100644
  1 +package cn.iocoder.dashboard.framework.swagger.config;
  2 +
  3 +import com.github.xiaoymin.knife4j.spring.annotations.EnableKnife4j;
  4 +import org.springframework.boot.autoconfigure.condition.ConditionalOnClass;
  5 +import org.springframework.boot.autoconfigure.condition.ConditionalOnMissingBean;
  6 +import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
  7 +import org.springframework.boot.context.properties.EnableConfigurationProperties;
  8 +import org.springframework.context.annotation.Bean;
  9 +import org.springframework.context.annotation.Configuration;
  10 +import org.springframework.http.HttpHeaders;
  11 +import springfox.documentation.builders.ApiInfoBuilder;
  12 +import springfox.documentation.builders.PathSelectors;
  13 +import springfox.documentation.service.*;
  14 +import springfox.documentation.spi.DocumentationType;
  15 +import springfox.documentation.spi.service.contexts.SecurityContext;
  16 +import springfox.documentation.spring.web.plugins.Docket;
  17 +import springfox.documentation.swagger2.annotations.EnableSwagger2;
  18 +import springfox.documentation.service.ApiKey;
  19 +
  20 +import java.util.ArrayList;
  21 +import java.util.Arrays;
  22 +import java.util.Collections;
  23 +import java.util.List;
  24 +
  25 +import static springfox.documentation.builders.RequestHandlerSelectors.basePackage;
  26 +
  27 +/**
  28 + * Swagger2 自动配置类
  29 + *
  30 + * @author 芋道源码
  31 + */
  32 +@Configuration
  33 +@EnableSwagger2
  34 +@EnableKnife4j
  35 +@ConditionalOnClass({Docket.class, ApiInfoBuilder.class})
  36 +@ConditionalOnProperty(prefix = "yudao.swagger", value = "enable", matchIfMissing = true)
  37 +// 允许使用 swagger.enable=false 禁用 Swagger
  38 +@EnableConfigurationProperties(SwaggerProperties.class)
  39 +public class SwaggerAutoConfiguration {
  40 +
  41 + @Bean
  42 + @ConditionalOnMissingBean
  43 + public SwaggerProperties swaggerProperties() {
  44 + return new SwaggerProperties();
  45 + }
  46 +
  47 + @Bean
  48 + public Docket createRestApi() {
  49 + SwaggerProperties properties = swaggerProperties();
  50 + // 创建 Docket 对象
  51 + return new Docket(DocumentationType.SWAGGER_2)
  52 + // 用来创建该 API 的基本信息,展示在文档的页面中(自定义展示的信息)
  53 + .apiInfo(apiInfo(properties))
  54 + // 设置扫描指定 package 包下的
  55 + .select()
  56 + .apis(basePackage(properties.getBasePackage()))
  57 + .paths(PathSelectors.any())
  58 + .build()
  59 + .securitySchemes(securitySchemes())
  60 + .securityContexts(securityContexts())
  61 +// .pathMapping() TODO 芋艿:稍后解决,统一 api 前缀
  62 + ;
  63 + }
  64 +
  65 + /**
  66 + * API 摘要信息
  67 + */
  68 + private static ApiInfo apiInfo(SwaggerProperties properties) {
  69 + return new ApiInfoBuilder()
  70 + .title(properties.getTitle())
  71 + .description(properties.getDescription())
  72 + .contact(new Contact(properties.getAuthor(), null, null))
  73 + .version(properties.getVersion())
  74 + .build();
  75 + }
  76 +
  77 + /**
  78 + * 安全模式,这里配置通过请求头 Authorization 传递 token 参数
  79 + */
  80 + private static List<SecurityScheme> securitySchemes() {
  81 + return Collections.singletonList(new ApiKey(HttpHeaders.AUTHORIZATION, "Authorization", "header"));
  82 + }
  83 +
  84 + /**
  85 + * 安全上下文
  86 + *
  87 + * @see #securitySchemes()
  88 + * @see #authorizationScopes()
  89 + */
  90 + private static List<SecurityContext> securityContexts() {
  91 + return Collections.singletonList(SecurityContext.builder()
  92 + .securityReferences(securityReferences())
  93 + .forPaths(PathSelectors.regex("^(?!auth).*$"))
  94 + .build());
  95 + }
  96 +
  97 + private static List<SecurityReference> securityReferences() {
  98 + return Collections.singletonList(new SecurityReference(HttpHeaders.AUTHORIZATION, authorizationScopes()));
  99 + }
  100 +
  101 + private static AuthorizationScope[] authorizationScopes() {
  102 + return new AuthorizationScope[]{new AuthorizationScope("global", "accessEverything")};
  103 + }
  104 +
  105 +}
src/main/java/cn/iocoder/dashboard/framework/swagger/config/SwaggerProperties.java 0 → 100644
  1 +package cn.iocoder.dashboard.framework.swagger.config;
  2 +
  3 +import lombok.Data;
  4 +import org.springframework.boot.context.properties.ConfigurationProperties;
  5 +
  6 +import javax.validation.constraints.NotEmpty;
  7 +
  8 +/**
  9 + * Swagger 配置属性
  10 + *
  11 + * @author 芋道源码
  12 + */
  13 +@ConfigurationProperties("yudao.swagger")
  14 +@Data
  15 +public class SwaggerProperties {
  16 +
  17 + /**
  18 + * 标题
  19 + */
  20 + @NotEmpty(message = "标题不能为空")
  21 + private String title;
  22 + /**
  23 + * 描述
  24 + */
  25 + @NotEmpty(message = "描述不能为空")
  26 + private String description;
  27 + /**
  28 + * 作者
  29 + */
  30 + @NotEmpty(message = "作者不能为空")
  31 + private String author;
  32 + /**
  33 + * 版本
  34 + */
  35 + @NotEmpty(message = "版本不能为空")
  36 + private String version;
  37 + /**
  38 + * 扫描的包
  39 + */
  40 + @NotEmpty(message = "扫描的 package 不能为空")
  41 + private String basePackage;
  42 +
  43 +}
src/main/java/cn/iocoder/dashboard/framework/swagger/package-info.java 0 → 100644
  1 +/**
  2 + * 基于 Swagger + Knife4j 实现 API 接口文档
  3 + *
  4 + * @author 芋道源码
  5 + */
  6 +package cn.iocoder.dashboard.framework.swagger;
src/main/java/cn/iocoder/dashboard/framework/swagger/《芋道 Spring Boot API 接口文档 Swagger 入门》.md 0 → 100644
  1 +<http://www.iocoder.cn/Spring-Boot/Swagger/?dashboard>
src/main/resources/application.yaml
1 spring: 1 spring:
2 - # 数据源配置项 2 + # 数据源配置项 TODO 多数据源;TODO 监控配置
3 datasource: 3 datasource:
4 url: jdbc:mysql://127.0.1:3306/ruoyi-vue-pro?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT 4 url: jdbc:mysql://127.0.1:3306/ruoyi-vue-pro?useSSL=false&useUnicode=true&characterEncoding=UTF-8&serverTimezone=CTT
5 driver-class-name: com.mysql.jdbc.Driver 5 driver-class-name: com.mysql.jdbc.Driver
6 username: root 6 username: root
7 password: 123456 7 password: 123456
  8 + # redis 配置 TODO 需要进行下,对接到 redisson
  9 + redis:
  10 + # 地址
  11 + host: localhost
  12 + # 端口,默认为6379
  13 + port: 6379
  14 + # 数据库索引
  15 + database: 0
  16 + # 连接超时时间
  17 + timeout: 10s
  18 +
  19 +# 芋道配置项,设置当前项目所有自定义的配置
  20 +yudao:
  21 + security:
  22 + token-header: Authorization
  23 + token-secret: abcdefghijklmnopqrstuvwxyz
  24 + token-expires: 30m
  25 + swagger:
  26 + title: 管理后台
  27 + description: 提供管理员管理的所有功能
  28 + version: 1.0.0
  29 + base-package: cn.iocoder.dashboard.modules