// Path: xxl-conf-core/src/main/java/com/xxl/conf/core/XxlConfClient.java
// public class XxlConfClient {
// 
// 	public static String get(String key, String defaultVal) {
// 		return XxlConfLocalCacheConf.get(key, defaultVal);
// 	}
// 
// 	/**
// 	 * get conf (string)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static String get(String key) {
// 		return get(key, null);
// 	}
// 
// 	/**
// 	 * get conf (boolean)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static boolean getBoolean(String key) {
// 		String value = get(key, null);
// 		if (value == null) {
// 			throw new XxlConfException("config key [" + key + "] does not exist");
// 		}
// 		return Boolean.valueOf(value);
// 	}
// 
// 	/**
// 	 * get conf (short)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static short getShort(String key) {
// 		String value = get(key, null);
// 		if (value == null) {
// 			throw new XxlConfException("config key [" + key + "] does not exist");
// 		}
// 		return Short.valueOf(value);
// 	}
// 
// 	/**
// 	 * get conf (int)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static int getInt(String key) {
// 		String value = get(key, null);
// 		if (value == null) {
// 			throw new XxlConfException("config key [" + key + "] does not exist");
// 		}
// 		return Integer.valueOf(value);
// 	}
// 
// 	/**
// 	 * get conf (long)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static long getLong(String key) {
// 		String value = get(key, null);
// 		if (value == null) {
// 			throw new XxlConfException("config key [" + key + "] does not exist");
// 		}
// 		return Long.valueOf(value);
// 	}
// 
// 	/**
// 	 * get conf (float)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static float getFloat(String key) {
// 		String value = get(key, null);
// 		if (value == null) {
// 			throw new XxlConfException("config key [" + key + "] does not exist");
// 		}
// 		return Float.valueOf(value);
// 	}
// 
// 	/**
// 	 * get conf (double)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static double getDouble(String key) {
// 		String value = get(key, null);
// 		if (value == null) {
// 			throw new XxlConfException("config key [" + key + "] does not exist");
// 		}
// 		return Double.valueOf(value);
// 	}
// 
// 	/**
// 	 * add listener with xxl conf change
// 	 *
// 	 * @param key
// 	 * @param xxlConfListener
// 	 * @return
// 	 */
// 	public static boolean addListener(String key, XxlConfListener xxlConfListener){
// 		return XxlConfListenerFactory.addListener(key, xxlConfListener);
// 	}
// 	
// }
// 
// Path: xxl-conf-core/src/main/java/com/xxl/conf/core/listener/XxlConfListener.java
// public interface XxlConfListener {
// 
//     /**
//      * invoke when first-use or conf-change
//      *
//      * @param key
//      */
//     public void onChange(String key, String value) throws Exception;
// 
// }
// 
// Path: xxl-conf-samples/xxl-conf-sample-spring/src/main/java/com/xxl/conf/sample/demo/DemoConf.java
// public class DemoConf {
// 
// 	/**
// 	 * XXL-CONF：@XxlConf 注解方式
// 	 */
// 	@XxlConf("default.key02")
// 	public String paramByAnno;
// 
// 
// 	/**
// 	 * XXL-CONF：$XxlConf{default.key03} XML占位符方式
// 	 */
// 	public String paramByXml;
// 
// 	public void setParamByXml(String paramByXml) {
// 		this.paramByXml = paramByXml;
// 	}
// 
// }


import com.xxl.conf.core.XxlConfClient;
import com.xxl.conf.core.listener.XxlConfListener;
import com.xxl.conf.sample.demo.DemoConf;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.LinkedList;
import java.util.List;
package com.xxl.conf.sample.controller;



/**
 * @author xuxueli 2018-02-04 01:27:30
 */
@Controller
public class IndexController {
    private static Logger logger = LoggerFactory.getLogger(IndexController.class);

