SSM三大框架整合Springfox(Swagger2)步骤以及遇到的一些问题
来源:互联网 发布:sql语句编写技巧 编辑:程序博客网 时间:2024/06/13 09:12
需求是在已有的Spring+SpringMVC+Mybatis的项目中整合Springfox(Swagger2)。
在网上查看了非常多的博客,均没有解决问题。经过一天多的摸索,总算是成功的完成了整合。现在将具体的步骤记录下来,希望能给有需求的朋友提供参考。
注意:此篇文章仅讲解整合完成SSM三大框架以后整合Springfox(Swagger2)
1、在maven的pom文件中引入springfox的依赖
<!--springfox的核心jar包--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.7.0</version></dependency><!--springfox-ui的jar包(里面包含了swagger的界面静态文件)--><dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger-ui</artifactId> <version>2.7.0</version></dependency><!--springfox依赖的jar包;如果你的项目中已经集成了无需重复--><dependency> <groupId>com.fasterxml.jackson.core</groupId> <artifactId>jackson-databind</artifactId> <version>2.9.0</version></dependency>
2、在源码目录下创建一个单独的package,然后创建SwaggerConfig.java文件
import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.ComponentScan;import org.springframework.test.context.web.WebAppConfiguration;import org.springframework.web.servlet.config.annotation.EnableWebMvc;import springfox.documentation.builders.ApiInfoBuilder;import springfox.documentation.builders.RequestHandlerSelectors;import springfox.documentation.service.ApiInfo;import springfox.documentation.spi.DocumentationType;import springfox.documentation.spring.web.plugins.Docket;import springfox.documentation.swagger2.annotations.EnableSwagger2;/*重要!如果你的项目引入junit测试,此处需要使用@WebAppConfiguration,如果没有使用junit使用@Configuration(很多的博客都没有注明这个问题,为此我花了非常多的时间解决问题)*/@WebAppConfiguration@EnableSwagger2//重要!@EnableWebMvc@ComponentScan(basePackages = "com.XXXXX.control")//扫描control所在的package请修改为你control所在packagepublic class SwaggerConfig { @Bean public Docket api() { return new Docket(DocumentationType.SWAGGER_2) .select() .apis(RequestHandlerSelectors.any()) .build() .apiInfo(apiInfo()); } private ApiInfo apiInfo() { return new ApiInfoBuilder() .title("XXX项目接口文档") .description("XXX项目接口测试") .version("1.0.0") .termsOfServiceUrl("") .license("") .licenseUrl("") .build(); }}
3、在springMVC的配置文件中配置swagger
<!--将静态资源交由默认的servlet处理--><mvc:default-servlet-handler /><!--向容器自动注入配置--><context:annotation-config /><!--自动扫描,使springMVC认为包下用了@controller注解的类是控制器--><context:component-scan base-package="com.XXXXX"/><!--重要!将你的SwaggerConfig配置类注入--><bean class="com.XXXXX.config.SwaggerConfig"/><!--重要!配置swagger资源不被拦截--><mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/" /><mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" />
4、修改web.xml文件中配置所有的请求都经DispatcherServlet处理
<servlet-mapping> <servlet-name>SpringMVC</servlet-name> <url-pattern>/</url-pattern></servlet-mapping>
注意:这个地方必须配置,如果你配置的是*.XXX的形式会出现api-docs访问出错,这就会导致swagger-ui找不到api的有效路径。使swagger无法正常工作
5、controller的配置,这里我只做简单的配置测试swagger是否正常工作
@Controller@RequestMapping("/user")@Api(value = "/user", tags = "User接口")public class UserController { private static Logger logger = Logger.getLogger(UserController.class); @Autowired private UserService userService; @RequestMapping(value = "/getUser/{id}",method = RequestMethod.GET) @ResponseBody @ApiOperation(value = "根据id获取用户信息", notes = "根据id获取用户信息", httpMethod = "GET", response = User.class) public ResponseEntity<User> getUser(@PathVariable int id){ User user = userService.getUserById(id); logger.info("controller:"+user); return ResponseEntity.ok(user); }}
注解的详细信息移步:传送门
运行:我这里使用Tomcat8.5.16和jetty9.4.6都能够正常的工作
2017-12-11补充
访问地址:[项目访问地址]/swagger-ui.html
例如本地Tomcat运行swagger-demo,那么访问地址为:http://localhost:8080/swagger-demo/swagger-ui.html
阅读全文
2 0
- SSM三大框架整合Springfox(Swagger2)步骤以及遇到的一些问题
- SSM三大框架的整合的步骤:
- SSM(Spring+SpringMVC+MyBatis)三大框架整合及遇到的各种问题
- 整合SSM三大框架的思路
- SSM三大框架的整合
- ssm框架整合时遇到的问题
- SSM 三大框架整合
- SSM三大框架整合
- SSM三大框架整合
- ssm三大框架整合
- js+ssm框架整合的一些问题
- ssm框架整合的一些问题集合
- ssm三大框架手动整合时遇到的错误与注意总结( 一)
- SSH整合步骤,三大框架的整合步骤
- 三大框架整合步骤
- spring+spring mvc+mybatis(ssm)三大框架的整合
- Spring+SpringMVC+MyBatis三大框架整合的SSM
- SSM框架整合中遇到的问题汇总
- 饿了么项目(二)
- laravel缓存
- 最小生成树之prim算法
- swift中字符串截取
- 向值栈放List集合
- SSM三大框架整合Springfox(Swagger2)步骤以及遇到的一些问题
- ANR
- Java Web应用Debug调试
- iOS Podfile文件变成exec格式
- QT 发送http请求及处理
- HTML学习记
- Dijkstra算法那--赋权最短路径
- spark对电商用户订单行为特征分析(一)
- mybatis动态表增删改查