File tree Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Expand file tree Collapse file tree 1 file changed +6
-6
lines changed Original file line number Diff line number Diff line change 2
2
3
3
Spring Boot自动配置总是尝试尽最大努力去做正确的事,但有时候会失败并且很难说出失败原因。
4
4
5
- 在每个Spring Boot ` ApplicationContext ` 中都存在一个相当有用的 ` ConditionEvaluationReport ` 。如果开启` DEBUG ` 日志输出,你将会看到它。如果你使用` spring-boot-actuator ` ,则会有一个 ` autoconfig ` 的端点 ,它将以JSON形式渲染该报告。可以使用它调试应用程序,并能查看Spring Boot运行时都添加了哪些特性(及哪些没添加)。
5
+ 在每个Spring Boot ApplicationContext中都存在一个相当有用的ConditionEvaluationReport 。如果开启` DEBUG ` 日志输出,你将会看到它。如果你使用` spring-boot-actuator ` ,则会有一个autoconfig的端点 ,它将以JSON形式渲染该报告。可以使用它调试应用程序,并能查看Spring Boot运行时都添加了哪些特性(及哪些没添加)。
6
6
7
7
通过查看源码和javadoc可以获取更多问题的答案。以下是一些经验:
8
8
9
9
* 查找名为` *AutoConfiguration ` 的类并阅读源码,特别是` @Conditional* ` 注解,这可以帮你找出它们启用哪些特性及何时启用。
10
- 将` --debug ` 添加到命令行或添加系统属性` -Ddebug ` 可以在控制台查看日志,该日志会记录你的应用中所有自动配置的决策。在一个运行的Actuator app中,通过查看 ` autoconfig ` 端点 (` /autoconfig ` 或等效的JMX)可以获取相同信息。
11
- * 查找是` @ConfigurationProperties ` 的类(比如[ ServerProperties] ( http://github.com/spring-projects/spring-boot/tree/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerProperties.java ) )并看下有哪些可用的外部配置选项。` @ConfigurationProperties ` 类有一个用于充当外部配置前缀的 ` name ` 属性 ,因此` ServerProperties ` 的值为` prefix="server" ` ,它的配置属性有` server.port ` ,` server.address ` 等。在运行的Actuator应用中可以查看 ` configprops ` 端点 。
12
- * 查看使用 ` RelaxedEnvironment ` 明确地将配置从 ` Environment ` 暴露出去 。它经常会使用一个前缀。
13
- * 查看` @Value ` 注解,它直接绑定到 ` Environment ` 。相比 ` RelaxedEnvironment ` ,这种方式稍微缺乏灵活性,但它也允许松散的绑定,特别是OS环境变量(所以` CAPITALS_AND_UNDERSCORES ` 是` period.separated ` 的同义词)。
14
- * 查看` @ConditionalOnExpression ` 注解,它根据SpEL表达式的结果来开启或关闭特性,通常使用解析自 ` Environment ` 的占位符进行计算 。
10
+ 将` --debug ` 添加到命令行或添加系统属性` -Ddebug ` 可以在控制台查看日志,该日志会记录你的应用中所有自动配置的决策。在一个运行的Actuator app中,通过查看autoconfig端点 (` /autoconfig ` 或等效的JMX)可以获取相同信息。
11
+ * 查找是` @ConfigurationProperties ` 的类(比如[ ServerProperties] ( http://github.com/spring-projects/spring-boot/tree/master/spring-boot-autoconfigure/src/main/java/org/springframework/boot/autoconfigure/web/ServerProperties.java ) )并看下有哪些可用的外部配置选项。` @ConfigurationProperties ` 类有一个用于充当外部配置前缀的name属性 ,因此` ServerProperties ` 的值为` prefix="server" ` ,它的配置属性有` server.port ` ,` server.address ` 等。在运行的Actuator应用中可以查看configprops端点 。
12
+ * 查看使用RelaxedEnvironment明确地将配置从Environment暴露出去 。它经常会使用一个前缀。
13
+ * 查看` @Value ` 注解,它直接绑定到Environment。相比RelaxedEnvironment ,这种方式稍微缺乏灵活性,但它也允许松散的绑定,特别是OS环境变量(所以` CAPITALS_AND_UNDERSCORES ` 是` period.separated ` 的同义词)。
14
+ * 查看` @ConditionalOnExpression ` 注解,它根据SpEL表达式的结果来开启或关闭特性,通常使用解析自Environment的占位符进行计算 。
15
15
You can’t perform that action at this time.
0 commit comments