小言_互联网的博客

springMvc,springboot整合swagger

483人阅读  评论(0)

SpringMvc配置swagger

1.pom文件

  		<!--jackson-->
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-core</artifactId>
            <version>2.9.1</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-databind</artifactId>
            <version>2.9.1</version>
        </dependency>
        <dependency>
            <groupId>com.fasterxml.jackson.core</groupId>
            <artifactId>jackson-annotations</artifactId>
            <version>2.9.1</version>
        </dependency>
        <!--springfox的核心jar包-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger2</artifactId>
            <version>2.9.1</version>
        </dependency>
        <!--springfox-ui的jar包(里面包含了swagger的界面静态文件)-->
        <dependency>
            <groupId>io.springfox</groupId>
            <artifactId>springfox-swagger-ui</artifactId>
            <version>${jackson.version}</version>
        </dependency>
        <!-- swagger依赖google的guava swagger2需要配置高版本的guava-->
        <dependency>
            <groupId>com.google.guava</groupId>
            <artifactId>guava</artifactId>
            <version>20.0</version>
        </dependency>

注意事项:
整合swagger2 启动控制台报错 Failed to start bean ‘documentationPluginsBootstrapper’,是由于
使用swagger2出现这个异常,这个问题解决办法是因为swagger依赖google的guava,而你当前项目的guava版本与之不匹配,需将guava升到最新的版本

2.SwaggerConfig 配置文件

@Configuration
@EnableSwagger2
@EnableWebMvc
//@ComponentScan(basePackageClasses = JgBjBaseInfoCompanyApi.class) 或者
@ComponentScan(basePackages = "cn.showclear.www.controller") //要扫描的包路径
public class SwaggerConfig {

    @Bean
    public Docket swaggerSpringMvcPlugin() {
        return new Docket(DocumentationType.SWAGGER_2)
                .apiInfo(apiInfo())
                .select() //选择哪些路径和api会生成document
                .apis(RequestHandlerSelectors.any())//对所有Api进行监控
                .paths(PathSelectors.any()) //对所有路径进行扫描
                .build();
    }

    /**
     * api具体信息
     *
     * @return
     */
    private ApiInfo apiInfo() {
        ApiInfo apiInfo = new ApiInfo(
                "项目API文档", //标题
                "", //描述
                "1.0", //版本
                "",
                "",
                "", //签名
                "" //签名链接
        );
        return apiInfo;
    }

3.applicationContext.xml配置

需要添加如下配置:

<context:component-scan base-package="cn.com.test">
		<!--除去加载swaggerConfig 需要在spring-servlet中加载不然会报错 -->
		<context:exclude-filter type="assignable" expression="cn.com.test.config.SwaggerConfig"/>
</context:component-scan>

原因是

spring是先加载applicationContext.xml然后再加载spring-servlet.xml(web.xml里配置)
而swagger的加载是在spring-servlet.xml配置加载的。如果我们在applicationContext.xml里也加载了swagger的话,那么会取不到一些还没加载的bean,所以就会报错

参考链接:https://blog.csdn.net/qq_37221991/article/details/105422122

3.spring-servlet.xml配置

	<!-- 启用注解 -->
	<context:annotation-config/>
	<!--将静态资源交由默认的servlet处理-->
	<mvc:default-servlet-handler/>
	<!--重要!配置swagger资源不被拦截-->
	<mvc:resources mapping="swagger-ui.html" location="classpath:/META-INF/resources/" />
	<mvc:resources mapping="/webjars/**" location="classpath:/META-INF/resources/webjars/" />
	<!--重要!将你的SwaggerConfig配置类注入-->
	<bean id="swaggerConfig" class="cn.com.test.config.SwaggerConfig"/>

4.web.xml配置

<servlet-mapping>
    <servlet-name>SpringMVC</servlet-name>
    <url-pattern>/</url-pattern>
</servlet-mapping>

5.完成

在网页中输入你的项目url地址 + swagger-ui.html 就可以了

SpringBoot整合swagger

springboot整合swagger就相对简单了许多

1.pom.xml

<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger2</artifactId>
    <version>2.9.1</version>
</dependency>
<dependency>
    <groupId>io.springfox</groupId>
    <artifactId>springfox-swagger-ui</artifactId>
    <version>2.9.1</version>
</dependency>
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-web</artifactId>
</dependency>

2.SwaggerConfig

参照springMvc的,去除@EnableWebMvc注解即可,就可以使用了


转载:https://blog.csdn.net/qq_41959871/article/details/106001489
查看评论
* 以上用户言论只代表其个人观点,不代表本网站的观点或立场