【问题标题】:difference between java bean and java class?java bean和java类的区别?
【发布时间】:2011-12-25 10:14:57
【问题描述】:

我是 JSP 和服务器端编程的新手。到目前为止,我正在使用 Servlet 和 java 类。我在 java 类的帮助下隔离我的应用程序(根据 MVC 模型)。我想知道java bean和java类之间的区别。在这种情况下,我可以使用 java bean 而不是 java 类。任何有用的解释或有用的链接?

【问题讨论】:

    标签: java javabeans


    【解决方案1】:

    Java bean 只是一个符合某些约定的类:

    • 可由 getter 访问的属性(如果这些属性不是只读的,则为 setter)
    • 无参数公共构造函数
    • 可序列化

    JSP EL 和标签是围绕这些约定设计的。他们中的大多数人不需要遵守所有这些约定。 getter 可用的属性是这些约定中最重要的。例如,表达式

    ${foo.bar.name}
    

    显示 foo bean 的栏的名称。 foo 是一个必须在页面、请求、会话或应用程序上下文中的 bean。这个表达式会在这个bean上调用getBar(),然后在getBar()返回的对象上调用getName()

    【讨论】:

    • 是否必须实现可序列化才能被视为 bean?
    • @Wronski 在最严格的定义中,是的:docs.oracle.com/javase/tutorial/javabeans/advanced/…。但正如我所说,许多框架依赖于 JavaBean 约定来得到尊重,但这并不意味着它们必须尊重所有这些约定。例如,如果对象不可序列化,则使用 JSP EL 访问对象属性不会失败。
    【解决方案2】:

    JavaBeans 规范将 JavaBeans 组件类型定义为“可重用的软件组件”。组件是一个简单的 Java Bean 类 Java 尊重有关方法命名、构造和行为的某些约定。遵守这些约定可以为开发工具使用、重用、替换和连接 Java Bean。 bean 必须是“Serializable”才能保存和恢复此类的实例。

    【讨论】:

      猜你喜欢
      • 2011-01-28
      • 2015-09-17
      • 2011-03-15
      • 1970-01-01
      • 1970-01-01
      • 2011-08-10
      • 1970-01-01
      • 2012-08-08
      相关资源
      最近更新 更多