我刚开始使用Spring Boot,我想实现ResourceConfig,发现一些矛盾的想法。

采取以下

@Component
public class JerseyExampleConfig extends ResourceConfig {


上面用COMPONENT注释

@Configuration
public class JerseyExampleConfig extends ResourceConfig {


哪一个是正确的?

我认为用Configuration注释是正确的方法,但似乎在示例中使用了Component。

有任何想法吗 ?

有什么不同?

最佳答案

documentation建议@Component


  要开始使用Jersey 2.x,只需将spring-boot-starter-jersey作为依赖项,然后需要一个@Bean类型的ResourceConfig在其中注册所有端点:
  
  

@Component
public class JerseyConfig extends ResourceConfig {

    public JerseyConfig() {
        register(Endpoint.class);
    }
}



documentation还表示以下内容:


  您还可以注册任意数量的实现ResourceConfigCustomizer的bean,以进行更高级的自定义。
  
  所有已注册的端点应为带有HTTP资源注释的@Component@GET等),例如
  
  
@Component
@Path("/hello")
public class Endpoint {

    @GET
    public String message() {
        return "Hello";
    }
}

  
  由于Endpoint是Spring @Component,其生命周期由Spring管理,因此您可以@Autowired依赖项并使用@Value注入外部配置。默认情况下,Jersey servlet将被注册并映射到/*。您可以通过将@ApplicationPath添加到ResourceConfig来更改映射。

07-26 00:54