2015-09-04 77 views
3

嗨,我想通過Spring MVC的處理web請求,並在同一個項目球衣 處理其餘部分(彈簧引導)如何「由Spring MVC的Web請求」使用,「球衣休息」春天開機

當我測試Rest服務正在工作,但網絡不是 我如何設置應用程序配置?

@SpringBootApplication 
@EnableAutoConfiguration 
@ComponentScan(basePackageClasses = {ProductsResource.class, MessageService.class,Web.class}) 
public class MyApplication { 

    public static void main(String[] args) { 
     SpringApplication.run(MyApplication.class, args); 
    } 

    @Bean 
    public ServletRegistrationBean jerseyServlet() { 
     ServletRegistrationBean registration = new ServletRegistrationBean(new ServletContainer(), "/rest/*"); 
     registration.addInitParameter(ServletProperties.JAXRS_APPLICATION_CLASS, JerseyInitialization.class.getName()); 
     return registration; 
    } 


    @Bean 
    public ServletRegistrationBean webMVC() { 
     DispatcherServlet dispatcherServlet = new DispatcherServlet(); 

     AnnotationConfigWebApplicationContext applicationContext = new AnnotationConfigWebApplicationContext(); 
     applicationContext.register(ResourceConfig.class); 
     dispatcherServlet.setApplicationContext(applicationContext); 

     ServletRegistrationBean servletRegistrationBean = new ServletRegistrationBean(dispatcherServlet, "*.html"); 
     servletRegistrationBean.setName("web-mvc"); 
     return servletRegistrationBean; 
    } 

網絡控制器

@Controller 
@Component 
public class Web { 

    @RequestMapping("/foo") 
    String foo() { 
     return "foo"; 
    } 

    @RequestMapping("/bar") 
    String bar() { 
     return "bar"; 
    } 

} 

休息控制器

@Path("/") 
@Component 
public class ProductsResource { 

    @GET 
    @Produces(MediaType.APPLICATION_JSON) 
    @Path("/hello") 
    public String hello() { 
     return "Hello World"; 
    } 
} 

回答

0
彈簧啓動(我說的是1.4.x版),這是很容易做到的Spring MVC和JAX

其實-RS(由澤西隊休息)在同一時間:)。你不需要任何servlet註冊。所有你需要做的是增加一個Configuration類像下面

@Configuration 
@ApplicationPath("/rest") 
public class JerseyConfig extends ResourceConfig { 

    public JerseyConfig() { 
     packages("your.package.with.rest.resources"); 
    } 
} 

現在所有的JAXRS資源下/rest/*

例如提供服務,你的休息控制器可以重構爲

@Path("/hello") 
@Component 
public class ProductsResource { 

    @GET 
    @Produces(MediaType.APPLICATION_JSON) 
    public String hello() { 
     return "Hello World"; 
    } 
} 

現在如果您點擊網址http://server:port/rest/hello,請撥打Hello World應該返回。

最後,別忘了添加以下的依賴在你的Maven POM文件

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-web</artifactId> 
</dependency> 

<dependency> 
    <groupId>org.springframework.boot</groupId> 
    <artifactId>spring-boot-starter-jersey</artifactId> 
</dependency> 

這應該爲你工作。