spring boot集成jsersey

来源:互联网 发布:淘宝低价 编辑:程序博客网 时间:2024/06/16 12:55

搭建完了springboot环境后,集成JAX-RS就很简单了。
要集成JAX-RS,首先得考虑清楚,供应商选谁。因为JAX-RS是J2EE的标准,但是J2EE自己从来不去实现,靠各个厂商来实现,目前用的多的实现是两家,一家是glassfish的jersey,一家是jboss的resteasy。
不幸的是,spring只能和jersey集成。Resteasy就没法用啦。
要集成,第一步还是加jar包。

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

之后就是写JAX-RS的endpoint类了。
在spring boot的环境里写endpoint类,多出来的就是这个@Service注解,要将其变为spring的bean。这样spring才容易管理。其他的注解和标准的JAX-RS规范一样。

@Service@Path("/user.json")@Produces(MediaType.APPLICATION_JSON)public class UserEndpoint {    @GET    public Map<String,String> home(){        HashMap<String, String> map = new HashMap<String, String>();        map.put("name","Tom");        return map;    }}

但是由于集成jersey不支持扫包,所以必须手动注册Endpoint类。
注册的代码很简单。

@Componentpublic class JerseyConfig extends ResourceConfig {    @PostConstruct    public void init(){       register(UserEndpoint.class);    }}

但是麻烦就麻烦在注册上,如果有100个Endpoint就需要写一百行注册代码。如果忘了写,endpoint就不会工作。