Spring 启动:确定哪些自动配置应用于球衣?
Spring Boot: Determining what autoconfiguration are applied to jersey?
按照将球衣添加到 Sring 靴子的在线文档,看来我只需要包含以下包
spring-boot-starter-jersey
实际上,它声明 Spring Boot 通过包含此包提供自动配置。
我在哪里可以找到到底发生了什么?
如果我不添加这个包,那么什么是未配置的?
我在google里找了包,没有具体的解释,只说是自动配置,配置什么?
我想知道更多幕后发生的事情。
我建议多了解一下 Spring Boot 如何工作以提供一般的自动配置。
spring 引导参考指南是一个很好的参考。 http://docs.spring.io/spring-boot/docs/1.5.3.RELEASE/reference/htmlsingle/#common-application-properties
您可以查看附录 A 中的常见应用程序属性,了解所有 spring 允许您立即配置的内容。
如果您在页面上搜索,参考指南还提供了高级内容 "spring-boot-starter-jersey"。
他们还有一些示例,您可以通过这些示例进行调试,如果您愿意的话,可以继续进行调试。
希望能给你一个学习的起点!
Spring Boot 支持的 all 的所有自动配置代码都在 spring-boot-autoconfigure 模块中。如果你仔细查看包裹,你会看到球衣包裹。
"starter"模块一般是没有任何代码的(当然除非是第三方模块)。它的工作原理是自动配置中的代码有一些注释 @ConditionalOnXxx
,其中条件可以是来自 class 在 class 路径上的任何内容。如果此 class 不可用,则不会进行自动配置。这几乎就是添加 jersey starter 模块所做的全部工作:它 adds the jersey dependencies 以便应用自动配置器。
现在专门为 Jersey 自动配置的是什么?查看 JerseyAutoConfiguration
的来源。基本上你将看到的是你的 ResourceConfig
被注入到配置器中。从那个 ResourceConfig
,它创建 Jersey 的 ServletContainer
(这是 Jersey 的主要入口点。
然后,根据我们的属性配置,创建 FilterRegistrationBean
或 ServletRegistrationBean
作为 Spring bean,包装 Jersey 的 ServletContainer
。 Jersey 可以创建为 Servlet 或 Servlet Filter。我们配置哪个就用哪个。
这就是 Jersey 配置。 Spring 启动将从其他一些自动配置中获取一个 servlet 容器(例如 Tomcat、Jetty),然后获取 Filter/ServletRegistrationBean
并将 Servlet/Filter
添加到该 servlet 容器。
此外,并不是那么重要,但是自动配置也给了我们一些 Jackson 配置助手。例如,我们可以只配置一个 ObjectMapper
Spring bean,而不是 。
这就是您所得到的。没有什么了不起的,你不能不依赖自动配置就 do it yourself。
按照将球衣添加到 Sring 靴子的在线文档,看来我只需要包含以下包
spring-boot-starter-jersey
实际上,它声明 Spring Boot 通过包含此包提供自动配置。
我在哪里可以找到到底发生了什么?
如果我不添加这个包,那么什么是未配置的?
我在google里找了包,没有具体的解释,只说是自动配置,配置什么?
我想知道更多幕后发生的事情。
我建议多了解一下 Spring Boot 如何工作以提供一般的自动配置。
spring 引导参考指南是一个很好的参考。 http://docs.spring.io/spring-boot/docs/1.5.3.RELEASE/reference/htmlsingle/#common-application-properties
您可以查看附录 A 中的常见应用程序属性,了解所有 spring 允许您立即配置的内容。
如果您在页面上搜索,参考指南还提供了高级内容 "spring-boot-starter-jersey"。
他们还有一些示例,您可以通过这些示例进行调试,如果您愿意的话,可以继续进行调试。
希望能给你一个学习的起点!
Spring Boot 支持的 all 的所有自动配置代码都在 spring-boot-autoconfigure 模块中。如果你仔细查看包裹,你会看到球衣包裹。
"starter"模块一般是没有任何代码的(当然除非是第三方模块)。它的工作原理是自动配置中的代码有一些注释 @ConditionalOnXxx
,其中条件可以是来自 class 在 class 路径上的任何内容。如果此 class 不可用,则不会进行自动配置。这几乎就是添加 jersey starter 模块所做的全部工作:它 adds the jersey dependencies 以便应用自动配置器。
现在专门为 Jersey 自动配置的是什么?查看 JerseyAutoConfiguration
的来源。基本上你将看到的是你的 ResourceConfig
被注入到配置器中。从那个 ResourceConfig
,它创建 Jersey 的 ServletContainer
(这是 Jersey 的主要入口点。
然后,根据我们的属性配置,创建 FilterRegistrationBean
或 ServletRegistrationBean
作为 Spring bean,包装 Jersey 的 ServletContainer
。 Jersey 可以创建为 Servlet 或 Servlet Filter。我们配置哪个就用哪个。
这就是 Jersey 配置。 Spring 启动将从其他一些自动配置中获取一个 servlet 容器(例如 Tomcat、Jetty),然后获取 Filter/ServletRegistrationBean
并将 Servlet/Filter
添加到该 servlet 容器。
此外,并不是那么重要,但是自动配置也给了我们一些 Jackson 配置助手。例如,我们可以只配置一个 ObjectMapper
Spring bean,而不是
这就是您所得到的。没有什么了不起的,你不能不依赖自动配置就 do it yourself。