<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ThinkChat2.0新版上線,更智能更精彩,支持會話、畫圖、視頻、閱讀、搜索等,送10W Token,即刻開啟你的AI之旅 廣告
                # 68.2 解決自動配置問題 ### 68.2 解決自動配置問題 Spring Boot自動配置總是嘗試盡最大努力去做正確的事,但有時候會失敗并且很難說出失敗原因。 在每個Spring Boot `ApplicationContext`中都存在一個相當有用的`ConditionEvaluationReport`。如果開啟`DEBUG`日志輸出,你將會看到它。如果你使用`spring-boot-actuator`,則會有一個`autoconfig`的端點,它將以JSON形式渲染該報告。你還可以使用它調試應用程序,并能查看Spring Boot運行時都添加了哪些特性(及哪些沒添加)。 通過查看源碼和javadoc可以獲取更多問題的答案,以下是一些經驗: - 查找名為`*AutoConfiguration`的類并閱讀源碼,特別是`@Conditional*`注解,這可以幫你找出它們啟用哪些特性及何時啟用。 將`--debug`添加到命令行或添加系統屬性`-Ddebug`可以在控制臺查看日志,該日志會記錄你的應用中所有自動配置的決策。在運行Actuator的app中,通過查看`autoconfig`端點(`/autoconfig`或等效的JMX)可以獲取相同信息。 - 查找`@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`端點。 - 查看`RelaxedPropertyResolver`明確地將配置從`Environment`暴露出去,它經常會使用前綴。 - 查看`@Value`注解,它直接綁定到`Environment`。相比`RelaxedPropertyResolver`,這種方式稍微缺乏靈活性,但它也允許松散的綁定,特別是OS環境變量(所以`CAPITALS_AND_UNDERSCORES`是`period.separated`的同義詞)。 - 查看`@ConditionalOnExpression`注解,它根據SpEL表達式的結果來開啟或關閉特性,通常使用解析自`Environment`的占位符進行計算。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看