Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/336.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java GET请求的Spring注释_Java_Spring_Spring Mvc - Fatal编程技术网

Java GET请求的Spring注释

Java GET请求的Spring注释,java,spring,spring-mvc,Java,Spring,Spring Mvc,这两种类型的spring-GET方法之间有什么区别?哪一种是首选方法 @Component @Scope("request") @Path("/") public class TestComponent { @GET @Path("/hello") public String printHello() { return "hello"; } } vs 第一种方法是JAX-RS方法,它与任何JAX-RS实现都兼容 第二个使用SpringMVC

这两种类型的spring-GET方法之间有什么区别?哪一种是首选方法

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

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


第一种方法是JAX-RS方法,它与任何JAX-RS实现都兼容

第二个使用SpringMVC注释,并且仅与SpringMVC兼容

这两种类型的spring GET方法有什么区别?

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

另一个,第一个
@GET@Path(“/hello”)
,实际上是一个JAX-RSGET规范,您将需要一个JAX-RS规范来实现它

它们之间的主要区别不仅在于“GET”,还在于总体框架。已经有人介绍了JAX-RS和Spring MVC RESTful之间的区别

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

哪种方法是首选方法?

SpringMVC的RESTful将更紧密地集成到Spring框架中

JAX-RS将遵循JavaEE实现,集成将使完整的JavaEE环境受益

您还可以“合并”Spring和JavaEE。有一些连接器可以集成Spring和JAX-RS,这样您就可以从中获益。看

因此,首选的方法取决于。一般来说:

  • 如果您在完整的JavaEE容器(如JBoss或Glassfish)中运行,请使用JAX-RS方法。JAX-RS的实现将已经在环境中可用
  • 如果您在SpringIOC中运行,并且希望与JavaEE保持分离,请使用SpringMVC RESTful方法
  • 如果您使用的是javaeeweb概要文件,比如Tomcat,那么您必须根据特定的标准来决定,比如您将使用哪个接口框架,并且为此目的您正在构建应用程序
我发现在Tomcat中配置和设置Spring更容易,但这是我的观点。另外,Spring异常处理
@ControllerAdvice
@ExceptionHandler
完美地解决了我的RESTful JSON处理问题,满足了我的需要,但JAX-RS可能也有类似的功能


最后,我认为您应该主要基于您将要运行的环境来定义RESTful框架(JAX-RS、Spring,甚至其他框架),同时还要考虑到您的项目将需要的所有集成和资源。

第一个是使用Spring IoC来管理资源(
@Component
@Scope
),但是JAX-RS实现使用对象。
@Controller
public class TestController {

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