jdbc.properties配置文件中的信息(用户名、用户密码、url)是经过加密的,然后放在系统的WEB-INF文件夹下供系统使用。由于这些信息是加密的,系统将数据库连接交给了spring管理,所以在spring初始化datasource-bean装配这些属性对应的值时,必须先解密。
<!--修改前spirng的配置文件:-->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${driverClass}"></property>
<property name="jdbcUrl" value="${jdbcUrl}"></property>
<property name="user" value="${username}"></property>
<property name="password" value="${password}"></property>
<property name="initialPoolSize" value="${initialPoolSize}"></property>
<property name="maxPoolSize" value="${maxPoolSize}"></property>
<property name="minPoolSize" value="${minPoolSize}"></property>
<property name="acquireIncrement" value="${acquireIncrement}"></property>
<property name="checkoutTimeout" value="${checkoutTimeout}"></property>
<property name="acquireRetryAttempts" value="${acquireRetryAttempts}"></property>
</bean>
//org.springframework.beans.factory.config.PropertyPlaceholderConfi//gurer这个类是用来从指定的配置文件中取值,替换bean中的${}。我们现在要
//做的是,在从指定的配置文件中取出值返回时,对该值进行解密,再返回。对该
//类进行扩展,代码如下:
import java.util.Properties;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
public class MyPropertyPlaceholderConfigurer extends
PropertyPlaceholderConfigurer {
@Override
protected String resolvePlaceholder(String placeholder, Properties props) {
String val = props.getProperty(placeholder);
if(placeholder.equals("jdbcUrl") || placeholder.equals("username") || placeholder.equals("password")) {
String result = DESDecrypt.execDecrypt(val);
return result;
} else {
return val;
}
}
}
<!-- 修改后的spirng配置文件 -->
<bean class="cn.com.jit.pki.util.MyPropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:jdbc.properties</value>
</list>
</property>
</bean>
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource">
<property name="driverClass" value="${driverClass}"></property>
<property name="jdbcUrl" value="${jdbcUrl}"></property>
<property name="user" value="${username}"></property>
<property name="password" value="${password}"></property>
<property name="initialPoolSize" value="${initialPoolSize}"></property>
<property name="maxPoolSize" value="${maxPoolSize}"></property>
<property name="minPoolSize" value="${minPoolSize}"></property>
<property name="acquireIncrement" value="${acquireIncrement}"></property>
<property name="checkoutTimeout" value="${checkoutTimeout}"></property>
<property name="acquireRetryAttempts" value="${acquireRetryAttempts}"></property>
</bean>
分享到:
相关推荐
在本例中,`jdbc.properties`是一个属性文件,它包含了JDBC连接所需的全部或部分参数。以下是如何在Spring中从这个文件中读取这些参数的步骤: 1. **创建属性文件**: 首先,我们需要创建一个名为`jdbc.properties...
Spring Boot的自动配置机制(Auto Configuration)会在启动时寻找合适的`DataSource`实现,并根据`application.properties`或`application.yml`文件中的配置自动配置`DataSource`。例如,如果我们希望使用HikariCP...
在本文中,我们将详细介绍如何使用 Spring Boot 连接 Oracle 数据库,配置 JDBC 驱动程序,并实现数据库的基本操作。 Step 1: 添加依赖项 在 Spring Boot 项目中,需要在 `build.gradle` 文件中添加 Oracle JDBC ...
总结,`dataSource`在Spring中的配置和使用是关键的数据库连接管理部分,结合IOC可以使我们更方便地管理和控制数据库连接,提高代码的可读性和可维护性。同时,Spring提供的`JdbcTemplate`等工具简化了数据库操作,...
spring Ioc容器配置 IOC容器数据源配置 <!-- 配置数据源 --> <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <value>org.gjt.mm.mysql.Driver ...
首先,我们需要在Spring配置文件中定义DataSource bean: ```xml <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> ...
在实际使用中,开发者首先需要配置DataSource,然后可以通过ApplicationContext获取JdbcTemplate实例。接着,可以编写SQL语句,使用JdbcTemplate的方法执行这些语句。对于复杂的查询,可以结合使用PreparedStatement...
4. **Spring Boot Actuator的Jasypt加密**:Spring Boot Actuator提供了与JASYPT(Java Simplified Encryption)的集成,允许我们在属性文件中使用加密密码。JASYPT提供了简单的命令行工具对密码进行加密和解密。 5...
在 Spring 容器启动时,Spring 将根据配置文件中的定义,自动装配这些依赖关系。 3. Bean 生产和实例分发:在 Spring 配置文件中,可以定义 Bean 的生产和实例分发策略,例如 singleton、prototype 等。Spring 容器...
在Spring配置文件中,可以定义多个DataSource bean,每个bean代表一个数据库连接。例如,我们可以创建名为`primaryDataSource`和`secondaryDataSource`的bean,分别对应主库和从库。 2. **使用AOP(面向切面编程)*...
在Spring的配置文件(如applicationContext.xml)中,我们需要定义DataSource和JdbcTemplate。对于MySQL8,可以使用Connector/J驱动,如下所示: ```xml <bean id="dataSource" class="org.springframework.jdbc....
Spring Data JDBC与JDBC是两种不同的数据库访问方式,它们在Java开发中有着广泛的应用。JDBC(Java Database Connectivity)是Java平台的标准API,用于与各种数据库进行交互。它提供了低级别的数据库操作,如建立...
在Spring中,反射用于实例化Bean、调用初始化方法以及设置属性值。当Spring遇到`class="com.example.UserService"`这样的属性时,它会尝试创建UserService类的实例。 依赖注入(DI)是Spring的核心特性,它有助于...
在Spring Boot中,可以使用配置文件来管理应用程序的配置。这些配置文件可以根据不同的环境进行分离和管理,Spring Boot提供了多种灵活的方式来实现多环境配置。 1. 配置文件的命名 默认配置文件:application....
在Spring中配置DataSource,通常通过XML配置文件或者Java配置类来完成。例如,使用Apache Commons DBCP,可以在XML中定义如下: ```xml <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource">...
在Spring中,我们可以通过XML配置文件来定义bean,包括`JdbcTemplate`实例和`DataSource`,以及事务管理器等。 5. **事务管理**:Spring提供了声明式事务管理,可以在XML配置中定义`PlatformTransactionManager`,...
4. **事务管理器(PlatformTransactionManager)**: 在Spring中,我们需要配置一个事务管理器,如`DataSourceTransactionManager`,它基于数据源进行事务控制。配置中需要引用之前定义的数据源。 最后,`...
本篇将详细讲解如何在Spring 3.0的配置文件中加载Properties文件,以便在运行时动态获取和使用这些配置。 首先,我们需要一个Properties文件,例如`application.properties`,它通常放在项目的类路径根目录下。这个...
`PropertyPlaceholderConfigurer`是Spring提供的一个Bean工厂后处理器,它的主要任务是在Spring容器初始化Bean时,替换掉XML配置文件中所有`${...}`形式的占位符,将其替换为对应属性文件中的实际值。这使得我们可以...