Java之Spring認證使用Profile配置運行環境講解

Spring提供瞭@Profile註解來解決程序在不同運行環境時候的配置差別。

項目開發時候大多包含:開發、測試、上線運行幾個過程,在每個過程中軟件的工作環境一般多少有些差別,比如:在開發階段利用本地數據庫、測試階段采用測試數據庫、在上線運行階段使用生產數據庫。這些差別如果采用瞭手工維護就會存在各種問題:效率低下、容易發生人為因素意外錯誤。

利用Spring提供的@Profile註解就可以定義程序不同的運行場景配置,配置以後在啟動程序時候給定不同的啟動參數就可以靈活的切換運行場景,不再需要人工幹預,這樣就可以大大提升開發效率。

在這裡插入圖片描述

以配置開發環和生產境數據源為例子,具體說明使用步驟:

在Spring配置文件中利用@Profile聲明開發環境和生產環境使用的數據源:

@Configuration
public class DataSourceConfig {
    @Bean(name="dataSource") //重寫BeanID
    @Profile("dev") //配置開發環境使用的數據源
    public DataSource dataSourceForDev() {
        DruidDataSource dataSource = new DruidDataSource();
        ...
        return dataSource; 
    }
    @Bean(name="dataSource")//重寫BeanID
    @Profile("production")//配置生產環境使用的數據源
    public DataSource dataSourceForProd() {
        DruidDataSource dataSource = new DruidDataSource();
        ...
        return dataSource;
    }
}

其中“dev”表示開發環境,“production”表示生產環境,顯然有兩個BeanID是“dataSource”的數據源Bean對象,這兩個對象不會同時初始化,Spring會根據激活的Profile屬性初始化其中一個數據源Bean對象。
使用如下啟動命令參數-Dspring.profiles.active=dev就可以設置當前激活的Profile是發環境“dev”,此時Spring會初始化屬於開發環境的數據源Bean對象:

java -Dspring.profiles.active=dev -jar demo.jar

或者在SpringBoot的啟動類中使用系統屬性設置激活的Profile:

System.setProperty("spring.profiles.active" , "dev"); SpringApplication.run(AppConfig.class);

在測試時候可以使用 @ActiveProfiles註解設置當前激活的Profile。

到此這篇關於Java之Spring認證使用Profile配置運行環境講解的文章就介紹到這瞭,更多相關Java之Spring認證使用Profile配置內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: