重写spring读取配置文件,读取加密配置文件详解编程语言

[Java]代码    

package com.templet.spring; 
 
import java.io.BufferedReader; 
import java.io.ByteArrayInputStream; 
import java.io.IOException; 
import java.io.InputStream; 
import java.io.InputStreamReader; 
import java.util.Properties; 
 
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer; 
import org.springframework.core.io.Resource; 
import org.springframework.util.DefaultPropertiesPersister; 
import org.springframework.util.PropertiesPersister; 
 
public class DecryptPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer { 
	private Resource[] locations; 
 
	public void setLocations(Resource[] locations) { 
		this.locations = locations; 
	} 
 
	public void loadProperties(Properties props) throws IOException { 
		if (this.locations != null) { 
			PropertiesPersister propertiesPersister = new DefaultPropertiesPersister(); 
			for (int i = 0; i < this.locations.length; i++) { 
				Resource location = this.locations[i]; 
				if (logger.isInfoEnabled()) { 
					logger.info("Loading properties file from " + location); 
				} 
				InputStream is = null; 
				try { 
					is = location.getInputStream(); 
					BufferedReader in = new BufferedReader(new InputStreamReader(is, "UTF-8")); 
					StringBuffer buffer = new StringBuffer(); 
					String line = ""; 
					while ((line = in.readLine()) != null) { 
						buffer.append(line); 
					} 
					String rs=""; 
					if("dbconn.properties".equals(location.getFilename())){ 
						DESUtil des = new DESUtil("1234567"); 
						rs=des.decryptStr(buffer.toString()); 
					}else{ 
						rs =buffer.toString(); 
					} 
					propertiesPersister.load(props, new ByteArrayInputStream(rs.getBytes())); 
				} finally { 
					if (is != null) { 
						is.close(); 
					} 
				} 
			} 
		} 
	} 
}

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/8008.html

(0)
上一篇 2021年7月18日
下一篇 2021年7月18日

相关推荐

发表回复

登录后才能评论