添加多运行环境支持 #14
@@ -9,8 +9,8 @@ import org.springframework.core.env.Environment;
|
||||
|
||||
import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileNotFoundException;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Properties;
|
||||
|
||||
/**
|
||||
@@ -29,12 +29,13 @@ public class DruidConfig {
|
||||
public static final String DB_CONFIG_USERNAME_PREFIX = "spring.datasource.username";
|
||||
public static final String DB_CONFIG_PASSWORD_PREFIX = "spring.datasource.password";
|
||||
public static final String DB_CONFIG_DRIVER_CLASS_NAME_PREFIX = "spring.datasource.driver-class-name";
|
||||
public static final String TEST_PROFILES = "test";
|
||||
|
||||
@Bean
|
||||
public DruidDataSource initDataSource() throws IOException {
|
||||
DruidDataSource dataSource;
|
||||
File file = new File(DB_CONFIG_PATH);
|
||||
if (file.exists()) {
|
||||
if (file.exists() && !Arrays.asList(env.getActiveProfiles()).contains(TEST_PROFILES)) {
|
||||
log.debug("从文件中获取数据库配置");
|
||||
dataSource = readConfigFromFile(file);
|
||||
} else {
|
||||
|
||||
@@ -7,6 +7,7 @@ import com.alibaba.druid.pool.DruidDataSource;
|
||||
import org.junit.After;
|
||||
import org.junit.Before;
|
||||
import org.junit.Test;
|
||||
import org.mockito.Mock;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.core.env.Environment;
|
||||
|
||||
@@ -14,15 +15,22 @@ import java.io.File;
|
||||
import java.io.FileInputStream;
|
||||
import java.io.FileOutputStream;
|
||||
import java.io.IOException;
|
||||
import java.util.Arrays;
|
||||
import java.util.Properties;
|
||||
|
||||
import static org.junit.Assert.*;
|
||||
import static org.mockito.Mockito.mock;
|
||||
import static org.mockito.Mockito.when;
|
||||
|
||||
public class DruidConfigTest extends BaseTest {
|
||||
|
||||
@Autowired
|
||||
@Mock
|
||||
Environment env;
|
||||
|
||||
@Autowired
|
||||
Environment globalEnvironment;
|
||||
|
||||
|
||||
private File configFile;
|
||||
private File bakConfigFile;
|
||||
|
||||
@@ -30,8 +38,11 @@ public class DruidConfigTest extends BaseTest {
|
||||
public void initDataSource() throws IOException {
|
||||
|
||||
DruidConfig druidConfig = new DruidConfig();
|
||||
|
||||
druidConfig.env = env;
|
||||
|
||||
System.out.println(Arrays.toString(env.getActiveProfiles()));
|
||||
|
||||
// 无配置文件
|
||||
assertTrue(!configFile.exists() || configFile.delete());
|
||||
DruidDataSource druidDataSource = druidConfig.initDataSource();
|
||||
@@ -86,6 +97,11 @@ public class DruidConfigTest extends BaseTest {
|
||||
System.out.println("备份文件成功");
|
||||
copyFile(configFile, bakConfigFile);
|
||||
}
|
||||
when(this.env.getActiveProfiles()).thenReturn(new String[]{"dev"});
|
||||
when(this.env.getProperty(DruidConfig.DB_CONFIG_PASSWORD_PREFIX)).thenReturn(globalEnvironment.getProperty(DruidConfig.DB_CONFIG_PASSWORD_PREFIX));
|
||||
when(this.env.getProperty(DruidConfig.DB_CONFIG_URL_PREFIX)).thenReturn(globalEnvironment.getProperty(DruidConfig.DB_CONFIG_URL_PREFIX));
|
||||
when(this.env.getProperty(DruidConfig.DB_CONFIG_USERNAME_PREFIX)).thenReturn(globalEnvironment.getProperty(DruidConfig.DB_CONFIG_USERNAME_PREFIX));
|
||||
when(this.env.getProperty(DruidConfig.DB_CONFIG_DRIVER_CLASS_NAME_PREFIX)).thenReturn(globalEnvironment.getProperty(DruidConfig.DB_CONFIG_DRIVER_CLASS_NAME_PREFIX));
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
Reference in New Issue
Block a user