我刚开始使用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
来更改映射。