BeanMapping发布1.0.2版本
背景
??BeanMapping是什么? 请查看我之前的一篇文章: ?我也造了个轮子:BeanMapping(属性拷贝)?
版本变更内容??convetor包名重构,拼写错误??ScriptExecutor接口重构,加上ScriptContext操作??FiledSetExecutor去除对args的强制匹配依赖??mapping支持name定义??mapping支持嵌套映射/集合映射对象的name定义??增加NullSymbolGetExecutor的实现,支持无源属性的映射
相比于?BeanMapping发布1.0.1版本,主要增加的两个特性:特性1:mapping支持别名定义
可以解决的需求:
map<->map之间可以有不同的映射规则,服务化接口用map这样弱类型的情况会比较多.?嵌套映射,集合映射都可以指定特定的映射规则,改变原先的默认按照class类型查找的方式testcase : ?https://raw.github.com/agapple/mapping4java/master/src/test/java/com/agapple/mapping/BeanMappingNestAndNameTest.java?
@Test public void testNullSymbol() { // 测试下null的特殊属性 BeanMappingBuilder builder = new BeanMappingBuilder() { protected void configure() { behavior().debug(true).mappingEmptyStrings(false).mappingNullValue(false).trimStrings(true);// 设置行为 mapping(HashMap.class, HashMap.class); fields(srcField("null"), targetField(ONE_OTHER, String.class)).defaultValue("10"); } }; BeanMapping mapping = new BeanMapping(builder); Map dest = new HashMap(); mapping.mapping(new HashMap(), dest); assertEquals(dest.get(ONE_OTHER), "10"); }后续计划:
- 支持object factory模式,允许自己控制嵌套对象的创建过程,目前默认是系统通过构造函数进行newInstance.fel script实现支持 (http://www.iteye.com/news/24711-Fel-java-script)
?