spring和resteasy集成,三种主要的方式,
对于和jboss as7的集成不需要做任何工作,jboss默认集成了resteasy,只需要对业务pojo做一些jax-rs的注解标注即可。这里不是本帖的话题。
我们这里讲的servlet容器是tomcat。
开始前,先做一些准备工作,引入jar包,我使用的是maven。
jar包版本,添加到属性文件里去:
下面是依赖jar
1、如果servlet容器支持的servlet版本大于等于3.0,那么需要做如下工作:
1、1
首先添加这个依赖,这个是servlet 3支持的初始化器
1、2
web.xml文件的配置,增加以下配置
1、3
编写pojo
package com.vteba.service.rs.user;
import javax.inject.Inject;
import javax.inject.Named;
import javax.ws.rs.GET;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import javax.ws.rs.core.MediaType;
import com.vteba.user.model.User;
import com.vteba.user.service.spi.UserService;
import com.vteba.util.json.JacksonUtils;
@Path("/restUser")
@Named
public class RestUserService {
@Inject
private UserService userServiceImpl;
@GET
@Path("/list")
@Produces(value = {MediaType.APPLICATION_JSON})
public String list() {
User user = userServiceImpl.get(4L);
return JacksonUtils.get().toJson(user);
}
}
1、4
在spring bean 配置文件中添加
启动tomcat,访问 http://ip:port/你的项目路径/restUser/list
将返回json数据
2、第二种方式是。如果你的servlet容器支持的servlet小于3
那么和上面第一种方式有些区别。
去掉这个依赖
在web.xml中增加
这样就OK了,访问地址也要加上前缀
3、第三种就是将resteasy和spring mvc整合在一起,通过注解使他们共用spring mvc的控制器。
在spring bean配置文件中增加
web.xml中只需要保留你原来的spring mvc的配置。resteasy不需要做任何配置,
编写控制器,类似如下:Spring org.springframework.web.servlet.DispatcherServlet; Spring /*
@Controller
@Path(ContactsResource.CONTACTS_URL)
public class ContactsResource
{
public static final String CONTACTS_URL = "/contacts";
@Autowired
ContactService service;
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("data")
public Contacts getAll()
{
return service.getAll();
}
@PUT
@POST
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("data")
public Response saveContact(@Context UriInfo uri, Contact contact)
throws URISyntaxException
{
service.save(contact);
URI newURI = UriBuilder.fromUri(uri.getPath()).path(contact.getLastName()).build();
return Response.created(newURI).build();
}
@GET
@Produces({MediaType.APPLICATION_XML, MediaType.APPLICATION_JSON})
@Path("data/{lastName}")
public Contact get(@PathParam("lastName") String lastName)
{
return service.getContact(lastName);
}
@POST
@PUT
@Consumes(MediaType.APPLICATION_FORM_URLENCODED)
@Produces(MediaType.TEXT_HTML)
public ModelAndView saveContactForm(@Form Contact contact)
throws URISyntaxException
{
service.save(contact);
return viewAll();
}
@GET
@Produces(MediaType.TEXT_HTML)
public ModelAndView viewAll()
{
// forward to the "contacts" view, with a request attribute named
// "contacts" that has all of the existing contacts
return new ModelAndView("contacts", "contacts", service.getAll());
}
}
项目例子https://github.com/resteasy/Resteasy/tree/3.0.4.Final/jaxrs/examples/resteasy-springMVC
resteasy参考文档http://docs.jboss.org/resteasy/docs/2.2.1.GA/userguide/html/
有很丰富的内容可以自己学习