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>
配置类:
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>