gpt4 book ai didi

java - GET 请求的 Spring 注解

转载 作者:行者123 更新时间:2023-12-03 19:10:58 25 4
gpt4 key购买 nike

这两种spring GET方法有什么区别?哪种方法是首选?

@Component
@Scope("request")
@Path("/")
public class TestComponent {

@GET
@Path("/hello")
public String printHello() {
return "hello";
}
}

对比

@Controller
public class TestController {

@RequestMapping(value = "/hello", method = RequestMethod.GET)
public String printHello() {
return "hello"
}
}

最佳答案

What is the difference between these two types of spring GET methods?

您发布的两个示例中只有一个是实际的 Spring GET,这是第二个 @RequestMapping(value = "/hello", method = RequestMethod.GET) 注释。它是一个 Spring MVC 实现。

另一个,第一个 @GET @Path("/hello"),实际上是一个 JAX-RS GET 规范,你需要一个 implementation JAX-RS 使其工作。

它们之间的主要区别不仅在于“GET”,还在于整体框架。已经有 detailed articles like this one 涵盖了 JAX-RS 和 Spring MVC RESTful 之间的差异。

由于 REST 不是一个正式的规范,它的实现可能因供应商的不同而略有不同,但概念是相同的。

Which one is the preferred method?

Spring MVC 的 RESTful 将更紧密地集成到 Spring Framework 中。

JAX-RS 将遵循 Java EE 实现,集成将有利于完整的 Java EE 环境。

您还可以“合并”Spring 和 Java EE。有些连接器可以集成 Spring 和 JAX-RS,因此您可以从中受益。参见 this example

所以首选方法取决于。一般来说:

  • 如果您在完整的 Java EE 容器(如 JBoss 或 Glassfish)中运行,请使用 JAX-RS 方法。 JAX-RS 的实现将在环境中可用。
  • 如果您在 Spring IoC 中运行并且想脱离 Java EE,请使用 Spring MVC RESTful 方法。
  • 如果您使用的是 Java EE Web 配置文件,例如 Tomcat,您将必须根据特定标准来决定,例如您将使用哪个界面框架,并为此构建应用程序。

我发现 Spring 在 Tomcat 中更容易配置和设置,但这是我的看法。此外,Spring 异常处理 @ControllerAdvice@ExceptionHandler 完美地解决了我的 RESTful JSON 处理问题,但也许 JAX-RS 也有类似的东西。

作为最后的陈述,我认为您应该主要根据您要运行的环境来定义您的 RESTful 框架(JAX-RS、Spring 或什至其他框架),但也要考虑您要进行的所有集成和资源需要您的项目。

关于java - GET 请求的 Spring 注解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23794936/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com