Java之Spring認證使用Profile配置運行環(huán)境講解
Spring提供了@Profile注解來解決程序在不同運行環(huán)境時候的配置差別。
項目開發(fā)時候大多包含:開發(fā)、測試、上線運行幾個過程,在每個過程中軟件的工作環(huán)境一般多少有些差別,比如:在開發(fā)階段利用本地數(shù)據(jù)庫、測試階段采用測試數(shù)據(jù)庫、在上線運行階段使用生產數(shù)據(jù)庫。這些差別如果采用了手工維護就會存在各種問題:效率低下、容易發(fā)生人為因素意外錯誤。
利用Spring提供的@Profile注解就可以定義程序不同的運行場景配置,配置以后在啟動程序時候給定不同的啟動參數(shù)就可以靈活的切換運行場景,不再需要人工干預,這樣就可以大大提升開發(fā)效率。
以配置開發(fā)環(huán)和生產境數(shù)據(jù)源為例子,具體說明使用步驟:
在Spring配置文件中利用@Profile聲明開發(fā)環(huán)境和生產環(huán)境使用的數(shù)據(jù)源:
@Configuration public class DataSourceConfig { @Bean(name="dataSource") //重寫B(tài)eanID @Profile("dev") //配置開發(fā)環(huán)境使用的數(shù)據(jù)源 public DataSource dataSourceForDev() { DruidDataSource dataSource = new DruidDataSource(); ... return dataSource; } @Bean(name="dataSource")//重寫B(tài)eanID @Profile("production")//配置生產環(huán)境使用的數(shù)據(jù)源 public DataSource dataSourceForProd() { DruidDataSource dataSource = new DruidDataSource(); ... return dataSource; } }
其中“dev”表示開發(fā)環(huán)境,“production”表示生產環(huán)境,顯然有兩個BeanID是“dataSource”的數(shù)據(jù)源Bean對象,這兩個對象不會同時初始化,Spring會根據(jù)激活的Profile屬性初始化其中一個數(shù)據(jù)源Bean對象。
使用如下啟動命令參數(shù)-Dspring.profiles.active=dev就可以設置當前激活的Profile是發(fā)環(huán)境“dev”,此時Spring會初始化屬于開發(fā)環(huán)境的數(shù)據(jù)源Bean對象:
java -Dspring.profiles.active=dev -jar demo.jar
或者在SpringBoot的啟動類中使用系統(tǒng)屬性設置激活的Profile:
System.setProperty("spring.profiles.active" , "dev"); SpringApplication.run(AppConfig.class);
在測試時候可以使用 @ActiveProfiles注解設置當前激活的Profile。
到此這篇關于Java之Spring認證使用Profile配置運行環(huán)境講解的文章就介紹到這了,更多相關Java之Spring認證使用Profile配置內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
SpringSceurity實現(xiàn)短信驗證碼功能的示例代碼
這篇文章主要介紹了SpringSceurity實現(xiàn)短信驗證碼功能的示例代碼,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06Mybatis plus關閉駝峰命名的四種方法(防止出現(xiàn)查詢?yōu)镹ull)
這篇文章主要介紹了Mybatis plus關閉駝峰命名的四種方法(防止出現(xiàn)查詢?yōu)镹ull),數(shù)據(jù)庫的字段命名方式為使用下劃線連接,對應的實體類應該是駝峰命名方式,而我使用的是和數(shù)據(jù)庫同樣的命名方式,需要的朋友可以參考下2022-01-01SpringBoot整合ip2region實現(xiàn)使用ip監(jiān)控用戶訪問城市的詳細過程
這篇文章主要介紹了SpringBoot整合ip2region實現(xiàn)使用ip監(jiān)控用戶訪問城市,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2022-07-07Mybatis中 mapper-locations和@MapperScan的作用
這篇文章主要介紹了Mybatis中 mapper-locations和@MapperScan的作用,mybatis.mapper-locations在SpringBoot配置文件中使用,作用是掃描Mapper接口對應的XML文件,需要的朋友可以參考下2023-05-05