<kbd id="afajh"><form id="afajh"></form></kbd>
<strong id="afajh"><dl id="afajh"></dl></strong>
    <del id="afajh"><form id="afajh"></form></del>
        1. <th id="afajh"><progress id="afajh"></progress></th>
          <b id="afajh"><abbr id="afajh"></abbr></b>
          <th id="afajh"><progress id="afajh"></progress></th>

          為什么不推薦在Spring Boot中使用@Value加載配置

          共 1909字,需瀏覽 4分鐘

           ·

          2024-05-21 08:30

          @Value注解相信很多Spring Boot的開發(fā)者都已經(jīng)有接觸了,通過使用該注解,我們可以快速的把配置信息加載到Spring的Bean中。

          比如下面這樣,就可以輕松的把配置文件中key為com.didispace.title配置信息加載到TestService中來使用

          @Service
          public class TestService {

              
              @Value("${com.didispace.title}")
              private String title;

          }

          這個注解可以說非常的好用!但是為什么不推薦大家使用它呢?核心原因是:當我們使用@Value來直接提取配置信息使用的時候,會產(chǎn)生配置信息加載的碎片化。比如,同一個配置,可能背多個Service或者Controller使用,當我們再要修改它的時候,就會存在一個遺漏的風(fēng)險。我們無法方便的維護這些配置加載而導(dǎo)致一些問題。

          那么,如果不使用@Value,我們應(yīng)該用什么來替代呢?

          我比較推薦的就是使用@ConfigurationProperties來分類和加載各種配置信息,比如,我要加載關(guān)于com.didispace的相關(guān)配置時候,就寫一個這樣的實現(xiàn):

          @Configuration
          @ConfigurationProperties(prefix = "com.didispace")
          public class DidispaceProperties {

              private String title;

          }

          這個DidispaceProperties就會加載com.didispace開頭的配置。其他Service或者Controller要使用這些配置的時候,就通過注入DidispaceProperties就也可以了。如果要修改配置相關(guān)的邏輯,也只需要修改DidispaceProperties中的內(nèi)容即可,而不是到處找@Value的配置。

          另外,在這里,其實還可以增加對配置的校驗,主要在pom.xml中引入spring-boot-starter-validation模塊。然后修改配置類,增加@Validated注解和具體校驗注解,比如:

          @Validated
          @Configuration
          @ConfigurationProperties(prefix = "com.didispace")
          public class DidispaceProperties {

            @NotNull
            private String title;

          }

          這就輕松實現(xiàn)配置的校驗了,是不是很方便呢?

          今天的分享就到這里,如果本文對你有幫助,歡迎一鍵三連。

          我們創(chuàng)建了一個高質(zhì)量的技術(shù)交流群,與優(yōu)秀的人在一起,自己也會優(yōu)秀起來,趕緊點擊加群,享受一起成長的快樂。




          你還在購買國內(nèi)的各種昂貴又低質(zhì)的技術(shù)教程嗎?這里給大家推薦下我們自研的Youtube視頻語音轉(zhuǎn)換插件(https://youtube-dubbing.com/),一鍵外語轉(zhuǎn)中文,英語不好的小伙伴也可以輕松的學(xué)習(xí)油管上的優(yōu)質(zhì)教程了,下面是演示視頻,可以直觀的感受一下:
          如果您覺得這款插件不錯,也可以推薦給您身邊的朋友,目前我們開通了分享賺錢功能,只要安裝本插件登錄注冊之后,獲取邀請鏈接,放到你的博客側(cè)邊欄、友情鏈接或者發(fā)到朋友圈、微博、X等社交平臺,就能獲得積分,積分現(xiàn)在是可以i直接提現(xiàn)的哦~



          推薦閱讀

          Java 經(jīng)典《Core Java》速學(xué)版來了!
          三個實用開源項目工具:無代碼編輯器
          JetBrains 全家桶 2024 首個大版本更新
          如何在 Java 中讀取處理超過內(nèi)存大小的文件

          點擊閱讀原文,直達Java新特性專欄

          瀏覽 562
          1點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          評論
          圖片
          表情
          推薦
          1點贊
          評論
          收藏
          分享

          手機掃一掃分享

          分享
          舉報
          <kbd id="afajh"><form id="afajh"></form></kbd>
          <strong id="afajh"><dl id="afajh"></dl></strong>
            <del id="afajh"><form id="afajh"></form></del>
                1. <th id="afajh"><progress id="afajh"></progress></th>
                  <b id="afajh"><abbr id="afajh"></abbr></b>
                  <th id="afajh"><progress id="afajh"></progress></th>
                  黄色骚逼 | 亚洲无 码A片在线 | 91av-91av在线盒子 | www亚洲无 码A片 | 午夜AA |