// 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;
// 
// }


import com.jfinal.core.Controller;
import com.xxl.conf.core.XxlConfClient;
import com.xxl.conf.core.listener.XxlConfListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
package com.xxl.conf.sample.jfinal.controller;


/**
 * @author xuxueli 2018-05-24
 */
public class IndexController extends Controller {
    private static Logger logger = LoggerFactory.getLogger(IndexController.class);

    static {
        /**
         * 配置变更监听示例：可开发Listener逻辑，监听配置变更事件；可据此实现动态刷新JDBC连接池等高级功能；
         */
// 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-jfinal/src/main/java/com/xxl/conf/sample/jfinal/controller/IndexController.java
import com.jfinal.core.Controller;
import com.xxl.conf.core.XxlConfClient;
import com.xxl.conf.core.listener.XxlConfListener;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;

package com.xxl.conf.sample.jfinal.controller;


/**
 * @author xuxueli 2018-05-24
 */
public class IndexController extends Controller {
    private static Logger logger = LoggerFactory.getLogger(IndexController.class);

    static {
        /**
         * 配置变更监听示例：可开发Listener逻辑，监听配置变更事件；可据此实现动态刷新JDBC连接池等高级功能；
         */
        XxlConfClient.addListener("default.key01", new XxlConfListener(){