SpringMVC整合kinfe4j及问题解决分析
作者:不减30斤不改名_TC
这篇文章主要为大家介绍了SpringMVC整合kinfe4j及问题解决分析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
引言
以前的SpringMVC代码都是使用showdoc来记录接口文档,正好这次开启一个新项目,准备整合进swagger,以免编写接口文档的痛苦。而前段时间又正好看到很多人使用kinfe4j来替换swagger的文章,索性一步到位用上了kinfe4j。
整合的步骤
现在的项目都是用Spring Boot框架的比较多,而Spring Boot整合kinfe4j网上的文章也比较多,而且相对比较容易,而随着时间的推移,SpringMVC用的越来越少,相对而言资料也越来越少。这次整合也耗费了我半天的时间,下面记录一下整合的步骤及需要注意的问题。
首先导入maven
<dependency> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> <version>1.5.21</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version> <exclusions> <exclusion> <groupId>io.swagger</groupId> <artifactId>swagger-models</artifactId> </exclusion> </exclusions> </dependency> <dependency> <groupId>com.github.xiaoymin</groupId> <artifactId>swagger-bootstrap-ui</artifactId> <version>1.9.3</version> </dependency> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-bean-validators</artifactId> <version>2.9.2</version> </dependency> <dependency> <groupId>javax.validation</groupId> <artifactId>validation-api</artifactId> <version>1.1.0.Final</version> </dependency>
第二步,编写config文件:
@EnableSwagger2 @EnableSwaggerBootstrapUI @Import(BeanValidatorPluginsConfiguration.class) @EnableWebMvc public class SwaggerConfig extends WebMvcConfigurerAdapter { public Docket defaultApi(){ Docket docket = new Docket(DocumentationType.SWAGGER_2) .apiInfo(apiInfo()) .groupName("2.x 版本") .select() .apis(RequestHandlerSelectors.basePackage("com.ruida.cloud.sys.controller")) .paths(PathSelectors.any()) .build(); return docket; } private ApiInfo apiInfo() { return new ApiInfoBuilder().title("管理后台接口文档") .description("管理后台接口文档") .termsOfServiceUrl("http://localhost:8090/swagger/doc.html") .version("1.0.0") .build(); } }
这些配置都比较简单。
第三步spring-mvc.xml文件中,进行bean的注册:
<bean id="SwaggerConfig" class="xxx.sys.controller.config.SwaggerConfig" /> 接下来在web.xml中进行配置: ```xml <filter> <filter-name>swaggerProductionFilter</filter-name> <filter-class>com.github.xiaoymin.swaggerbootstrapui.filter.ProductionSecurityFilter</filter-class> <init-param> <param-name>production</param-name> <param-value>false</param-value> </init-param> </filter> <filter-mapping> <filter-name>swaggerProductionFilter</filter-name> <url-pattern>/*</url-pattern> </filter-mapping> <!--Swagger资源的Basic认证保护策略--> <filter> <filter-name>swaggerSecurityBasic</filter-name> <filter-class>com.github.xiaoymin.swaggerbootstrapui.filter.SecurityBasicAuthFilter</filter-class> <!--开启basic认证--> <init-param> <param-name>enableBasicAuth</param-name> <param-value>true</param-value> </init-param> <!--用户名&密码--> <init-param> <param-name>userName</param-name> <param-value>123</param-value> </init-param> <init-param> <param-name>password</param-name> <param-value>123</param-value> </init-param> </filter> <filter-mapping> <filter-name>swaggerSecurityBasic</filter-name> <url-pattern>/swagger/*</url-pattern> </filter-mapping>
这个时候启动,如果访问xxx/doc.html显示404,需要配置静态资源映射路径,这边在config里面一并完成,继承WebMvcConfigurerAdapter,重写下面的方法:
@Override public void addResourceHandlers(ResourceHandlerRegistry registry) { registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/"); registry.addResourceHandler("/swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); }
还有一点需要注意的:如果配置了shiro等权限的话,需要将kinfe4j用到的静态文件权限放开:
<bean id="shiroFilter" class="org.apache.shiro.spring.web.ShiroFilterFactoryBean"> <property name="securityManager" ref="securityManager"/> <property name="loginUrl" value="/login"/> <property name="successUrl" value="/"/> <property name="unauthorizedUrl" value="/login"/> <property name="filterChainDefinitions"> <value> /captcha = anon /login = authc /logout = logout /uploadFile = user /swagger-ui.html = anon /doc.html = anon /swagger-resources/** = anon /v2/** = anon /static/** = anon /webjars/** = anon /** = user </value> </property> <property name="filters"> <map> <entry key="authc" value-ref="formAuthenticationFilter"/> </map> </property> </bean>
其他类似的权限校验的组件也是同样的操作,不再赘述。至此,整合完成。
在实体类,和接口类配置好相关的注解后,访问:
以上就是SpringMVC整合kinfe4j及问题解决分析的详细内容,更多关于SpringMVC整合kinfe4j的资料请关注脚本之家其它相关文章!