1、一个使用Properties的配置示例:
配置类:
public class ThreadPoolConfiguration implements Serializable{ /** * */ private static final long serialVersionUID = -4963792647106252083L; // --------------------------------------------------------------- Constants public static final String PROPERTY_CORE_POOLSIZE = "corePoolSize"; public static final String PROPERTY_MAX_POOLSIZE = "maximumPoolSize"; public static final String PROPERTY_KEEPALIVE = "keepAliveTime"; // ------------------------------------------------------------ Protected data protected Properties configurationProperties = new Properties(); // ------------------------------------------------------------ Constructors public ThreadPoolConfiguration() { } public ThreadPoolConfiguration(Properties prop) { this.configurationProperties = prop; } // ---------------------------------------------------------- Public methods /** * Returns the properties to use configuring a DataSource * @return the properties to use configuring a DataSource */ public Properties getProperties() { return (Properties) configurationProperties.clone(); } /** * Returns the property with the given name * @param key the property name * @return the property value or null if not found */ public String getProperty(String key) { return configurationProperties.getProperty(key); } /** * Sets a property * @param key the property name * @param value the property value */ public void setProperty(String key, String value) { configurationProperties.setProperty(key, value); } /** * Returns an enumeration of all the properties in this configuration * @return an enumeration of all the keys in this property list */ public Enumeration propertyNames() { return configurationProperties.propertyNames(); } /** * Clears this configuration so that it contains no keys. */ public void clear() { configurationProperties.clear(); } @Override public ThreadPoolConfiguration clone() { if (configurationProperties == null) { return null; } return new ThreadPoolConfiguration((Properties) configurationProperties.clone()); } @Override public boolean equals(Object o) { return configurationProperties.equals(o); } @Override public int hashCode() { return configurationProperties.hashCode(); } }//end class ThreadPoolConfiguration
配置文件:
<?xml version="1.0" encoding="UTF-8"?> <java version="1.6.0" class="java.beans.XMLDecoder"> <object class="com.nearme.find.myphone.config.ThreadPoolConfiguration"> <!-- 线程池维护线程的最少数量 --> <void method="setProperty"> <string>corePoolSize</string> <string>8</string> </void> <!-- 线程池维护线程的最大数量 --> <void method="setProperty"> <string>maximumPoolSize</string> <string>20</string> </void> <!-- 线程池维护线程所允许的空闲时间(以秒为单位)--> <void method="setProperty"> <string>keepAliveTime</string> <string>60</string> </void> </object> </java>
2、使用string、int基本类型的配置示例:
配置类:
public class LoginConfiguration implements Serializable { /** * */ private static final long serialVersionUID = -4634263968118788391L; public String getUsercenter() { return usercenter; } public void setUsercenter(String usercenter) { this.usercenter = usercenter; } public String getDomain() { return domain; } public void setDomain(String domain) { this.domain = domain; } public String getLocalUrl() { return localUrl; } public void setLocalUrl(String localUrl) { this.localUrl = localUrl; } public int getTimeout() { return timeout; } public void setTimeout(int timeout) { this.timeout = timeout; } public int getInterval() { return interval; } public void setInterval(int interval) { this.interval = interval; } public MemcacheClient getUcMemcachedManager() { return ucMemcachedManager; } public void setUcMemcachedManager(MemcacheClient ucMemcachedManager) { this.ucMemcachedManager = ucMemcachedManager; } protected String usercenter = null; protected String domain = null; protected String localUrl = null; protected int timeout = 30 * 60 * 1000;//过期时间默认是15分钟 protected int interval = 2 * 60 * 1000;//两分钟更新一次memcached会话 private MemcacheClient ucMemcachedManager = null; }
配置文件:
<?xml version="1.0" encoding="UTF-8"?> <java version="1.6.0" class="java.beans.XMLDecoder"> <object class="com.nearme.commons.tools.cache.config.LoginConfiguration"> <!-- 会话过期访问的登陆地址 --> <void property="usercenter"> <string>http://uc.dev.ocloud.com:9091/</string> </void> <!-- cookie共享域名 --> <void property="domain"> <string>.local.ocloud.com</string> </void> <!-- 登陆成功跳转的地址 --> <void property="localUrl"> <string>http://sync.dev.ocloud.com:9093/main.vm</string> </void> <!-- 用户信息存储的memcached配置 --> <void property="ucMemcachedManager"> <object class="com.nearme.commons.tools.cache.DangaMemcacheClientImpl"> <void property="hosts"> <array class="java.lang.String" length="1"> <void index="0"> <string>127.0.0.1:11211</string> </void> </array> </void> <void property="weights"> <array class="java.lang.Integer" length="1"> <void index="0"> <int>5</int> </void> </array> </void> </object> </void> <!-- 会话过期时间 --> <void property="timeout"> <int>900000</int> </void> <!-- 会话过期更新间隔 --> <void property="interval"> <int>12000</int> </void> </object> </java>
3、使用数组的配置示例:
配置类:
public class ServerConfiguration implements Serializable { /** * */ private static final long serialVersionUID = 1L; //头部连接配置 private String []links = null; public String[] getLinks() { return links; } public void setLinks(String[] links) { this.links = links; } }//end class ServerConfiguration
配置文件:
<?xml version="1.0" encoding="UTF-8"?> <java version="1.6.0" class="java.beans.XMLDecoder"> <object class="com.nearme.find.myphone.config.ServerConfiguration"> <!-- 头部链接配置 --> <void property="links"> <array class="java.lang.String" length="3"> <void index="0"> <string>http://www.nearme.com.cn</string> </void> <void index="1"> <string>http://appstore1.wanyol.com:888</string> </void> <void index="2"> <string>http://sync1.wanyol.com:8080</string> </void> </array> </void> </object> </java>
4、使用队列的配置示例:
配置类:
public class ServerConfiguration { /** * */ private static final long serialVersionUID = 1L; //默认群组配置 private ArrayList<String> defaultGroups = null; public ArrayList<String> getDefaultGroups() { return defaultGroups; } public void setDefaultGroups(ArrayList<String> defaultGroups) { this.defaultGroups = defaultGroups; } }//end class ServerConfiguration
配置文件:
<?xml version="1.0" encoding="UTF-8"?> <java version="1.6.0" class="java.beans.XMLDecoder"> <object class="com.nearme.sync.config.ServerConfiguration"> <void property="defaultGroups"> <object class="java.util.ArrayList"> <void method="add"> <string>家人</string> </void> <void method="add"> <string>同事</string> </void> <void method="add"> <string>朋友</string> </void> <void method="add"> <string>重要人士</string> </void> </object> </void> </object> </java>