关注JEECG发展历程 关注最新动态和版本, 记录JEECG成长点滴 更新日志 - 技术支持 - 招聘英才

JEECG最新版本下载 JEECG智能开发平台 - 显著提高开发效率 常见问题 - 入门视频 - 参与开源团队

商务QQ: 69893005、418799587 商务热线(5*8小时): 010-64808099 官方邮箱: jeecgos@163.com

查看: 14788|回复: 2

[代码生成器] 代码生成器生成代码后,Swagger文档中没有接口

[复制链接]
发表于 2021-7-5 11:47:37 | 显示全部楼层 |阅读模式
代码生成器生成代码后,Swagger文档中没有接口是怎么解决
发表于 2022-9-6 18:57:38 | 显示全部楼层
他们代码生成器这块就没有开源所以后端是没有代码的
发表于 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>
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表