我有下面的类和web.xml文件。spring框架是否支持@PATH、@PUT、@Consumes...etc等jax-rs注释?
换句话说,我可以使用@PATH而不是@RequestMapping吗?
Java:
import org.springframework.stereotype.Controller;
import javax.ws.rs.PUT;
import javax.ws.rs.Path;
@Controller
@Path("/register")
public class RegisterServices {
@PUT
@Path("/create")
@Consumes(MediaType.APPLICATION_JSON)
@Produces({"application/json"})
public Response create(@Context HttpServletRequest requestContex,
@HeaderParam("Authorization") String authorization,
String xMsisdn, String param) {}
}web.xml
<listener>
<listener-class>org.springframework.web.context.ContextLoaderListener</listener-class>
</listener>
<servlet-mapping>
<servlet-name>Jersey REST Service</servlet-name>
<url-pattern>/rest/*</url-pattern>
</servlet-mapping>
<servlet>
<servlet-name>Jersey REST Service</servlet-name>
<servlet-class>
org.springframework.web.servlet.DispatcherServlet
</servlet-class>
<load-on-startup>1</load-on-startup>
</servlet>发布于 2014-08-28 08:09:08
不,您不能在春季使用javax.ws.*注释。您可以在spring中使用类似于resteasy的东西。这相当容易。如果你需要,我可以举个例子。(泽西岛和CXF也有良好的JAX实现。)
AFAIK Springsource不知道为JAX提供一个实现。因此,如果您想使用JAX中描述的特性,就不会直接从spring获得它。但是您可以使用spring开发rest web服务。这是另一回事。在这上面发现了一个question。
更新
根据PaulNUK下面的回答,我需要澄清我的答案。休息是一种规范,首先需要有人来实现它。
问题很清楚地问,我们是否可以替换注释,您不能这样做,除非您在类路径中添加像泽西这样的外部依赖项。这个案例的实现是由泽西提供的。
因此,您永远无法使用spring实现的JAX注释。
发布于 2015-03-05 09:18:35
只需将JAX(我正在使用泽西2)注释放在类上,用@Component对该类进行注释,使其成为Spring,就可以使用Spring依赖项注入完全支持JAX-RS。
因此Spring并没有通过实现JAX本身来重新发明轮子,而是非常容易地与泽西集成。
下面是一个简单的Spring引导示例:
http://spring.io/blog/2014/11/23/bootiful-java-ee-support-in-spring-boot-1-2
发布于 2014-08-28 08:42:58
如果您只想使用Spring框架来开发the服务,那么Spring就提供了Spring。Spring有自己的一组注释。例如"@RequestMapping“。Spring甚至不遵守JAX原则。
有各种各样的开源框架(比如泽西),它们支持“JAX”,可以与Spring集成。
不过,为了防止您想将Spring与泽西岛进行比较,下面是比较。我个人支持泽西岛的SPring MVC,因为Spring最初不是用于webservices,而是用于UI应用程序。
嗯..。
https://stackoverflow.com/questions/25543692
复制相似问题