|
发表于 2023-7-5 20:00:29
|
显示全部楼层
要使用自定义包需要做一下配置
1. 在主模块启动类上面加上两个注解,
@SpringBootApplication(scanBasePackages = {"org.jeecg","com.guanyu"})和
@MapperScan({"com.guanyu"}),这个必须要,在程序配置文件中配置是无效的
2. 如果想swagger显示自定义包中的controller的信息,需要修改jeecg-boot-base-core项目中位于org.jeecg/config下面的Swagger2Config中的配置,并修改部分代码。
@Bean(value = "defaultApi2")
public Docket defaultApi2() {
return new Docket(DocumentationType.SWAGGER_2)
.apiInfo(apiInfo())
.select()
//此包路径下的类,才生成接口文档
// .apis(RequestHandlerSelectors.basePackage("org.jeecg"))
.apis(getPackages())
//加了ApiOperation注解的类,才生成接口文档
.apis(RequestHandlerSelectors.withClassAnnotation(RestController.class))
.apis(RequestHandlerSelectors.withMethodAnnotation(ApiOperation.class))
.paths(PathSelectors.any())
.build()
.securitySchemes(Collections.singletonList(securityScheme()))
.securityContexts(securityContexts())
.globalOperationParameters(setHeaderToken());
}
@SuppressWarnings("all")
private Predicate<RequestHandler> getPackages(){
String[] packages = {"org.jeecg","com.guanyu"};
return v -> declaring(v).transform(handlerPackage(packages)).or(true);
}
@SuppressWarnings("all")
private Optional<? extends Class<?>> declaring(RequestHandler handler) {
return Optional.fromNullable(handler.declaringClass().getDeclaringClass());
}
@SuppressWarnings("all")
private Function<Class<?>, Boolean> handlerPackage(String[] packages) {
return v -> {
for (String p : packages) {
if (v.getPackage().getName().startsWith(p))
return true;
}
return false;
};
}
运行以上需要google guava的支持,请在项目文件中添加这个依赖
<dependency>
<groupId>com.google.guava</groupId>
<artifactId>guava</artifactId>
<version>23.0</version>
</dependency> |
|