首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >RS注释支持

RS注释支持
EN

Stack Overflow用户
提问于 2014-08-28 08:00:10
回答 3查看 18.9K关注 0票数 15

我有下面的类和web.xml文件。spring框架是否支持@PATH@PUT@Consumes...etc等jax-rs注释?

换句话说,我可以使用@PATH而不是@RequestMapping吗?

Java:

代码语言:javascript
复制
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

代码语言:javascript
复制
    <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>
EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-08-28 08:09:08

不,您不能在春季使用javax.ws.*注释。您可以在spring中使用类似于resteasy的东西。这相当容易。如果你需要,我可以举个例子。(泽西岛和CXF也有良好的JAX实现。)

AFAIK Springsource不知道为JAX提供一个实现。因此,如果您想使用JAX中描述的特性,就不会直接从spring获得它。但是您可以使用spring开发rest web服务。这是另一回事。在这上面发现了一个question

更新

根据PaulNUK下面的回答,我需要澄清我的答案。休息是一种规范,首先需要有人来实现它。

问题很清楚地问,我们是否可以替换注释,您不能这样做,除非您在类路径中添加像泽西这样的外部依赖项。这个案例的实现是由泽西提供的。

因此,您永远无法使用spring实现的JAX注释。

票数 11
EN

Stack Overflow用户

发布于 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

票数 6
EN

Stack Overflow用户

发布于 2014-08-28 08:42:58

如果您只想使用Spring框架来开发the服务,那么Spring就提供了Spring。Spring有自己的一组注释。例如"@RequestMapping“。Spring甚至不遵守JAX原则。

有各种各样的开源框架(比如泽西),它们支持“JAX”,可以与Spring集成。

不过,为了防止您想将Spring与泽西岛进行比较,下面是比较。我个人支持泽西岛的SPring MVC,因为Spring最初不是用于webservices,而是用于UI应用程序。

  1. 不支持多个@控制器中相同的相对路径
  2. @ExceptionHandler是以控制器为中心的
  3. 标准内容协商不能以固定响应类型(SPR-6937)作出响应。
  4. JSR 303 bean验证未应用于@控制器(SPR-6928,计划为3.1)
  5. 不使用Spring格式化程序注释的格式化响应(即日期)
  6. 您不能从异常处理程序中返回bean,并期望它根据传入的接受头自动序列化为xml或json。

嗯..。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25543692

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档