1.未加密
config.properties配置
mail.host=192.168.0.100
mail.username=email_username
mail.password=email_password
mail.smtp.auth=true
mail.smtp.timeout=15000
mail.smtp.port=25
spring-context.xml
<!-- 加载 jdbc.properties 配置文件 -->
<bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:config.properties</value>
</list>
</property>
</bean>
2.已加密
config.properties配置
mail.host=192.168.0.100
mail.username=kpMmZE2dWLPujCGcj6ng6w==
mail.password=LPLELj4DeR/Z2CsM9GQY+A==
mail.smtp.auth=true
mail.smtp.timeout=15000
mail.smtp.port=25
AesPropertyPlaceholderConfigurer
package com.benz.utils;
import java.util.Properties;
import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;
public class AesPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
@Override
protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props)
throws BeansException {
try {
// 邮箱账号
String mailUsername = props.getProperty("mail.username");
// 邮箱密码
String mailPassword = props.getProperty("mail.password");
// 校验数据
if (ObjectUtils.isNotEmpty(mailUsername) && ObjectUtils.isNotEmpty(mailPassword)) {
// 解密属性值,并重新设置
props.setProperty("mail.username", AESUtils.aesDecrypt(mailUsername));
props.setProperty("mail.password", AESUtils.aesDecrypt(mailPassword));
}
super.processProperties(beanFactoryToProcess, props);
} catch (Exception e) {
e.printStackTrace();
}
}
}
spring-context.xml
<!-- 加载 jdbc.properties 配置文件 -->
<!-- <bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"> -->
<!-- 属性解密 -->
<bean class="com.benz.utils.AesPropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath*:config.properties</value>
<value>classpath*:jdbc.properties</value>
</list>
</property>
</bean>