gpt4 book ai didi

java - Spring 启动 : Determining what autoconfiguration are applied to jersey?

转载 作者:行者123 更新时间:2023-11-29 04:29:24 25 4
gpt4 key购买 nike

按照将 Jersey 添加到 Sring boot 的在线文档,看来我只需要包含以下包

spring-boot-starter-jersey

实际上,它声明 Spring Boot 通过包含此包来提供自动配置。

我在哪里可以找到到底发生了什么?

如果我不添加这个包,那么什么是未配置的?

我在谷歌上搜索了这个包,没有得到具体的解释,只说它会自动配置,但是配置什么?

我想知道更多幕后发生的事情。

最佳答案

Spring Boot 支持的all 的所有自动配置代码都在spring-boot-autoconfigure 中。模块。如果您仔细查看包裹,您会看到 Jersey 包裹。

“启动”模块一般没有任何代码(当然除非是第三方模块)。它的工作原理是自动配置中的代码有一些注释是 @ConditionalOnXxx,其中条件可以是来自类路径上的类的任何内容。如果此类不可用,则不会进行自动配置。这几乎就是添加 jersey starter 模块所做的全部工作:它 adds the jersey dependencies以便应用自动配置器。

现在专门为 Jersey 自动配置的是什么?查看 JerseyAutoConfiguration 的来源.基本上您将看到的是您的 ResourceConfig 被注入(inject)到配置器中。从那个 ResourceConfig,它创建 Jersey 的 ServletContainer(这是 Jersey 的主要入口点。

然后,根据我们的属性配置,FilterRegistrationBeanServletRegistrationBean 被创建为 Spring bean,包装 Jersey 的 ServletContainer。 Jersey 可以创建为 Servlet 或 Servlet Filter。无论我们配置哪个,我们都会使用。

这就是 Jersey 配置。 Spring Boot 将从其他一些自动配置中获取一个 servlet 容器(例如 Tomcat、Jetty),并获取 Filter/ServletRegistrationBean 并将 Servlet/Filter 添加到该 servlet 容器.

此外,并不是那么重要,但自动配置也为我们提供了一些 Jackson 配置助手。例如,而不是 configuring our own ContextResolver ,我们可以只配置一个 ObjectMapper Spring bean。

这就是您真正得到的。没什么了不起的,你不能只是do it yourself不依赖于自动配置。

关于java - Spring 启动 : Determining what autoconfiguration are applied to jersey?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44437224/

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