当前位置: 首页 > 面试题库 >

Spring Restfull Jax-RS注释支持

阙庆
2023-03-14
问题内容

我有以下class和web.xml文件。spring框架是否支持jax-rs注释,如@PATH@PUT@Consumes…等。

换句话说我可以@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>

问题答案:

不,您不能javax.ws.*在春季使用批注。您可以resteasy在spring上使用类似的东西。这很容易。如果需要,我可以提供一个示例。(Jersey和CXF也具有良好的JAX-
RS实现。)

AFAIK Springsource不知道要提供JAX-RS的实现。因此,如果您想使用JAX-
RS中描述的功能,则不会直接从spring获得。但是您可以使用spring开发rest
Web服务。那是个不同的故事。在SO上发现了一个问题。

更新资料

根据下面PaulNUK的答案,我需要澄清我的答案。一天结束时休息是一个规范,首先需要有人实现它。

问题清楚地问,除非您将 classJersey这样 的外部依赖项添加 到类路径中 ,否则我们是否 可以替换注释,您不能这样做
。该案例实现由Jersey提供。

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



 类似资料:
  • 我对Jackson注释有一个问题,在《大部头1》中似乎被忽略了。我使用Jackson将REST响应序列化为JSON。我打开了设置: openejb。cxf。jax-rs.providers=org。科德豪斯。杰克逊。jaxrs。JacksonJsonProvider在系统中。属性 Jackson序列化工作正常,除了所有似乎被完全忽略的Jackson注释。事件像@JsonIgnore或@JsonPr

  • 我有一个抽象类,它声明了方法: 然后一个类实现该方法: 更新: 我从零开始使用Java EE7,这很有效。

  • JAX-RS 具有 HTTP 谓词的注释()和 (),但没有注释。如何为 HTTP 动词添加注释? 如下所示:

  • 静态编程语言是否支持像这样的java注释,因为我无法让它工作。我可以用注释颜色,但实际上没有得到该注释的lint检查。 例子 传递,不显示线头。应使用R颜色显示皮棉。colorPrimary,不与

  • 问题内容: 我可以在文件中保留这样的嵌入式注释吗? 我不希望在CSS输出中使用此注释。 问题答案: 在SASS中要考虑两种不同类型的注释。 单行注释将由.scss预处理器删除,并且不会出现在.css文件中。 多行注释是有效的CSS,在从.scss到您的.css文件的转换之间将保留*。 听起来内联注释是您想要的。

  • 我看到一个例子解释了Kotlin JVM的KATP,它正在工作。 我想知道它是否支持Kotlin JS?有什么例子吗?