What is a Java bean? [duplicate]

2019-06-26 03:52发布

可能重复:
什么是豆类的意义呢?

Java Bean是什么? 它是干什么用的? 什么是一些代码的例子吗? 我听说它用于事做getter和setter方法? 我很困惑什么的java bean是在哪里,你甚至访问它。 我GOOGLE了它,但无法找到一个明确的答案。

Answer 1:

Java Bean的是具有公共getter和setter方法私人性质的正常的Java类。

Java组件通常被用作辅助类。

例如 -

public class User implements java.io.Serializable {

    private String name;
    private Integer age;

    public String getName(){
        return this.name;
    }

    public void setName(String name){
        this.name = name;
    }

    public Integer getAge(){
        return this.age;
    }

    public void setAge(Integer age){
        this.age = age;
    }
}

实现Serializable不是强制性的,但非常有用的,如果你想在硬盘或通过网络来持续存在或转移的Javabean之外Java的内存,例如。

地方JavaBeans的使用?



Answer 2:

JavaBeans的是Java的可重用的软件组件。 实际上,他们是用符合某一公约Java编程语言类。 它们被用于许多对象封装到一个单一的对象(豆),让他们可以传递四周,一个bean对象,而不是多个单独的对象。 甲JavaBean是一种Java对象是可序列化,具有0参数的构造,并允许访问使用获取和设置方法的性质。

好处

  • 在一个bean获得所有的Java的好处“一次编写,随处运行”的范例。
  • 的属性,事件,和一个Bean的被暴露到另一个应用程序的方法可以被控制。
  • 可以提供辅助软件,帮助配置一个Bean。
  • 一个bean的配置设置可以保存在永久存储,并可以在以后的时间恢复。
  • 一个bean可以注册接收来自其他对象的事件,并可以生成发送给它的事件。

缺点

  • 具有null构造函数的类是受无效状态中实例化。 如果这样的类是由开发人员(而不是自动某种框架)手动实例化,开发人员可能没有意识到,他已经实例化的类处于无效状态。 编译器无法检测到这样的问题,即使它的记录,但也不能保证,开发商会看到文档。
  • 不必创建每个属性一个getter和一个setter许多,大部分或所有这些,创造了样板代码的巨大数额。

例如:

package beans;

/**
 * Class <code>PersonBean</code>.
 */
public class PersonBean implements java.io.Serializable {

    private String name;

    private boolean deceased;

    /** No-arg constructor (takes no arguments). */
    public PersonBean() {
    }

    /**
     * Property <code>name</code> (note capitalization) readable/writable.
     */
    public String getName() {
        return this.name;
    }

    /**
     * Setter for property <code>name</code>.
     * @param name
     */
    public void setName(final String name) {
        this.name = name;
    }

    /**
     * Getter for property "deceased"
     * Different syntax for a boolean field (is vs. get)
     */
    public boolean isDeceased() {
        return this.deceased;
    }

    /**
     * Setter for property <code>deceased</code>.
     * @param deceased
     */
    public void setDeceased(final boolean deceased) {
        this.deceased = deceased;
    }
}

参考http://en.wikipedia.org/wiki/JavaBeans



Answer 3:

那么,JavaBean的API定义了许多关于JavaBean规范的。 根据维基百科:

所需的约定如下:

  • 这个类必须有一个公共的默认构造函数(无参数)。 这使得编辑和激活的框架内轻松实例。
  • 类的属性必须用得到的,一套是可访问的,是(用于布尔属性而不是GET)等方法(所谓的存取方法和mutator方法),按照一个标准的命名约定。 这允许框架,其中许多包括用于各种类型的属性的自定义编辑器内易于自动化检查和豆状态的更新。 塞特斯必须接受只有一个参数。
  • 这个类是可序列化。 它允许应用程序和框架可靠地保存,存储和时尚独立的虚拟机及台的恢复Bean的状态。

常常,这些是可以在应用程序中发现,因为它们可用于所使用的数据模型中的最常见的类型的类。 这样的豆的一个例子在下面可以看到:

public class Person implements Serializable
{
  private String name;
  private boolean alive;

  public Person()
  {
    // constructor logic...
  }

  public String getName()
  {
    return name;
  }

  public void setName(String name)
  {
    this.name = name;
  }

  public boolean isAlive()
  {
    return alive;
  }

  public void setAlive(boolean alive)
  {
    this.alive = alive;
  }
}

正如你看到的,属性反映在getter和setter。

HTH



Answer 4:

如果你正在谈论的Java Bean和EJB不豆类 ,那么这里的解释是...

1.一个JavaBean有一个构造带任何参数。

2.一个JavaBean具有一组属性。

3.一个JavaBean都有访问(的getXxx,或isXxx布尔属性)方法和mutator方法(的setXXX),其允许访问其基本性质。

第三点规定了私人实例变量和公有的getter,setter方法的Java类。

例如:

import java.util.Date;

public class User {
    private Date loginDate;
    private String name;
    private String password;

    public User() { }

    public Date getLoginDate() {
        return loginDate;
    }

    public String getName() {
        return name;
    }

    public String getPassword() {
        return password;
    }

    public void setLoginDate(Date loginDate) {
        this.loginDate = loginDate;
    }

    public void setName(String name) {
        this.name = name;
    }

    public void setPassword(String password) {
        this.password = password;
    }

    public void delete() {
        // code to delete user from database
    }

    public void update() {
        // code to update user in database
    }

    public static User getUser(String name) {
        // code returning a new User object
        // populated from the database
    }
}


文章来源: What is a Java bean? [duplicate]