笔者今天使用cookie时候,需要设置cookie的momain,path等参数时候,我不想java类中写死,于是就想怎么才能在配置文件中定义一个常量,然后我在java类中去读取呢,从而做到最大灵活。开发环境Spring3.X,借助工具<util:map></util:map>就可以实现分离。
一:.properties文件
blue.properties
#psm cookie配置文件
psm.cookiedomain = ".xx.com"
psm.cookiepath = "/"
二:引入该配置文件
<bean id="propertyConfigurer"
class="org.arrow.common.spring.EncPropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:blue.properties</value>
</list>
</property>
<property name="key">
<value>thisisakeylength16</value>
</property>
</bean>
三:xml中定义一个map
<!-- 参数读取工具 -->
<util:map id="cap" map-class="java.util.HashMap" key-type="java.lang.String"
value-type="java.lang.String">
<!-- 是否显示校验码 -->
<!-- <entry key="capTextShow" value="${capTextShow}" /> -->
<entry key="psm.cookiedomain" value="${psm.cookiedomain}"/>
<entry key="psm.cookiepath" value="${psm.cookiepath}"/>
</util:map>
四:java类中获取参数
public class CookieContants {
public static String COOKIE_DOMAIN = ".asiainfo.com";
public static String COOKIE_PATH = "/";
public static String COOKIE_NAME = "PSMID";
static {
WebApplicationContext wac = ContextLoader.getCurrentWebApplicationContext();
Map<String, Object> initParam = wac.getBean("cap", Map.class);
COOKIE_DOMAIN = MapUtils.getString(initParam, "psm.cookiedomain", COOKIE_DOMAIN);
COOKIE_PATH = MapUtils.getString(initParam, "psm.cookiepath", COOKIE_PATH);
}
}