`
xinglijun1973
  • 浏览: 54959 次
社区版块
存档分类
最新评论

spring 改变占位符属性值

 
阅读更多

需求:

    像数据库密码,一般不能在属性文件中明文表示。那么需要将密码加密,在配置文件中配置加密后的密文。运行时候,加载属性文件后再将密文还原为明文,提供给jdbc驱动作为连接数据库参数。

 

实现:

java:

public class DecryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
	@Override
	protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props)
			throws BeansException {

		Properties p = decodeProperties(props);//此处解密属性
		super.processProperties(beanFactoryToProcess, p);
	}
}

 xml配置:

  	<!--  原来占位符属性
	<bean id="webframe.datasource.config" class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
		-->
	<bean id="webframe.datasource.config" class="com.skyon.webframe.config.DecryptPropertyPlaceholderConfigurer">	
		<property name="order" value="1" />
    	<property name="ignoreUnresolvablePlaceholders" value="true" />
    	<property name="properties" ref="mm" />
        <!--  mm此处属性使用密文-->
	</bean>

 

分享到:
评论

相关推荐

    Spring属性占位符PropertyPlaceholderConfigurer的使用

    在Spring框架中,属性占位符`PropertyPlaceholderConfigurer`是一个重要的工具,用于处理配置文件中的属性值引用。它使得我们可以在XML配置文件中使用占位符`${...}`来引用外部属性文件中的值,从而使应用配置更加...

    属性占位符配置器

    在Spring框架中,**属性占位符配置器**(Property Placeholder Configurator)是一种强大的配置工具,它允许开发者在配置文件中使用占位符来引用外部属性文件中的值,从而实现了配置的动态化和灵活性。这一特性在处理...

    Spring Boot环境属性占位符解析及类型转换详解

    本文将深入探讨Spring Boot的环境属性占位符解析以及类型转换的过程,帮助你更好地理解和利用这些功能。 首先,让我们来看一下属性占位符解析。在Spring Boot中,属性可以引用其他属性,通过`${}`语法实现,例如`${...

    Spring实战之属性覆盖占位符配置器用法示例

    在Spring框架中,属性覆盖占位符配置器(PropertyOverrideConfigurer)是一个非常实用的工具,它允许我们在不修改Spring配置文件的情况下,通过外部属性文件来动态地覆盖Bean的属性值。这种方式增强了应用的灵活性...

    spring 的属性管理

    它支持SpEL表达式,并且可以解析${...}占位符形式的属性值。 4. **`Environment` 和 `PropertySourcesPlaceholderConfigurer`** `Environment`接口提供了获取属性的方法,可以在运行时动态获取属性值。`...

    org.springframework.beans.factory.config.PropertyPlaceholderConfigurer

    3. **处理嵌套占位符**:如果属性值中还包含其他占位符,会递归地进行替换,直到没有占位符为止。 4. **处理默认值**:如果某个占位符找不到对应的属性值,可以设置`ignoreUnresolvablePlaceholders`属性为`true`来...

    JAVA Spring使用外部属性文件

    - 使用`@Value`注解:可以直接在字段或方法参数上使用`@Value`注解,Spring会自动注入对应的属性值。例如,`@Value("${property.name}")`。 - 使用`@ConfigurationProperties`:针对复杂配置,可以创建一个Java类...

    在Spring中使用加密外部属性文件

    这些信息通常存储在`.properties`文件中,并通过占位符`${}`引用到Spring配置文件中。然而,对于敏感信息,如密码、API密钥等,直接明文存储在属性文件中存在安全风险。为了保护这些数据,我们需要采取加密措施。 ...

    spring简单属性

    至于“工具”标签,可能是指Spring提供的各种工具类,如`PropertySourcesPlaceholderConfigurer`,它是一个Bean后处理器,用于解析`@Value`注解中的占位符。 综上所述,"spring简单属性"涵盖了Spring框架中如何管理...

    关于spring系统中多系统的配置

    `ignoreUnresolvablePlaceholders`属性用于控制是否忽略无法解析的占位符,默认情况下如果Spring无法找到占位符对应的属性值,将会抛出异常。 ### 总结 通过上述介绍,可以看出Spring框架提供了灵活的方式来处理多...

    Spring读取配置文件属性实现方法

    在Spring框架中,有多种方式可以读取配置文件属性,本文将介绍其中两种常见的方法:使用 `@PropertySource` 注解和使用占位符获取配置文件属性。 二、使用 @PropertySource 注解读取配置文件 使用 `@Property...

    第十九章 Spring Environment 抽象(Environment Abstraction)1

    Spring Environment 抽象是Spring框架中的一个重要组成部分,它为应用程序提供了环境相关的配置信息,包括属性值的占位符处理、类型转换以及条件化的Bean装配管理。这一抽象在Spring 3.1版本中引入,旨在统一处理...

    spring使用属性文件

    `PropertyPlaceholderConfigurer`是一个Bean定义后处理器,它会替换Bean定义中的占位符(如`${key}`)为属性文件中的值。而`@PropertySource`注解可以直接在类级别上声明,指示Spring从指定的属性文件中读取属性。 ...

    spring-core组件详解——PropertyResolver属性解决器

    PropertyResolver的主要职责是根据属性名称获取对应的属性值,并能处理${...}格式的属性占位符,将它们替换为实际的值。 PropertyResolver接口提供了以下主要功能: 1. `getProperty(String propertyName)`: 这个...

    spring2.5 配置VM

    `PropertyPlaceholderConfigurer`允许我们在XML配置文件中使用 `${property}` 形式的占位符,这些占位符的值会在运行时被VM参数或系统属性替换。 例如,我们可以在XML配置中这样使用: ```xml ...

    spring

    - **PropertyPlaceholderConfigurer** 和 **PropertyOverrideConfigurer**:用于在运行时动态替换Bean配置中的占位符。 ### 结论 Spring框架以其强大的功能和灵活性,成为Java企业级应用开发的首选框架之一。通过...

    java类文件通过$获取properties文件的属性值

    这里`${sysId}`是一个占位符,表示从配置文件中读取名为`sysId`的属性值。 ```java import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Controller; import org....

    SpringJDBC

    5. **Parameterized Queries(参数化查询)**: Spring JDBC支持使用占位符(例如问号`?`)的参数化查询,可以防止SQL注入攻击,并简化SQL语句的编写。 6. **RowMapper**: 这是一个接口,用于将结果集的每一行映射为...

    Spring2.5-Reference_zh_CN.txt

    - **属性占位符**:Spring支持使用占位符来引用外部配置文件中的值,增强了系统的灵活性。 #### 五、面向切面编程(AOP) - **AOP基础**:面向切面编程是一种编程范式,它将横切关注点从业务逻辑中分离出来,提高...

Global site tag (gtag.js) - Google Analytics