Bean自动赋值组件【MiniBus】推荐

前言

不知大家是否和笔者曾经有一样的揪心事,那便是在实际程序开发过程中,我们往往需要将一个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方法 */
}

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值