① 修改spring scope的默認配置
可以修改的,在每個spring的xml配置文件的開頭處(spring支持多文件配置),<beans>標記內修改你需要的屬性,則此屬性將對該文件下的所有<bean>生效。如果底下某個bean想要特立的屬性,比如<beans>聲明為prototype,而某個bean想要聲明為singleton,則在該<bean/>的配置內加上singleton=true即可
② Spring裡面applicationContext.xml文件能不能改成其他文件名
可以,你在web.xml 配置
<context-param>
<param-name>contextConfigLocation</param-name>
<param-value>
classpath*:/applicationContext*.xml <!-- spring bean文件所在路徑 -->
</param-value>
</context-param>
去查找你自定義的bean文件就行。
③ Spring Boot | 配置文件
創建 Spring Boot 項目默認會在 src/main/resources 目錄下生成一個全局配置文件 application.properties 。全局配置文件的作用是對一些默認配置進行修改。
Spring Boot 的參數配置除了使用 properties 文件之外,還可以使用 yml 文件。如果你喜歡用 yml 格式的配置文件可以將 application.properties 修改為 application.yml 。
Spring Boot 應用程序有多種設置途徑。Spring Boot 能從多種屬性源獲得屬性,包括如下幾處:
這個列表按照優先順序排序,也就是說,任何在高優先順序屬性源里設置的屬性都會覆蓋低優先順序屬性源里設置的相同屬性。例如,命令行參數會覆蓋其它屬性源里的屬性。
application.properties 和 application.yml 文件能放下如下四個位置:
同樣,這個列表也是按照優先順序排序。也就是說,/config 子目錄里 application.properties 會覆蓋應用程序 classpath 里的 application.properties 中的相同屬性。
④ Spring的配置文件必須叫applicationContext.xml或applicationContext.xml-xxx嗎
當然不需要,你可以在web.xml中指定任何你想要的名稱甚至路徑
⑤ Spring Boot 第二彈,配置文件詳解-史上最全
Spring Boot 官方 提供了兩種常用的配置文件格式,分別是 properties 、 YML 格式。相比於 properties 來說, YML 更加年輕,層級也是更加分明。 強烈推薦使用 YML 格式
Spring Boot項目 啟動會掃描以下位置的 application.properties 或者 application.yml 作為默認的配置文件.
徒手撕源碼
內部類Loader的load方法
getSearchLocations()方法
asResolvedSet()
下面給出優先順序 從高到低 的配置文件排列順序:
以設置應用埠為例 初體驗Spring Boot配置文件
properties後綴結尾(application.properties)
yml/yaml後綴結尾(application.yml/application.yaml)
數字,字元串,布爾,日期
對象、Map
數組
數字,字元串,布爾,日期
對象、Map
數組
@ConfigurationProperties(prefix = "person")詳解
標注在類上
標注在方法上
綜上所述
@ConfigurationProperties 註解能夠輕松的讓配置文件跟實體類綁定在一起。
值得關注的是: @ConfigurationProperties 這個註解僅僅是支持從 Spring Boot的默認配置文件 中取值,也就是 application.properties 、 application.yml 、 application.yaml ,那我們如何從自定義配置文件取值呢???
別著急,有解決辦法,那就是再加一個註解: @PropertySource(value = "classpath:custom-profile.properties") ,下面會有對 @PropertySource 註解的介紹。請耐心往下面看。
使用@PropertySource註解
對應配置文件
創建兩個配置文件 custom-profile.yml、custom-profile1.yml ,如下去引入。
我們可以通過控制變數法進行測試,具體過程我這里就不贅述了。
直接說 結論 吧: Spring載入順序 為 從左到右順序載入 ,後載入的會 覆蓋 先載入的屬性值。
另外需要注意的是 : @PropertySource 默認載入 xxx.properties類型 的配置文件,不能載入 YML格式 的配置文件。如何解決呢?下面來解決這一問題
對應配置文件:
編寫PropertiesController
擴展功能
application.yml 主配置文件
application-dev.yml 開發配置文件
application-prod.yml 生產配置文件
application-test.yml 測試配置文件
(1)主配置文件:配置激活選項
(2)其他配置文件:指定屬於哪個環境(同yml,只不過表現形式是 key=value 的,三個配置文件分別是: application-dev.properties , application-prod.properties , application-test.properties )
無論是使用上述 多文檔塊 的方式,還是新建 application-test.yml 文件,都可以在配置文件中指定 spring.profiles.active=test 激活指定的profile。
感謝閱讀小生文章。祝大家早日富可敵國,實現財富自由。
寫文不易 ,一定要 點贊、評論、收藏哦 , 感謝感謝感謝!!!
⑥ springboot項目改名後會影響運行嗎
不會,springboot項目改名後不會影響運行的。希望可以幫到您。
⑦ SpringBoot的自定義配置
SpringBoot免除了項目中大部分的手動配置,對一些特定情況,我們可以通過修改全局配置文件以適應具體生產環境,可以說,幾乎所有的配置都可以寫在application.properties文件中,SpringBoot會自動載入全局配置文件,從而免除我們手動載入的煩惱。但是,如果我們自定配置文件,SpringBoot是無法識別這些配置文件的,此時就需要我們手動載入。接下來,將針對SpringBoot的自定義配置文件及其載入方式進行講解。
對於這種載入自定義配置文件的需求,可以使用@PropertySource註解結合@Configuration註解配置類的方式來實現。@PropertySource註解用於指定自定義配置文件的具體位置和名稱。同時,為了保證SpringBoot能夠掃描該註解,還需要類添加@Configuartion註解將實體類作為自定義配置類。
當然,如果需要將自定義配置文件中的屬性值注入到對應類的屬性中,可以使用@ConfigurationProperties或者@Value註解進行屬性值注入
打開SpringBoot項目的resources目錄,在項目的類路徑下新建一個test.properties自定義配置文件,在該配置文件中編寫需要的配置屬性
在com.david.pojo包下新創建一個配置類MyProperties,提供 test.properties 自定義配置文件中對應的屬性,並根據@PropertySource註解的使用進行相關配置
主要是一個自定義配置類,通過相關註解引入了自定的配置文件,並完成了自定義屬性值的注入。針對示例中的幾個註解,具體說明如下:
1)@Confiruation註解表示當前類是一個自定義配置類,並添加為Spring容器的組件,這里也可以使用傳統的@Component註解
2)@PropertySource("classpath:properties")註解指定了自定義配置文件的位置和名稱,此示例表示自定義配置文件為classpath類路徑下的 test.properties 文件
3)@ConfigurationProperties(prefix="test")註解將上述自定義配置文件 test.properties 中以test開頭的屬性值注入到該配置類屬性中
4)如果配置類上使用的是@Componnet註解而非@Configuration註解,那麼@EnableConfigurationProperties註解還可以省略
在SpringBoot框架中,推薦使用配置類的方式向容器中添加和配置組件
在SpringBoot框架中,通常使用@Configuration註解定義一個配置類,SpringBoot會自動掃描和識別配置類,從而替換傳統Spring框架中的XML配置文件。
當定義一個配置類後,還需要在類中的方法上使用@Bean註解進行組件配置,將方法的返回對象注入到Spring容器中,並且組件名稱默認使用的是方法名,當然也可以使用@Bean註解的name或value屬性自定義組件的名稱
在項目下新建一個
⑧ 如何修改spring boot應用程序的配置文件
Spring Boot 是 Spring 產品中一個新的子項目,致力於簡便快捷地搭建基於 Spring 的獨立可運行的應用。大多數的 Spring Boot 應用只需要非常少的 Spring 配置。 你能夠使用 Spring Boot 創建 java 應用並通過 java -jar 來運行或者創建傳統的通...
⑨ springcloud-config client配置文件為什麼要用bootstrap命名
這是由spring boot的載入屬性文件的優先順序決定的,你想要在載入屬性之前去spring cloud config server上取配置文件,那spring cloud config相關配置就是需要最先載入的,而bootstrap.properties的載入是先於application.properties的,所以config client要配置config的相關配置就只能寫到bootstrap.properties里了
⑩ SpringBoot 配置文件詳解(告別XML)
快速學會和掌握 SpringBoot 的 核心配置文件的使用。
SpringBoot 提供了豐富的 外部配置 ,常見的有:
其中核心配置文件我們並不陌生,主要以Key-Value的形式進行配置,其中屬性Key主要分為兩種:
在 application.properties 添加配置如下:
① 添加數據源信息
在 application.propertis 添加配置如下:
① 添加認證信息,其中 socks.indentity.* 是自定義的屬性前綴。
② 添加隨機值,其中spring.test.* 是自定義的屬性前綴。
使用方法: @ConfigurationProperties(prefix = "spring.datasource")
使用說明:提供 Setter方法 和 標記組件 Component
如何驗證是否成功讀取配置?答:這里可以簡單做個驗證,注入 MyDataSource ,使用 Debug 模式可以看到如下信息:
使用方法: @Value("spring.datasource.*")
使用說明:提供 Setter方法 和 標記組件 Component
注意事項:@Value不支持注入靜態變數,可間接通過Setter注入來實現。
關於兩者的簡單功能對比:
顯然,前者支持松綁定的特性更強大,所以在實際開發中建議使用@ConfigurationProperties來讀取自定義屬性。
SpringBoot 默認會載入這些路徑載入核心配置文件,按優先順序從高到低進行排列:具體規則詳見 ConfigFileApplicationListener
如果存在多個配置文件,則嚴格按照優先順序進行覆蓋,最高者勝出:
舉個簡單的例子,例如再上述位置都有一個application.properties ,並且每個文件都寫入了server.port=xx (xx分別是9001,9002,9003,9004),在啟動成功之後,最終應用的埠為:9004。圖例:
如果想修改默認的載入路徑 或者 調改默認的配置文件名,我們可以藉助命令行參數進行指定,例如:
YAML是JSON的一個超集,是一種可輕松定義層次結構的數據格式。
答: 因為配置文件這東西,結構化越早接觸越規范越好。這里推薦閱讀阮一峰老師寫的 YAML語言教程 ,寫的很簡單明了。
引入依賴: 在POM文件引入 snakeyaml 的依賴。
使用說明: 直接在類路徑添加 application.yml 即可。
例如下面這兩段配置是完全等價的:
① 在 application.yml 配置數據源:
② 在 application.properties 配置數據源:
在項目的實際開發中,我們往往需要根據不同的環境來載入不同的配置文件。例如生產環境,測試環境和開發環境等。此時,我們可以藉助 Profiles 來指定載入哪些配置文件。例如:
溫馨提示:如果spring.profiles.active指定了多個配置文件,則按順序載入,其中最後的優先順序最高,也就是最後的會覆蓋前者。
使用方法:
使用Maven插件打包好項目,然後在當前路徑,執行DOS命令: java -jar demo.jar --server.port=8081 ,在控制台可看到應用埠變成了8081。
實現原理:
默認情況下,SpringBoot會將這些命令行參數轉化成一個 Property ,並將其添加到 Environment 上下文。
溫馨提示:
由於命令行參數優先順序非常之高,基本高於所有常見的外部配置,所以使用的時候要謹慎。詳見 PropertySource 執行順序 。
關閉方法:
如果想禁用命令行屬性,可以設置如下操作:springApplication.setAddCommandLineProperties(false)