`
gao_xianglong
  • 浏览: 467055 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

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方法 */
}

 

 

 

5
1
分享到:
评论
3 楼 didiluck 2013-08-21  
我也想知道性能怎么样
2 楼 gao_xianglong 2013-06-14  
need_faith 写道
正好最近做项目中遇到bean赋值的问题,楼主能否给出和apache common包里的BeanUtils#copyProperteis的性能比较,因为我遇到的问题是,apache的这个工具方法性能很低,数据在一万条以上,bean字段在50个左右,做个性能比较,看看怎么样


apache common包里的BeanUtils我没用过,但据了解copyProperteis方法是针对对象浅克隆,也就是说返回的是源对象的一份拷贝,但此拷贝所针对的是同一类型。MiniBus纯粹是满足不同POJO之间字段的自动赋值。
1 楼 need_faith 2013-06-14  
正好最近做项目中遇到bean赋值的问题,楼主能否给出和apache common包里的BeanUtils#copyProperteis的性能比较,因为我遇到的问题是,apache的这个工具方法性能很低,数据在一万条以上,bean字段在50个左右,做个性能比较,看看怎么样

相关推荐

    Bean之间赋值工具

    自制工具,方便在两个Bean之间赋值,而且自动追加注释。 .netframework2下动作。

    通过set方法给bean赋值.zip

    在这个案例中,我们将通过"通过set方法给bean赋值"来深入理解这一概念。 依赖注入可以通过三种方式实现:构造器注入、设值注入(通过setter方法)和接口注入。这里我们主要关注设值注入,因为它是最常见且直观的一...

    利用反射实现JavaBean 的自动赋值

    ### 利用反射实现JavaBean的自动赋值 在软件开发过程中,特别是在Web应用程序的开发中,经常会遇到需要将表单提交的数据绑定到JavaBean对象上的需求。这可以通过多种方式实现,例如使用Spring MVC等框架的自动绑定...

    Struts中FormBean的日期类型字段赋值自动转化

    本篇文章将深入探讨在Struts中FormBean的日期类型字段如何进行赋值以及自动转化。 一、FormBean的概念与作用 FormBean是Struts中的一种特殊Java类,用于封装HTTP请求中的参数。它们通常继承自`org.apache.struts....

    java bean自动生成工具

    为了解决这个问题,开发者们发明了Java Bean自动生成工具,它可以自动根据数据库表结构生成对应的Java实体对象,大大提高了开发效率。 本文将详细介绍Java Bean自动生成工具以及如何使用"XlsToCode"这个特定的工具...

    Spring定义bean的三种方式和自动注入

    Spring提供两种主要的自动注入方式:`byName`和`byType`,以及更推荐的`@Autowired`注解。 - `byName`:根据Bean的属性名查找相同名称的Bean进行注入。 - `byType`:如果Bean的属性类型只有一个匹配的Bean,那么...

    通过bean的构造器赋值.zip

    总结,通过bean的构造器赋值是Spring框架中实现依赖注入的有效手段,它有助于增强代码的可读性和可维护性,降低组件间的耦合度。在实际开发中,根据项目需求和设计原则灵活选择注入方式,可以更好地利用Spring的DI...

    spring自动生成bean项目

    为了简化这一过程,Spring提供了一种自动创建Bean的机制,这就是所谓的"代码生成"或者"Bean自动生成"。本项目"spring自动生成bean项目"旨在通过自动化的方式,帮助开发者根据数据库表结构快速生成对应的Java Bean...

    spring自动扫描和管理Bean的示例

    在Spring框架中,自动扫描和管理Bean是一种便捷的方式,它允许开发者无需显式地在配置文件中声明每个Bean,而是让Spring容器自动发现并管理应用中的组件。这一特性极大地简化了Spring应用的配置,提高了开发效率。...

    Spring如何获取Bean

    Spring 中获取 Bean 的多种方式 在 Spring 框架中,获取 Bean 是一个非常重要的步骤,因为它是使用 Spring 框架的基础。Spring 提供了多种方式来获取 Bean,这些方式可以根据不同的应用场景选择使用。 通过 XML ...

    Java Bean自动生成系统的设计与实现.pdf

    该系统基于Java语言,尤其专注于Java Bean的自动化生成,Java Bean是Java语言中用于表示业务实体和业务逻辑的组件,通常用于企业级应用中。 在软件开发过程中,代码自动生成技术可以减轻开发人员的工作负担,尤其是...

    使用注解自动装配需要组件扫描.zip

    组件扫描是Spring的一项功能,它会自动发现应用上下文中定义的Bean。通过在类上使用`@Component`、`@Service`、`@Repository`或`@Controller`等注解,我们可以告诉Spring这些类是需要管理的组件。这些注解表明了类在...

    面向对象方法EJB组件.pdf

    最后,文档说明了EJB容器能够自动定义并实现的类和对象,比如EJBObject类、EJBObject桩类、Home类、Home桩类等,以及容器对EJB组件的生命周期管理和运行环境的提供。这些描述展示了EJB容器在EJB组件生命周期中扮演的...

    使用mybatis自动建bean

    在本主题中,我们将深入探讨如何使用MyBatis自动构建Java Bean,以便更高效地处理数据对象。 一、MyBatis简介 MyBatis是一个轻量级的ORM(对象关系映射)框架,它消除了手动编写大量SQL和结果集映射的繁琐工作。...

    读取Bean类自动创建数据库

    标题中的“读取Bean类自动创建数据库”是指在软件开发中,通过编程方式解析Java Bean类的信息,并利用这些信息自动生成对应的数据库结构。这通常涉及到Java的反射机制和数据库操作技术。 首先,Java反射机制是Java...

    浅谈Spring装配Bean之组件扫描和自动装配

    Spring装配Bean之组件扫描和自动装配 Spring框架提供了两种方式来实现自动化装配:组件扫描和自动装配。组件扫描是指Spring自动发现应用上下文中所创建的bean,而自动装配是指Spring自动满足bean之间的依赖。 组件...

    基于Java Bean组件技术的模型表示研究.pdf

    基于Java Bean组件技术的模型表示研究 在当前网络应用环境下,模型管理中存在的问题,如模型重用、模型组合和跨平台调用等。为了解决这些问题,研究人员提出了基于Java Bean组件技术的模型表示方法。 首先,研究...

    java自动生成bean 根据数据库表及字段

    标题"java自动生成bean 根据数据库表及字段"描述的就是这样一个功能,它可以根据数据库中的表和字段信息,自动生成对应的Java Bean源代码,同时还能根据配置的模板添加特定的注释,如MySQL的注释。 在Java世界里,...

    自动生成XML和bean工具

    自动生成XML和bean工具,都已经做好了,需要你自己建立个表。如果你用的mysql,你只需要更改下配置文件即可,如果是oracle,你下载个数据库连接包,更下下配置文件。struts+mybatis+spring。 generator.xml: 配置...

    在 JSP/Servlet 中使用 Bean 自动属性填充机制

    Bean自动属性填充机制是这两者结合使用时的一个关键特性,它提高了开发效率并简化了代码。本文将深入探讨这一机制,并提供一个完整的实例代码。 首先,我们来理解什么是Bean。在Java中,Bean是一种符合特定设计模式...

Global site tag (gtag.js) - Google Analytics