91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Spring @Profile注解詳解

發布時間:2020-09-08 08:40:35 來源:腳本之家 閱讀:167 作者:碼莎拉蒂 欄目:編程語言

@Profile注解詳解

@Profile:Spring為我們提供的可以根據當前環境,動態的激活和切換一系列組件的功能;

開發環境develop、測試環境test、生產環境master

數據源:(/dev) (/test) (/master)

@Profile:指定組件在哪個環境的情況下才能被注冊到容器中,不指定,任何環境下都能注冊這個組件

1) 加了環境標識的bean,只有這個環境被激活的時候才能注冊到容器中。默認是default環境
2) 寫在配置類上,只有是指定的環境的時候,整個配置類里面的所有配置才能開始生效  

package com.spring.config;
 
import java.beans.PropertyVetoException;
 
import javax.sql.DataSource;
 
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.EmbeddedValueResolverAware;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Profile;
import org.springframework.context.annotation.PropertySource;
import org.springframework.util.StringValueResolver;
 
import com.mchange.v2.c3p0.ComboPooledDataSource;
 
/**
 * Profile:
 * Spring為我們提供的可以根據當前環境,動態的激活和切換一系列組件的功能;
 * 
 * 開發環境develop、測試環境test、生產環境master
 * 數據源:(/dev) (/test) (/master)
 *
 * @Profile:指定組件在哪個環境的情況下才能被注冊到容器中,不指定,任何環境下都能注冊這個組件
 * 
 * 1) 加了環境標識的bean,只有這個環境被激活的時候才能注冊到容器中。默認是default環境
 * 2) 寫在配置類上,只有是指定的環境的時候,整個配置類里面的所有配置才能開始生效
 * 
 */
@PropertySource("classpath:/dbconfig.properties")
@Configuration
public class MainConfigOfProfile implements EmbeddedValueResolverAware{
 
 @Value("${db.user}")
 private String user;
 
 private String driverClass;
 
 @Profile("default")
 @Bean("test")
 public DataSource testDataSource(@Value("${db.password}")String password) throws PropertyVetoException {
 ComboPooledDataSource dataSource = new ComboPooledDataSource();
 dataSource.setUser(user);
 dataSource.setPassword(password);
 dataSource.setDriverClass(driverClass);
 return dataSource;
 }
 
 @Profile("dev")
 @Bean("dev")
 public DataSource devDataSource(@Value("${db.password}")String password) throws PropertyVetoException {
 ComboPooledDataSource dataSource = new ComboPooledDataSource();
 dataSource.setUser(user);
 dataSource.setPassword(password);
 dataSource.setDriverClass(driverClass);
 return dataSource;
 }
 
 @Profile("master")
 @Bean("master")
 public DataSource masterDataSource(@Value("${db.password}")String password) throws PropertyVetoException {
 ComboPooledDataSource dataSource = new ComboPooledDataSource();
 dataSource.setUser(user);
 dataSource.setPassword(password);
 dataSource.setDriverClass(driverClass);
 return dataSource;
 }
 
 public void setEmbeddedValueResolver(StringValueResolver resolver) {
 String driverClass = resolver.resolveStringValue("${db.driverClass}");
 this.driverClass = driverClass;
 }
 
}
package com.spring.test;
 
import java.util.Arrays;
 
import javax.sql.DataSource;
 
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
 
import com.spring.config.MainConfigOfProfile;
 
 
public class IOCTestProfile {
 //1. 使用命令行動態參數:在虛擬機參數位置加載 -Dspring.profiles.active=test
 //2. 使用代碼的方式激活某種環境;
 @Test
 public void test01() {
 AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfProfile.class);
 //1. 創建一個applicationContext
 //2. 設置需要激活的環境
 applicationContext.getEnvironment().setActiveProfiles("dev","master");
 //3. 注冊主配置類
 applicationContext.register(MainConfigOfProfile.class);
 //4. 啟動刷新容器
 applicationContext.refresh();
 
 String[] beanNamesForType = applicationContext.getBeanNamesForType(DataSource.class);
 System.out.println(Arrays.toString(beanNamesForType));
 
 applicationContext.close();
 }
 
 
  @Test
 public void test02() {
 AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(MainConfigOfProfile.class);
 
 String[] beanNamesForType = applicationContext.getBeanNamesForType(DataSource.class);
 System.out.println(Arrays.toString(beanNamesForType));
 
 applicationContext.close();
 }
}

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持億速云。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

龙胜| 清河县| 九龙坡区| 蓝山县| 新平| 沧源| 黎平县| 重庆市| 喀喇沁旗| 花莲市| 桂阳县| 嵊州市| 永济市| 蒙山县| 乌审旗| 麻江县| 永康市| 香格里拉县| 沈阳市| 吴忠市| 安远县| 布拖县| 清涧县| 绥化市| 老河口市| 都匀市| 班戈县| 甘肃省| 开原市| 荣成市| 奉新县| 南漳县| 上犹县| 慈溪市| 定兴县| 白山市| 景宁| 奇台县| 红原县| 洛阳市| 岳西县|