介绍
- 这是我配置swagger的一个补充项
- knife4j 提供的聚合项目
- 只要是对swagger在分布式中的聚合
-
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>com.github.xiaoymin</groupId>
<artifactId>knife4j-aggregation-spring-boot-starter</artifactId>
<version>2.0.8</version>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-context</artifactId>
<version>2.2.5.RELEASE</version>
</dependency>
<!-- nacos -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
<version>2.2.3.RELEASE</version>
</dependency>
开始配置
bootstrap.yml ```yaml server: port: 202 spring: main: allow-bean-definition-overriding: true profiles: active: def application: name: cloud-swagger detabes: swagger: base-package=com:
example:
doc:
swager:
boot:
controller: com.detabes.cloud.doc.swagger.controller
logging: config: classpath:logback-spring.xml debug: false
knife4j: enableAggregation: true nacos: enable: true # 将该属性设置为true,则代表启用nacos模式 serviceUrl: http://localhost:8848/nacos/ # nacos注册中心的地址 routes:
- name: 测试cloud项目
serviceName: cloud-demo # nacos注册中心的服务名称
location: /v2/api-docs # 具体资源接口地址,最终Knife4j是通过注册服务uri+location的组合路径进行访问
servicePath: /api/cloud # 该属性是最终在Ui中展示的接口前缀属性(跟随网关的前缀)
- bootstrap-def.yml
```yaml
spring:
cloud:
nacos:
discovery:
server-addr: 127.0.0.1:8848 # 注册中心
config:
server-addr: 127.0.0.1:8848 # 配置中心
file-extension: yaml #文件扩展名格式,针对于默认的{spring.application.name}-${profile}.${file-extension:properties}配置
enabled: true #开启或关闭配置中心
encode: UTF-8
示例测试
- 在启动类上加入
@EnableDiscoveryClient
- 启动访问 127.0.0.1:8080/doc.html