前言
不知大家是否和笔者曾经有一样的揪心事,那便是在实际程序开发过程中,我们往往需要将一个POJO中的字段值赋值于另一个POJO中的字段。一般来说我们都是直接采用set的方式手动赋值,不过一旦字段多达几十个的时候,这就纯粹成了体力活,并且伴随着一定的风险。
我们其实需要一种更高效的方式来帮我们完成这些基数作业层,而只需关注具体的业务即可。或许有很多开发人员早已思考到这个问题,并编写有自己的组件,但这些组件往往都是伴随有局限性的,甚至强制要求多个POJO的字段名称必须保持一致。这些“不合理”的要求MiniBus都已经帮你解决了,且具有更好的复用性、延伸性。
一、下载MiniBus
大家可以从http://code.google.com/p/sapphire-cache/downloads/detail?name=minibus-1.0.0-BETA.jar&can=2&q=#makechanges站点下载MiniBus的最新构件版本。
目前MiniBus并没有实现开源,那是因为目前版本过低,或许在后续版本中,MiniBus将能够实现开源。
二、MiniBus的使用
MiniBus的使用极其简单,它可以适用于任何Java项目,且完全可以独立于web容器运行。大家只需要理解并掌握@Assignment、@Paramater、AnnotationContext的用法即可。
@Assignment注解用于标注需要被自动赋值的目标对象,只有标记了@Assignment的POJO才能够实现后续的自动赋值,也就是说@Assignment作用于类型级别。@Paramater则用于标记目标对象字段,也就是说@Paramater用于定义哪些字段需要被自动赋值。而AnnotationContext抽象类则作为赋值入口,并提供有setParam()方法来实现目标对象与源对象之间的自动赋值操作。
我们首先定义一个源对象Bean:
public class InfoBean { public int infoId; public String userName; public String passWord; public String email; /* 此处省略set和get方法 */ }
接着定义一个目标对象Bean,并标记Minibus提供的@Assignment、@Paramater注解:
@Assignment public class InfoBean2 { @Paramater public int infoId; @Paramater public String userName; @Paramater public String passWord; @Paramater public String email; /* 此处省略set和get方法 */ }
使用AnnotationContext实现自动赋值:
public static void main(String[] args) { // TODO Auto-generated method stub InfoBean info1 = new InfoBean(); info1.setInfoId(1); info1.setUserName("minibus"); info1.setEmail("test@gmail.com"); info1.setPassWord("123456"); InfoBean2 info2 = new InfoBean2(); /* 目标对象,源对象 */ AnnotationContext.setParam(info2, info1); }
当然在实际开发过程中,或许POJO之间的字段名称不经相同,我们也不可能强制要求需要实现自动赋值的POJO
之间必须保持相同的字段名称,这个时候我们则可以使用@Paramater注解的缺省value属性或者setName属性进行字段
名称的二次定义。
@Assignment public class InfoBean2 { @Paramater("userId") public int id; @Paramater("userName") public String name; @Paramater("passWord") public String pwd; @Paramater("email") public String e_mail; /* 此处省略set和get方法 */ }
相关推荐
自制工具,方便在两个Bean之间赋值,而且自动追加注释。 .netframework2下动作。
在Spring框架中,核心即IOC,其具体实现就是依赖注入,一个简单的案例,说明依赖注入,运行即可。
java bean自动生成工具,根据表结构自动生成Java实体对象
NULL 博文链接:https://zywang.iteye.com/blog/413003
组件扫描(component scanning):Spring会自动发现应用上下文中所创建的bean。 自动装配(autowiring):Spring自动满足bean之间的依赖。 1 使用@Component定义bean 在类声明的前面使用@Component对类进行标注,这...
对Spring如何获取Bean做一下代码明细
bean加入spring容器管理的方式,bean加入applicationcontext容器的方式
自动生成XML和bean工具,都已经做好了,需要你自己建立个表。如果你用的mysql,你只需要更改下配置文件即可,如果是oracle,你下载个数据库连接包,更下下配置文件。struts+mybatis+spring。 generator.xml: 配置...
在Spring中,编写配置文件时,除了使用set方法对属性进行注入,另一种方式就是利用构造器对属性进行赋值。
Java Bean自动生成系统的设计与实现.pdf
使用工具可以自动生成mybatis的mapper.xml、Mapper.java和相应的bean
spring自动扫描和管理Bean的示例
运行项目,可以选择数据库的某张表进行填表名,类名,进行建bean的代码,下好不会用可以发邮箱到1297237518@qq.com
Java Bean自动生成系统的设计与实现
只需在配置文件ibatorConfig.xml 更改tableName="你的表名"即可自动生成全部。 记住更改jdbc路径和mysql-connector-java-5.1.6-bin.jar的路径。
ean的自动装配,有4种 (1)no:不做任何操作 (2)byName:根据属性 名 自动装配,设值注入 <bean id="xxx" class="xxx" ></bean> (3)byType:根据属性 类型 自动装配,相同类型多个会抛出异常,设值注入 <bean...
试验题目:无状态Session Bean组件的开发与应用。 试验目的:通过对简单无状态会话Bean组件的编写,加深对EJB理论知识的理解,为更深层的EJB应用做准备。 试验任务:根据EJB组件的结构体系和运行机理,编写实现显示...
本篇文章主要介绍了浅谈Spring装配Bean之组件扫描和自动装配,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
试验题目:Session Bean组件的开发与应用。 试验目的:通过对简单会话Bean组件的编写,加深对EJB理论知识的理解,为更深层的EJB应用做准备。 试验任务:设计一个会话Bean,进行计数。将当前的计数值存储在Bean中,当...
自动构造Java的Bean类,暂时仅支持定义包名、类名、带参构造方法、成员变量及其对应的get和set方法,同eclipse里面该项功能,不过本项目是通过配置文件实现,可以根据自己的需要进行拓展,平时用起来省时省力。