package com.fengjx.ttwx.common.config;

 

import java.io.IOException;
import java.net.InetAddress;
import java.util.Enumeration;
import java.util.Properties;

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.config.ConfigurableListableBeanFactory;
import org.springframework.beans.factory.config.PropertyPlaceholderConfigurer;

/**
 * 自定义property配置加载
 * @author dennykong
 *
 */
public class ConfigPropertyPlaceholderConfigurer extends PropertyPlaceholderConfigurer {
  
  boolean printConfigOut =true;

	@Override
	protected void loadProperties(Properties props) throws IOException {
		try {
			super.loadProperties(props);
		} catch (IOException ex) {
			logger.warn(ex.getMessage() + ", will use default configuration.");
		}
	}

	@Override
	protected void processProperties(ConfigurableListableBeanFactory beanFactoryToProcess, Properties props)
			throws BeansException {

		String env = System.getProperty("ENV_MODE");
		logger.info("ENV_MODE is " + env);
		Properties appConfig = PropertiesHolder.INSTANCE.getAppConfig();
		mergeProperties(props, appConfig);
		 
		
		super.processProperties(beanFactoryToProcess, appConfig);
	}

	protected void mergeProperties(Properties propsSrc, Properties propsDest) {
		for (Object obj : propsSrc.keySet()) {
			String key = obj.toString();
			if (!propsDest.containsKey(obj)) {
				String value = propsSrc.getProperty(key);
				propsDest.setProperty(key, value);
				if (printConfigOut)
				  logger.info("config property [" + key + ": " + value + "]");				
			}
		}
	}
  
}

@@ -1,8 +1,9 @@
+%0A
 package 
@@ -38,128 +38,8 @@
 g;%0A%0A
- %0A%0Aimport java.io.IOException;%0Aimport java.net.InetAddress;%0Aimport java.util.Enumeration;%0Aimport java.util.Properties;%0A%0A
 impo
@@ -244,16 +244,74 @@
 gurer;%0A%0A
+import java.io.IOException;%0Aimport java.util.Properties;%0A%0A
 /**%0A * %E8%87%AA
@@ -325,16 +325,20 @@
 rty%E9%85%8D%E7%BD%AE%E5%8A%A0%E8%BD%BD%0A
+ * %0A
  * @auth
@@ -354,11 +354,8 @@
 ong%0A
- *%0A
  */%0A
@@ -443,19 +443,19 @@
 gurer %7B%0A
+%0A
   
-%0A
   boolea
@@ -476,16 +476,20 @@
 ut =
+ 
 true;%0A%0A
-%09
+    
 @Ove
@@ -486,33 +486,36 @@
 %0A%0A    @Override%0A
-%09
+    
 protected void l
@@ -571,19 +571,34 @@
 n %7B%0A
-%09%09try %7B%0A%09%09%09
+        try %7B%0A            
 supe
@@ -622,18 +622,24 @@
 props);%0A
-%09%09
+        
 %7D catch 
@@ -657,19 +657,28 @@
 n ex) %7B%0A
-%09%09%09
+            
 logger.w
@@ -741,17 +741,29 @@
 %22);%0A
-%09%09%7D%0A%09%7D%0A%0A%09
+        %7D%0A    %7D%0A%0A    
 @Ove
@@ -768,17 +768,20 @@
 verride%0A
-%09
+    
 protecte
@@ -858,16 +858,28 @@
 Process,
+%0A           
  Propert
@@ -888,20 +888,17 @@
 s props)
-%0A%09%09%09
+ 
 throws B
@@ -913,19 +913,24 @@
 ption %7B%0A
-%0A%09%09
+        
 String e
@@ -970,21 +970,28 @@
 %22);%0A
-%09%09
+        
 logger.
-info
+debug
 (%22EN
@@ -1010,18 +1010,24 @@
 + env);%0A
-%09%09
+        
 Properti
@@ -1083,18 +1083,24 @@
 nfig();%0A
-%09%09
+        
 mergePro
@@ -1130,17 +1130,16 @@
 g);%0A
-%09%09 %0A%09%09%0A%09%09
+        
 supe
@@ -1196,13 +1196,19 @@
 g);%0A
-%09%7D%0A%0A%09
+    %7D%0A%0A    
 prot
@@ -1279,18 +1279,24 @@
 Dest) %7B%0A
-%09%09
+        
 for (Obj
@@ -1326,19 +1326,28 @@
 et()) %7B%0A
-%09%09%09
+            
 String k
@@ -1367,19 +1367,28 @@
 ring();%0A
-%09%09%09
+            
 if (!pro
@@ -1414,20 +1414,32 @@
 obj)) %7B%0A
-%09%09%09%09
+                
 String v
@@ -1472,20 +1472,32 @@
 y(key);%0A
-%09%09%09%09
+                
 propsDes
@@ -1523,20 +1523,32 @@
 value);%0A
-%09%09%09%09
+                
 if (prin
@@ -1562,13 +1562,29 @@
 Out)
-%0A%09%09%09%09
+ %7B%0A                  
   lo
@@ -1592,12 +1592,13 @@
 ger.
-info
+debug
 (%22co
@@ -1646,26 +1646,56 @@
 %5D%22);
-%09%09%09%09%0A%09%09%09%7D%0A%09%09%7D%0A%09%7D%0A  
+%0A                %7D%0A            %7D%0A        %7D%0A    %7D%0A
 %0A%7D%0A

修改日志级别 & 格式化