2011-12-25 24 views
16

我是JSP和服务器端编程的新手。直到现在我正在使用Servlets和Java类。我在java类的帮助下分离我的应用程序(按照MVC模型)。我想知道java bean和java类的区别。在这种情况下,我可以使用java bean而不是java类。任何有用的解释或有用的链接?java bean和java类的区别?

回答

27

一个Java Bean仅仅是一个符合一些约定类:

  • 属性,可以通过干将访问(和setter如果这些属性是不是只读)
  • 无参数的公共构造
  • 序列化

的JSP EL和标签设计这些公约左右。他们大多不需要遵守所有这些惯例。 getters可用的属性是这些约定中最重要的。例如,表达式

${foo.bar.name} 

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

+0

是否需要实现序列化才能被视为bean? – Wronski 2014-12-17 22:33:07

+2

@Wronski在最严格的定义中,是:https://docs.oracle.com/javase/tutorial/javabeans/advanced/persistence.html。但正如我所说,许多框架依赖于JavaBean约定得到尊重,但这并不意味着他们必须尊重所有这些约定。例如,如果对象不可序列化,则使用JSP EL访问对象属性不会失败。 – 2014-12-18 19:35:20

2

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