Spring 配置数据库动态密码

– Start
点击此处观看本系列配套视频。


以前我们把数据库密码配置在属性文件中,缺陷是密码是静态的,明文的。随着软件的发展,密码被统一管理,定期修改,我们需要动态获取密码,下面是一个简单的例子。

jdbc.driverClassName=org.hsqldb.jdbcDriver
jdbc.url=jdbc:hsqldb:hsql://dev:9002
jdbc.username=sa

jdbc.driverClassName=org.hsqldb.jdbcDriver
jdbc.url=jdbc:hsqldb:hsql://test:9002
jdbc.username=sa

jdbc.driverClassName=org.hsqldb.jdbcDriver
jdbc.url=jdbc:hsqldb:hsql://production:9002
jdbc.username=sa

package shangbo.spring.core.example47;

public class PasswordProvider {
	
	// 动态获取密码
	public String getPassword() {
		return "123456";
	}
}




	
	
	
	
	
	    
	    
	    
	    
	

	


package shangbo.spring.core.example47;

import org.apache.commons.dbcp.BasicDataSource;
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class App 
{
    public static void main( String[] args )
    {
    	// 设置环境变量,通常在 shell 启动脚本中设置
    	System.setProperty("env", "dev");
    	
		// 实例化 Spring IoC 容器
		ApplicationContext context = new ClassPathXmlApplicationContext("shangbo/spring/core/example47/example.xml");
		
		// 从容器中获得对象
		BasicDataSource dataSource = context.getBean(BasicDataSource.class);
				
		// 使用对象
		System.out.println(dataSource.getPassword());
    }
}

更多参见:Spring Framework 精萃
– 声 明:转载请注明出处
– Last Updated on 2017-05-30
– Written by ShangBo on 2017-05-30
– End

你可能感兴趣的:(Spring,Framework)