inieditor操作conf、ini文件新思路

发一篇处理ini、conf文件新思路的帖子吧,解决实际问题相当的方便。

inieditor的这个工具类来操作ini、conf的用法我就不多说了,网上一搜一大堆,我说一下如何扩展这个工具的思路,本人已做扩展,由于属于公司应用的东西不便上传,这里只说扩展思路及其使用的便捷性。下面举例

我要操作文件如下格式

[test]

name = se

age = 18

sex = 男

spcil = 无胸(女的有胸,好像有点不恰当,将就着看吧,重要的是处理过程)

这里的test称之为section;name,age称之为key;se、18称之为value;

文件对应的实体类为Person.java

public class Persoin{

private Stirng name;

private int age;

private String xb;

private String specil;

.....省略get/set方法

public void aa(){

//省略一些操作

}

}

常规的做法就是Inieditor conf = new Inieditor();加载文件,conf.get("test", name) 再把值放在对象中,存储的时候也是这样,这样属性少的时候没有什么关系,一旦属性特别多如10,20个的时候,你的java中就都是结构相同的代码,除了section,key不同,下面才是重点。

我们完全可以团通过注解+反射简化这样的存储操作,甚至加上我们通用的逻辑关系来完成存取的工作,最终达到的效果就是一行顶10行。接下来说说怎么做

例如我定义注解

@Target(ElementType.FIELD)
@Retention(RetentionPolicy.RUNTIME)
public @interface Test {
/**
* ini或是conf中对应的key值,如果key不指定,那么文件中key与类中的属性名称一致
* @return
*/
String key() default "";
/**
* 属性的实际值与我期待的值一样
* @return
*/
String assertValue() default "";
/**
* 忽略那些属性
* @return
*/

String[] ignore() default {};

/**
* 要调用的方法
* @return
*/
String callMethod() default "";

}

此时Persion类改为如下

public class Persion{

@Test(key="name")

private String name;

@Test

private int age;

@Test(key="sex", assertValue=“男”, callMethod=“aa”)

private String xb;

@Test

private String specil;

. ....省略get/set方法

public void aa(){

//省略一些操作

}


}

接下来通过反射解析注解,当解析到xb的属性为“男”时,发现与注解断言的值是一样,这时就可以调用类中“aa”方法,对Persion中的一些属性值作调整,从而实现逻辑关系的处理。最终通过将属性值通过注解的方式全部保存到文件中。

如果你的注解扩张的相当的完善,包括对属性值改变的顺序、或是对文件添加线程的安全操作,那么当你执行存储的操作时,可能只需要几行代码,而且通用性特别强!!!!


Inieditor + 注解 + 反射 简化ini、conf文件操作的处理思路大致就是这样。 希望对您有所帮助~~~~~~


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值