spring PropertyPlaceholderConfigurer自定义属性

来源:互联网 发布:阿里云 数梦工场 编辑:程序博客网 时间:2024/06/05 08:36

spring PropertyPlaceholderConfigurer自定义属性

需要继承spring的PropertyPlaceholderConfigurer类
java代码

public class ConfigInitLoadingConfigurer extends PropertyPlaceholderConfigurer {    private static final Logger log = LoggerFactory.getLogger(ConfigInitLoadingConfigurer.class);    private boolean override = true;    private static String[] keyPatterns;    private HessianConfigRetrieveServiceImp configRetrieveService = new HessianConfigRetrieveServiceImp();    private HessianConfigRetrieveService selfConfigRetrieveService;    private HessianAppRegisterService selfAppRegisterService;    private HashMap<String, String> keyMappings = new HashMap();    private List<String> prefixStripKeys = new ArrayList();    private static String appName;    private static String appEnv;    public void setSelfConfigRetrieveService(HessianConfigRetrieveService selfConfigRetrieveService) {        this.selfConfigRetrieveService = selfConfigRetrieveService;    }    public boolean isOverride() {        return this.override;    }    public void setOverride(boolean override) {        this.override = override;    }    public void setLocalStoreEnabled(boolean enabled) {        DynCfgUtil.setLocalStoreEnabled(enabled);    }    public static String[] getKeyPatterns() {        return keyPatterns;    }    public void setKeyPatterns(String[] keyPatterns) {        keyPatterns = keyPatterns;    }    public HashMap<String, String> getKeyMappings() {        return this.keyMappings;    }    public void setKeyMappings(HashMap<String, String> keyMappings) {        this.keyMappings = keyMappings;    }    public List<String> getPrefixStripKeys() {        return this.prefixStripKeys;    }    public void setPrefixStripKeys(List<String> prefixStripKeys) {        this.prefixStripKeys = prefixStripKeys;    }    public static String getAppName() {        if(StringUtils.isBlank(appName)) {            appName = getAppNameByProperties();            if(StringUtils.isBlank(appName)) {                if(log.isErrorEnabled()) {                    log.error("参数appName必须配置,不能为空");                }                throw new IllegalArgumentException("参数appName必须进行配置");            }        }        log.info("current app name:" + appName);        return appName;    }    public void setAppName(String appName) {        log.info("setAppName name:" + appName);        appName = appName;    }    public static String getAppEnv() {        if(StringUtils.isBlank(appEnv)) {            log.info("appEnv env is null");            return null;        } else {            return appEnv;        }    }    public void setAppEnv(String appEnv) {        log.info("setAppEnv env:" + appEnv);        appEnv = appEnv;    }    public void setSelfAppRegisterService(HessianAppRegisterService selfAppRegisterService) {        this.selfAppRegisterService = selfAppRegisterService;    }    public ConfigInitLoadingConfigurer() {    } }

spring 配置

<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans"       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.5.xsd"       default-lazy-init="true">    <import resource="classpath*:/context/acms-client.xml" />    <bean class="com.uns.inf.acms.client.config.ConfigInitLoadingConfigurer"          parent="baseConfigurer" lazy-init="false">        <property name="appName" value="app-test" />        <property name="appEnv" value="${env}" />        <property name="prefixStripKeys">            <list>                <value>cash.${env}</value>            </list>        </property>        <property name="keyPatterns" value="XXXX,XXX.${env}" />    </bean></beans>

阅读全文
0 0
原创粉丝点击