gpt4 book ai didi

java - JAX-RS + Spring

转载 作者:太空宇宙 更新时间:2023-11-04 13:34:35 25 4
gpt4 key购买 nike

我正在学习 Spring 并尝试制作简单的 SOA 项目,并且我有简单的测试类:

@Path("/hello")
public class HelloWorldResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
public String sayhello() { return "hello"};
}

但我想要 JAX-RS 的接口(interface)和一些自动注入(inject)的实现:

@Path("/hello")
public interface HelloWorldResource {
@GET
@Produces(MediaType.TEXT_PLAIN)
String sayhello();
}

public class HelloWorldImpl implements HelloWorldResource {
@Override
public String sayhello() {
return "hello";
}
}

而且我知道在 Java EE 中我可以用一个注释来做到这一点(例如@Stateless)但是我怎样才能用 Spring 4+ 做同样的事情呢?

最佳答案

这篇文章做了一些假设:

  1. 我假设您已经设置了资源发现,即您的 servlet 正确地将 /hello 路由到 HelloWorldResource
    如果这对您没有任何意义,您将需要考虑向 servlet 容器注册 Jax-RS 资源。
  2. 我假设您已经通过在 web.xml 中注册 org.springframework.web.context.ContextLoaderListener 来设置 Spring 上下文。

您需要将您的 HelloWorldImpl 标记为由 spring 发现。最简单的方法是在 spring context.xml 中启用注释处理(通过将其作为 contextConfigLocation 传递给 ContextLoaderListener 来加载)。

然后,用 @Controller 标记 HelloWorldImpl 并在 context.xml 中将其声明为 bean 就足够了。

关于java - JAX-RS + Spring ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31839511/

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