2016-02-21 63 views

回答

3

更改配置類

package com.sample.config; 

import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.ComponentScan; 
import org.springframework.context.annotation.Configuration; 
import org.springframework.web.servlet.ViewResolver; 
import org.springframework.web.servlet.config.annotation.DefaultServletHandlerConfigurer; 
import org.springframework.web.servlet.config.annotation.EnableWebMvc; 
import org.springframework.web.servlet.config.annotation.ResourceHandlerRegistry; 
import org.springframework.web.servlet.config.annotation.WebMvcConfigurerAdapter; 
import org.springframework.web.servlet.view.InternalResourceViewResolver; 

/** 
* @author EOV537 - 
* @since 1.0 
*/ 
@Configuration 
@EnableWebMvc 
@ComponentScan(basePackages = {"com.sample"}) 
public class ApplicationConfig extends WebMvcConfigurerAdapter { 

    private static final String VIEW_RESOLVER_PREFIX = "/WEB-INF/jsp/"; 

    private static final String VIEW_RESOLVER_SUFFIX = ".jsp"; 

    @Override 
    public void addResourceHandlers(ResourceHandlerRegistry registry) { 
     registry.addResourceHandler("/static/**").addResourceLocations("/static/"); 
     registry.addResourceHandler("swagger-ui.html").addResourceLocations("classpath:/META-INF/resources/"); 
     registry.addResourceHandler("/webjars/**").addResourceLocations("classpath:/META-INF/resources/webjars/"); 
    } 

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

    @Bean 
    public ViewResolver viewResolver() { 
     InternalResourceViewResolver viewResolver = new InternalResourceViewResolver(); 

     // viewResolver.setViewClass(InternalResourceViewResolver.class); // NOSONAR 
     viewResolver.setPrefix(VIEW_RESOLVER_PREFIX); 
     viewResolver.setSuffix(VIEW_RESOLVER_SUFFIX); 

     return viewResolver; 
    } 

} 

WebApplint

package com.sample.config; 

import javax.annotation.PreDestroy; 
import javax.servlet.ServletContext; 
import javax.servlet.ServletException; 
import javax.servlet.ServletRegistration; 

import org.springframework.web.WebApplicationInitializer; 
import org.springframework.web.context.ContextCleanupListener; 
import org.springframework.web.context.ContextLoaderListener; 
import org.springframework.web.context.support.AnnotationConfigWebApplicationContext; 
import org.springframework.web.servlet.DispatcherServlet; 

/** 
* @author EOV537 - 
* @since 1.0 
*/ 
public class WebApplint implements WebApplicationInitializer { 
    /* 
    * (non-Javadoc) 
    * 
    * @see org.springframework.web.WebApplicationInitializer#onStartup(javax.servlet.ServletContext) 
    */ 

    private AnnotationConfigWebApplicationContext rootContext = null; 

    @Override 
    public void onStartup(ServletContext servletContext) throws ServletException { 

     System.setProperty("spring.profiles.active", "web"); 

     // Create the 'root' Spring application context 
     rootContext = new AnnotationConfigWebApplicationContext(); 
     rootContext.register(ApplicationConfig.class, SwaggerConfig.class); 

     // Manages the lifecycle 
     servletContext.addListener(new ContextLoaderListener(rootContext)); 
     servletContext.addListener(new ContextCleanupListener()); 

     ServletRegistration.Dynamic springWebMvc = servletContext.addServlet("DispatcherServlet", 
       new DispatcherServlet(rootContext)); 
     springWebMvc.setLoadOnStartup(1); 
     springWebMvc.addMapping("/"); 
     springWebMvc.setAsyncSupported(true); 

    } 

    @PreDestroy 
    protected final void cleanup() { 
     if (rootContext != null) { 
      rootContext.close(); 
     } 
    } 
} 

SwaggerConfig.java

package com.sample.config; 

import org.springframework.beans.factory.annotation.Autowired; 
import org.springframework.context.annotation.Bean; 
import org.springframework.context.annotation.Configuration; 

import springfox.documentation.builders.PathSelectors; 
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; 

/** 
* @author EOV537 - 
* @since 1.0 
*/ 
@Configuration 
@EnableSwagger2 
public class SwaggerConfig { 
    @Bean 
    public Docket api() { 
     return new Docket(DocumentationType.SWAGGER_2).select().apis(RequestHandlerSelectors.any()) 
       .paths(PathSelectors.any()).build(); 
    } 

    private ApiInfo apiInfo() { 
     ApiInfo apiInfo = new ApiInfo("My REST API", "Some custom description of API.", "API Blog web", 
       "Terms of service", "[email protected]", "License of API", "API license URL"); 
     return apiInfo; 
    } 

} 

添加以下在pom.xml中

<dependency> 
    <groupId>io.springfox</groupId> 
    <artifactId>springfox-swagger2</artifactId> 
    <version>2.3.0</version> 
</dependency> 
<dependency> 
    <groupId>io.springfox</groupId> 
    <artifactId>springfox-swagger-ui</artifactId> 
    <version>2.3.0</version> 
</dependency> 

訪問揚鞭2只依賴使用

http://localhost:8082/rest-service/swagger-ui.html#/

+0

在你的類SwaggerConfig這條線在你的例子是不正確的:.paths(PathSelectors。 。任何())建立();它應該是:.paths(PathSelectors.any())。build()。apiInfo(apiInfo()); – Goose