|  | 
 
 发表于 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>
 | 
 |