org.bugkillers.back.swagger.CustomJavaPluginConfig.java Source code

Java tutorial

Introduction

Here is the source code for org.bugkillers.back.swagger.CustomJavaPluginConfig.java

Source

package org.bugkillers.back.swagger;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.ComponentScan;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer;
import org.springframework.web.servlet.config.annotation.EnableWebMvc;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter;

import com.mangofactory.swagger.configuration.SpringSwaggerConfig;
import com.mangofactory.swagger.models.dto.ApiInfo;
import com.mangofactory.swagger.paths.SwaggerPathProvider;
import com.mangofactory.swagger.plugin.EnableSwagger;
import com.mangofactory.swagger.plugin.SwaggerSpringMvcPlugin;

/**
 * ????API
 * Springxml??? @see @EnableWebMvc 
 * <p/>
 * <p> @author 
 *
 * <p> @date 2015130 ?1:18:48
 * <p> @version 0.0.1
 */
@Configuration
@EnableWebMvc
@EnableSwagger
@ComponentScan(basePackages = { "com.ak.swaggerspringmvc.shared.controller", "com.ak.spring3.music" })
public class CustomJavaPluginConfig extends WebMvcConfigurerAdapter {

    private SpringSwaggerConfig springSwaggerConfig;

    @Autowired
    public void setSpringSwaggerConfig(SpringSwaggerConfig springSwaggerConfig) {
        this.springSwaggerConfig = springSwaggerConfig;
    }

    /**
     * ? ?API?
     * ??
     * @return
     */
    @Bean
    public SwaggerSpringMvcPlugin customImplementation() {
        return new SwaggerSpringMvcPlugin(this.springSwaggerConfig).apiInfo(apiInfo()).includePatterns(".*")
                //            .pathProvider(new GtPaths())
                .apiVersion("0.0.1").swaggerGroup("user");
    }

    private ApiInfo apiInfo() {
        ApiInfo apiInfo = new ApiInfo("bugkillers-back API", "bugkillers ??API",
                "http://127.0.0.1:9081/api", "bugkillers@163.com", "My License", "My Apps API License URL");
        return apiInfo;
    }

    @Override
    public void configureDefaultServletHandling(DefaultServletHandlerConfigurer configurer) {
        configurer.enable();
    }

    class GtPaths extends SwaggerPathProvider {

        @Override
        protected String applicationPath() {
            return "/restapi";
        }

        @Override
        protected String getDocumentationPath() {
            return "/restapi";
        }
    }

}