`
slikel
  • 浏览: 65775 次
  • 性别: Icon_minigender_1
  • 来自: 武汉
社区版块
存档分类
最新评论

在spirng容器装配dataSource的属性时,获取jdbc配置文件中对应的值,先解密

 
阅读更多

       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>

 

分享到:
评论

相关推荐

    spring,配置文件从属性文件读取JDBC连接的相关参数

    在本例中,`jdbc.properties`是一个属性文件,它包含了JDBC连接所需的全部或部分参数。以下是如何在Spring中从这个文件中读取这些参数的步骤: 1. **创建属性文件**: 首先,我们需要创建一个名为`jdbc.properties...

    SpringBoot框架Datasource注入

    Spring Boot的自动配置机制(Auto Configuration)会在启动时寻找合适的`DataSource`实现,并根据`application.properties`或`application.yml`文件中的配置自动配置`DataSource`。例如,如果我们希望使用HikariCP...

    Spring boot连接oracle数据库JDBC配置步骤

    在本文中,我们将详细介绍如何使用 Spring Boot 连接 Oracle 数据库,配置 JDBC 驱动程序,并实现数据库的基本操作。 Step 1: 添加依赖项 在 Spring Boot 项目中,需要在 `build.gradle` 文件中添加 Oracle JDBC ...

    spring中dataSource的配置以及配合IOC的使用

    总结,`dataSource`在Spring中的配置和使用是关键的数据库连接管理部分,结合IOC可以使我们更方便地管理和控制数据库连接,提高代码的可读性和可维护性。同时,Spring提供的`JdbcTemplate`等工具简化了数据库操作,...

    spring Ioc容器配置

    spring Ioc容器配置 IOC容器数据源配置 &lt;!-- 配置数据源 --&gt; &lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"&gt; &lt;value&gt;org.gjt.mm.mysql.Driver ...

    spring整合jdbc的配置

    首先,我们需要在Spring配置文件中定义DataSource bean: ```xml &lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"&gt; ...

    spring_JDBC整合包

    在实际使用中,开发者首先需要配置DataSource,然后可以通过ApplicationContext获取JdbcTemplate实例。接着,可以编写SQL语句,使用JdbcTemplate的方法执行这些语句。对于复杂的查询,可以结合使用PreparedStatement...

    spring-jdbc文件数据库配置加密

    4. **Spring Boot Actuator的Jasypt加密**:Spring Boot Actuator提供了与JASYPT(Java Simplified Encryption)的集成,允许我们在属性文件中使用加密密码。JASYPT提供了简单的命令行工具对密码进行加密和解密。 5...

    spring 配置文件详解

    在 Spring 容器启动时,Spring 将根据配置文件中的定义,自动装配这些依赖关系。 3. Bean 生产和实例分发:在 Spring 配置文件中,可以定义 Bean 的生产和实例分发策略,例如 singleton、prototype 等。Spring 容器...

    Spring动态切换datasource实现mysql多住多从

    在Spring配置文件中,可以定义多个DataSource bean,每个bean代表一个数据库连接。例如,我们可以创建名为`primaryDataSource`和`secondaryDataSource`的bean,分别对应主库和从库。 2. **使用AOP(面向切面编程)*...

    Spring-JDBC整合-MySQL8、java8版本

    在Spring的配置文件(如applicationContext.xml)中,我们需要定义DataSource和JdbcTemplate。对于MySQL8,可以使用Connector/J驱动,如下所示: ```xml &lt;bean id="dataSource" class="org.springframework.jdbc....

    Spring Data JDBC与JDBC的区别

    Spring Data JDBC与JDBC是两种不同的数据库访问方式,它们在Java开发中有着广泛的应用。JDBC(Java Database Connectivity)是Java平台的标准API,用于与各种数据库进行交互。它提供了低级别的数据库操作,如建立...

    深度解析spring容器管理bean

    在Spring中,反射用于实例化Bean、调用初始化方法以及设置属性值。当Spring遇到`class="com.example.UserService"`这样的属性时,它会尝试创建UserService类的实例。 依赖注入(DI)是Spring的核心特性,它有助于...

    Java课程实验 Spring Boo 配置文件以及 Profile 多环境配置

    在Spring Boot中,可以使用配置文件来管理应用程序的配置。这些配置文件可以根据不同的环境进行分离和管理,Spring Boot提供了多种灵活的方式来实现多环境配置。 1. 配置文件的命名 默认配置文件:application....

    学习Spring笔记_DataSource

    在Spring中配置DataSource,通常通过XML配置文件或者Java配置类来完成。例如,使用Apache Commons DBCP,可以在XML中定义如下: ```xml &lt;bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource"&gt;...

    springjdbc.zip_SpringJDBC_spring jdbc_spring 增删改查_springjdbc xml

    在Spring中,我们可以通过XML配置文件来定义bean,包括`JdbcTemplate`实例和`DataSource`,以及事务管理器等。 5. **事务管理**:Spring提供了声明式事务管理,可以在XML配置中定义`PlatformTransactionManager`,...

    spring整合mybatis时需要用到的配置文件

    4. **事务管理器(PlatformTransactionManager)**: 在Spring中,我们需要配置一个事务管理器,如`DataSourceTransactionManager`,它基于数据源进行事务控制。配置中需要引用之前定义的数据源。 最后,`...

    Spring3.0 配置文件中加载Properties文件的小例子

    本篇将详细讲解如何在Spring 3.0的配置文件中加载Properties文件,以便在运行时动态获取和使用这些配置。 首先,我们需要一个Properties文件,例如`application.properties`,它通常放在项目的类路径根目录下。这个...

    Spring属性占位符PropertyPlaceholderConfigurer的使用

    `PropertyPlaceholderConfigurer`是Spring提供的一个Bean工厂后处理器,它的主要任务是在Spring容器初始化Bean时,替换掉XML配置文件中所有`${...}`形式的占位符,将其替换为对应属性文件中的实际值。这使得我们可以...

Global site tag (gtag.js) - Google Analytics