需要读取的文件位置
下面是代码:
FileConfig fileConfig = new FileConfig("conf/parameter-marketing-care-app.xml"); --29行后面会提到,报错误的行 System.out.println(fileConfig + "--" + fileConfig.getFilePath() + "--" +fileConfig.isValid()); int baseNumber = fileConfig.getInteger("marketing.partition.baseNumber", 32); List<Integer> modList = fileConfig.getList(Integer.class, "marketing.partition.modList", Arrays.asList(1, 3, 5, 7, 11, 13, 17, 23, 29)); System.out.println(baseNumber + "baseNumber" + modList + "modList"); PartitionInfo partitionInfo = new PartitionInfo(baseNumber, modList); System.out.println(partitionInfo.getBaseNumber() + "---" + partitionInfo.getModList()); 封装的方法: public Integer getInteger(String key, Integer def) { Configuration configInst = this.getConfig(); return configInst != null ? configInst.getInteger(key, def) : def; } public <T> List<T> getList(Class<T> cls, String key, List<T> def) { Configuration configInst = this.getConfig(); return configInst != null ? configInst.getList(cls, key, def) : def; } |
Junit测试只能读到默认的:
wangjubao.base.config.FileConfig@1e81f4dc--D:\workspace\crm-app-care-marketing\conf\parameter-marketing-care-app.xml--false 32baseNumber[1, 3, 5, 7, 11, 13, 17, 23, 29]modList 32---[1, 3, 5, 7, 11, 13, 17, 23, 29] |
在开发环境测试报:
java.lang.NoSuchMethodError: org.apache.commons.beanutils.PropertyUtilsBean.addBeanIntrospector(Lorg/apache/commons/beanutils/BeanIntrospector;)V at org.apache.commons.configuration2.beanutils.BeanHelper.initBeanUtilsBean(BeanHelper.java:631) at org.apache.commons.configuration2.beanutils.BeanHelper.<clinit>(BeanHelper.java:89) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Class.java:264) at com.sun.proxy.$Proxy22.<clinit>(Unknown Source) at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at java.lang.reflect.Proxy.newProxyInstance(Proxy.java:739) at org.apache.commons.configuration2.builder.fluent.Parameters.createParametersProxy(Parameters.java:294) at org.apache.commons.configuration2.builder.fluent.Parameters.fileBased(Parameters.java:185) at wangjubao.base.config.FileConfig.<init>(FileConfig.java:30) at wangjubao.base.config.FileConfig.<init>(FileConfig.java:23) at crm.app.care.marketing.data.SellerPartition.init(SellerPartition.java:29) at crm.app.care.marketing.CareMarketingAppMain.main(CareMarketingAppMain.java:41) |