spring2 配置文件
- <?xml version="1.0"?>
- <!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
- <beans>
- <!-- 数据源配置 -->
- <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close">
- <property name="driverClass">
- <value>oracle.jdbc.driver.OracleDriver</value>
- </property>
- <property name="jdbcUrl" value="jdbc:oracle:thin:@IP:端口:SID" />
- <property name="acquireIncrement" value="1"/>
- <property name="idleConnectionTestPeriod" value="300"/>
- <property name="maxPoolSize" value="5"/>
- <property name="minPoolSize" value="1"/>
- <property name="initialPoolSize" value="1" />
- <property name="numHelperThreads" value="3"/>
- <property name="maxIdleTime" value="1200" />
- <property name="acquireRetryAttempts" value="2"/>
- <property name="preferredTestQuery" value=" select 1 from dual "/>
- <property name="testConnectionOnCheckin" value="true"/>
- [color=red]<property name="properties" ref="dataSourceProperties"/>[/color]
- </bean>
- <bean id="dataSourceProperties" class="PropertiesEncryptFactoryBean">
- <property name="properties">
- <props>
- <prop key="user">xxxx加密后</prop>
- <prop key="password">xxxxxxx加密后</prop>
- </props>
- </property>
- </bean>
2.PropertiesEncryptFactoryBean(加密类)
- import java.util.Properties;
- import org.springframework.beans.factory.FactoryBean;
- public class PropertiesEncryptFactoryBean implements FactoryBean {
- private Properties properties;
- public Object getObject() throws Exception {
- return getProperties();
- }
- public Class getObjectType() {
- return java.util.Properties.class;
- }
- public boolean isSingleton() {
- return true;
- }
- public Properties getProperties() {
- return properties;
- }
- public void setProperties(Properties inProperties) {
- this.properties = inProperties;
- String originalUsername = properties.getProperty("user");
- String originalPassword = properties.getProperty("password");
- if (originalUsername != null){
- String newUsername = deEncryptUsername(originalUsername);
- properties.put("user", newUsername);
- }
- if (originalPassword != null){
- String newPassword = deEncryptPassword(originalPassword);
- properties.put("password", newPassword);
- }
- }
- private String deEncryptUsername(String originalUsername){
- return deEncryptString(originalUsername);
- }
- private String deEncryptPassword(String originalPassword){
- return deEncryptString(originalPassword);
- }
- //简单加密
- private String deEncryptString(String originalString){
- StringBuilder newString = new StringBuilder();
- for (int i = 0; i < originalString.length(); i++) {
- char eachChar= originalString.charAt(i);
- char newChar = (char)(eachChar + i);
- newString.append(newChar);
- }
- return newString.toString();
- }
- }
ComboPooledDataSource的properties属性可被注入user,password
只有user,password两个属性是可配置,其他属性不存也不是取自properties(具体可看C3P0源码)
相关推荐
Spring提供了多种数据源实现类,包括基于Apache DBCP和C3P0的实现。开发者可以根据需要选择合适的数据源实现类,并使用Spring的依赖注入机制将其集成到应用程序中。 二、数据源配置文件加密 在Spring应用程序中,...
接下来,我们需要配置C3P0的数据源,这通常通过在Java配置文件中设置一系列参数来完成,如初始化大小、最大连接数、超时时间等。例如: ```properties # C3P0配置示例 com.mchange.v2.c3p0.min_size=5 ...
Druid相比其他数据库连接池(如C3P0、DBCP等)具有更好的性能和稳定性,在实际项目中被广泛应用。 #### 密文密码的重要性 在软件开发中,直接将数据库密码写入配置文件是一种常见的做法,但这种方式非常不安全。...
1. **数据库连接池**:可能包含一个名为`DBConnectionPool`的模块,实现了数据源的创建、获取和释放,如使用HikariCP、C3P0或Apache DBCP等库。 2. **缓存管理**:可能有`CacheService`模块,用于存储和检索临时...
图片到图片装载器、绘制火焰效果的X坐标,Y坐标、得到X坐标,Y坐标值、绘制火焰效果Image…… Java加密解密工具集 JCT v1.0源码包 5个目标文件 内容索引:JAVA源码,综合应用,JCT,加密解密 WDSsoft的一款免费源代码 JCT ...
这对于处理网络传输数据、加密解密等场景非常有用。 #### 8. Commons-Collections.jar Commons Collections 是Apache Commons项目下的集合操作工具包,提供了大量扩展或替代标准Java集合类的方法。例如,它提供了...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
源码可能包含连接池技术,如C3P0或HikariCP,用于优化数据库连接的创建和释放。 2. 模型层:这部分代码将涉及图书、用户、借阅记录等实体类的设计,用以封装业务逻辑中的数据和行为。 3. 控制器层:这部分代码负责...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...
BoneCP很小,只有四十几K(运行时需要slf4j和guava的支持,这二者加起来就不小了),而相比之下 C3P0 要六百多K。 异步输出框架 AsynWriter 一个Java的类库,用于异步输出记录的简单小框架用于高并发下数据输出使用...