各位老师好, 平常配置spring的datasource密码是写死里面的。 为了保护数据库的安全性,总服务器会把一个加密后的文件放置某个地方,如何把解密后的值放置spring配置bean的property里面,而且还不能把解密后的密码放置到另一个文件里面,只能在程序中解决。 各位老师们, 帮帮忙出出解决方案吧 。 我现在一点想法都没有
解决方案 »
- 想在网站内嵌一个发送短信的功能,请问大侠们,如何实现?
- spring配置List属性的值
- 求 Spring+hibernate的一个小例子代码
- could not initialize a collection 错误
- 如何把java.sql.date 转成java.util.date
- 关于hibernate
- 高手们,请问struts,hibernate,spring这些开源框架,大家是怎么学的?请赐教下
- 寻找最简单的hibernate入门资料!
- <个人观点,欢迎指正> 关于 异常处理的一些想法。
- javabean 在 Tomcat 5.0 里的热拔插问题
- 根据当月的第几周 和 周几 计算出 几号
- Hibernate mysql中文搜索问题
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/bbs
jdbc.username=root
jdbc.password=rootbeans.xml
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="${jdbc.driverClassName}" />
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}" />
<property name="password" value="${jdbc.password}" />
</bean>
<bean
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<value>classpath:jdbc.properties</value>
</property>
</bean>
然后创建DataSource的时候类似这样写:public C3P0DataSource() { String driver = getStringValue(ConfigKeys.DB_DRIVER_CLASS_NAME);
String jdbcUrl = getStringValue(ConfigKeys.DB_URL);
String user = getStringValue(ConfigKeys.DB_USER);
String password = getStringValue(ConfigKeys.DB_PASSWORD);
int initPoolSize = getIntegerValue(ConfigKeys.DB_MAX_IDLE, "1");
int maxPoolSize = getIntegerValue(ConfigKeys.DB_MAX_ACTIVE, "100");
int idleTestPeriod = getIntegerValue(ConfigKeys.DB_IDLE_TEST_PERIOD, "0");
int acquireIncrement = getIntegerValue(ConfigKeys.DB_ACQUIRE_INCREMENT, "2");
int maxStatements = getIntegerValue(ConfigKeys.DB_MAX_STATEMENTS, "0"); try {
ds = new ComboPooledDataSource(); ds.setJdbcUrl(jdbcUrl);
ds.setDriverClass(driver);
ds.setUser(user);
ds.setPassword(password);
ds.setInitialPoolSize(initPoolSize);
ds.setMinPoolSize(initPoolSize);
ds.setMaxPoolSize(maxPoolSize);
ds.setIdleConnectionTestPeriod(idleTestPeriod);
ds.setMaxIdleTime(1800);
ds.setAcquireIncrement(acquireIncrement);
} catch (Exception e) {
logger.fatal("Init DataSource fialed.");
}
}
<bean name="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" config="db.jdbc.driverClassName" />
<property name="jdbcUrl" config="db.jdbc.url" />
<property name="user" config="db.jdbc.username" />
<property name="password" config="db.jdbc.password" />
<property name="autoCommitOnClose" value="true" />
<property name="maxStatements" config="db.cpool.maxStatements" />
<property name="checkoutTimeout" config="db.cpool.checkoutTimeout" />
<property name="idleConnectionTestPeriod" config="db.cpool.idleConnectionTestPeriod" />
<property name="initialPoolSize" config="db.cpool.minPoolSize" />
<property name="minPoolSize" config="db.cpool.minPoolSize" />
<property name="maxPoolSize" config="db.cpool.maxPoolSize" />
<property name="maxIdleTime" config="db.cpool.maxIdleTime" />
<property name="acquireIncrement" config="db.cpool.acquireIncrement" />
<property name="maxIdleTimeExcessConnections" config="db.cpool.maxIdleTimeExcessConnections" />
</bean>