    static {
        /**
         * 配置变更监听示例：可开发Listener逻辑，监听配置变更事件；可据此实现动态刷新JDBC连接池等高级功能；
         */
        XxlConfClient.addListener("default.key01", new XxlConfListener(){
            @Override
            public void onChange(String key, String value) throws Exception {
                logger.info("配置变更事件通知：{}={}", key, value);
            }
        });
    }

// Path: xxl-conf-core/src/main/java/com/xxl/conf/core/XxlConfClient.java
// public class XxlConfClient {
// 
// 	public static String get(String key, String defaultVal) {
// 		return XxlConfLocalCacheConf.get(key, defaultVal);
// 	}
// 
// 	/**
// 	 * get conf (string)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static String get(String key) {
// 		return get(key, null);
// 	}
// 
// 	/**
// 	 * get conf (boolean)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static boolean getBoolean(String key) {
// 		String value = get(key, null);
// 		if (value == null) {
// 			throw new XxlConfException("config key [" + key + "] does not exist");
// 		}
// 		return Boolean.valueOf(value);
// 	}
// 
// 	/**
// 	 * get conf (short)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static short getShort(String key) {
// 		String value = get(key, null);
// 		if (value == null) {
// 			throw new XxlConfException("config key [" + key + "] does not exist");
// 		}
// 		return Short.valueOf(value);
// 	}
// 
// 	/**
// 	 * get conf (int)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static int getInt(String key) {
// 		String value = get(key, null);
// 		if (value == null) {
// 			throw new XxlConfException("config key [" + key + "] does not exist");
// 		}
// 		return Integer.valueOf(value);
// 	}
// 
// 	/**
// 	 * get conf (long)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static long getLong(String key) {
// 		String value = get(key, null);
// 		if (value == null) {
// 			throw new XxlConfException("config key [" + key + "] does not exist");
// 		}
// 		return Long.valueOf(value);
// 	}
// 
// 	/**
// 	 * get conf (float)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static float getFloat(String key) {
// 		String value = get(key, null);
// 		if (value == null) {
// 			throw new XxlConfException("config key [" + key + "] does not exist");
// 		}
// 		return Float.valueOf(value);
// 	}
// 
// 	/**
// 	 * get conf (double)
// 	 *
// 	 * @param key
// 	 * @return
// 	 */
// 	public static double getDouble(String key) {
// 		String value = get(key, null);
// 		if (value == null) {
// 			throw new XxlConfException("config key [" + key + "] does not exist");
// 		}
// 		return Double.valueOf(value);
// 	}
// 
// 	/**
// 	 * add listener with xxl conf change
// 	 *
// 	 * @param key
// 	 * @param xxlConfListener
// 	 * @return
// 	 */
// 	public static boolean addListener(String key, XxlConfListener xxlConfListener){
// 		return XxlConfListenerFactory.addListener(key, xxlConfListener);
// 	}
// 	
// }
// 
// Path: xxl-conf-core/src/main/java/com/xxl/conf/core/listener/XxlConfListener.java
// public interface XxlConfListener {
// 
//     /**
//      * invoke when first-use or conf-change
//      *
//      * @param key
//      */
//     public void onChange(String key, String value) throws Exception;
// 
// }
// 
// Path: xxl-conf-samples/xxl-conf-sample-spring/src/main/java/com/xxl/conf/sample/demo/DemoConf.java
// public class DemoConf {
// 
// 	/**
// 	 * XXL-CONF：@XxlConf 注解方式
// 	 */
// 	@XxlConf("default.key02")
// 	public String paramByAnno;
// 
// 
// 	/**
// 	 * XXL-CONF：$XxlConf{default.key03} XML占位符方式
// 	 */
// 	public String paramByXml;
// 
// 	public void setParamByXml(String paramByXml) {
// 		this.paramByXml = paramByXml;
// 	}
// 
// }


// Path: xxl-conf-samples/xxl-conf-sample-springboot/src/main/java/com/xxl/conf/sample/controller/IndexController.java
import com.xxl.conf.core.XxlConfClient;
import com.xxl.conf.core.listener.XxlConfListener;
import com.xxl.conf.sample.demo.DemoConf;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import javax.annotation.Resource;
import java.util.LinkedList;
import java.util.List;

package com.xxl.conf.sample.controller;



/**
 * @author xuxueli 2018-02-04 01:27:30
 */
@Controller
public class IndexController {
    private static Logger logger = LoggerFactory.getLogger(IndexController.class);

    static {
        /**
         * 配置变更监听示例：可开发Listener逻辑，监听配置变更事件；可据此实现动态刷新JDBC连接池等高级功能；
         */
        XxlConfClient.addListener("default.key01", new XxlConfListener(){
            @Override
            public void onChange(String key, String value) throws Exception {
                logger.info("配置变更事件通知：{}={}", key, value);
            }
        });
    }

    @Resource