多平台统一管理软件接口,如何实现多平台统一管理软件接口
303
2024-02-03
本文主要介绍"Java中如何利用Swagger配置扫描接口",希望能够解决您遇到有关问题,下面我们一起来看这篇 "Java中如何利用Swagger配置扫描接口" 文章。
SwaggerConfig.java
/** * 配置docket以配置Swagger具体参数 */ @Bean public Docket docket() { /* * 通过.select()方法,去配置扫描接口,RequestHandlerSelectors配置如何扫描接口 * basePackage(final String basePackage) // 根据包路径扫描接口(最常用) * any() 扫描所有,项目中的所有接口都会被扫描到 * none() 不扫描接口 * 通过方法上的注解扫描,如withMethodAnnotation(GetMapping.class)只扫描get请求 * withMethodAnnotation(final Class<? extends Annotation> annotation) * 通过类上的注解扫描,如.withClassAnnotation(Controller.class)只扫描有controller注解的类中的接口 * withClassAnnotation(final Class<? extends Annotation> annotation) */ return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.tian.swagger.controller")).build(); }运行结果(因为现在只扫描了com.tian.swagger.controller 的包 所以只会有一个HelloController):
1.2 配置接口扫描过滤SwaggerConfig.java
/** * 配置docket以配置Swagger具体参数 */ @Bean public Docket docket() { /* * 通过.select()方法,去配置扫描接口,RequestHandlerSelectors配置如何扫描接口 * basePackage(final String basePackage) // 根据包路径扫描接口 * any() 扫描所有,项目中的所有接口都会被扫描到 * none() 不扫描接口 * 通过方法上的注解扫描,如withMethodAnnotation(GetMapping.class)只扫描get请求 * withMethodAnnotation(final Class<? extends Annotation> annotation) * 通过类上的注解扫描,如.withClassAnnotation(Controller.class)只扫描有controller注解的类中的接口 * withClassAnnotation(final Class<? extends Annotation> annotation) */ return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).select().apis(RequestHandlerSelectors.basePackage("com.tian.swagger.controller")).paths(PathSelectors.ant("/tian/**")).build(); }这里只选择了请求路径包含了/tian下的所有接口
这里可以选择的参数有:
any() // 任何请求都扫描none() // 任何请求都不扫描regex(final String pathRegex) // 通过正则表达式控制ant(final String antPattern) // 通过ant()控制1.3 配置Swagger开关enable(boolean) 表示是否启用Swagger 默认为true(启用) 如果为false,则Swagger不能在游览器中访问
SwaggerConfig.java
/** * 配置docket以配置Swagger具体参数 */ @Bean public Docket docket() { // enable(boolean) 表示是否启用Swagger 默认为true(启用) 如果为false,则Swagger不能在游览器中访问 return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(false).select().apis(RequestHandlerSelectors.basePackage("com.tian.swagger.controller")).paths(PathSelectors.ant("/tian/**")).build(); }运行结果:
1.4 我只希望我的Swagger在生产环境中使用,在发布的时候不使用。怎么实现?判断是不是生产环境,是则 flag = false,否则 flag = true注入enable(flag)1.4.1 准备工作,新建2个配置文件application.properties
spring.profiles.active=devapplication-dev.properties
server.port=8081application-pro.properties
server.port=80821.4.2 代码实现SwaggerConfig.java
/** * 配置docket以配置Swagger具体参数 */ @Bean // org.springframework.core.env.Environment public Docket docket(Environment environment) { // 设置要显示swagger的环境 这里是 dev 和 test 环境 // org.springframework.core.env.Profiles Profiles profiles = Profiles.of("dev", "test"); // 判断当前是否处于该环境 // 通过 enable() 接收此参数判断是否要显示 boolean flag = environment.acceptsProfiles(profiles); // enable(boolean) 表示是否启用Swagger 默认为true(启用) 如果为false,则Swagger不能在游览器中访问 return new Docket(DocumentationType.SWAGGER_2).apiInfo(apiInfo()).enable(flag).select().apis(RequestHandlerSelectors.basePackage("com.tian.swagger.controller")).paths(PathSelectors.ant("/tian/**")).build(); }启动测试01:Profiles 里面包含 dev
启动测试01:Profiles 里面不包含 dev
Profiles profiles = Profiles.of("test");关于 "Java中如何利用
本文主要介绍"Java中栈的线性结构是什么",希望能够解决您遇到有关问题,下面我们一起来看这篇 "Java中栈的线性结构是什么" 文章。 一:栈栈是限制插入和删除只能在一个位置上进行的表,此位 ...
版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。
发表评论
暂时没有评论,来抢沙发吧~