首页 / JAVA / JavaBeans wiki 摘译
JavaBeans wiki 摘译
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了JavaBeans wiki 摘译,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3547字,纯文字阅读大概需要6分钟。
内容图文
鉴于Spring的beans包遵守JavaBean specs,有必要认真研究下JavaBean specs。
先看看wiki上是怎么说的:
定义
Java平台下,JavaBeans是那些将很多object包含进一个单独object的类,这个单独的object就是bean。JavaBeans的特点:serializable、无参构造、setter/getter properties。
优点:
- bean的properties、events、methods可控。
- bean可以注册接收其他objects的events;可以生成events发送给其他objects。
- 可以提供辅助软件来configure一个bean。
- bean的configuration settings能够被持久化、被还原。
缺点:
- 无参构造的类被实例化时的状态是无效的。developer可能无法意识到不正常的实例化。
- JavaBeans都是可修改的,所以不具备不可修改对象的优点。
- 必须创建很多setter/getter,导致大量呆板的代码。
JavaBeans API
JavaBean的功能是由 java.beans 包 中的类和接口提供的。
接口 | 描述 |
AppletInitializer | 用于初始化同时是applets的Beans。 |
BeanInfo | 允许设计者详细描述关于一个Bean的events、methods还有properties的信息。 |
Customizer | 允许设计者提供GUI,可以configure a bean。 |
DesignMode | 决定一个bean是否正在design mode下执行。 |
ExceptionListener | 发生异常时,该接口的一个方法会被调用。 |
PropertyChangeListener | 当一个bound property被改变时,该接口的一个方法会被调用。 |
PropertyEditor | 该接口的实现允许设计者修改和显示property values。 |
VetoableChangeListener | 当一个Constrainted property被改变时,该接口的一个方法会被调用。 |
Visibility | 该接口中的方法允许bean在GUI不可用的环境下执行。 |
注:bound property和constrainted property,详见 properties 。
JavaBeans conventions (惯例)
- 类必须有一个public的无参构造。
- 类的properties必须能通过get/set访问。—boolean properties可以通过is访问。
- 类必须是serializable。
代码示例:
1 package player; 2 3 public class PersonBean implements java.io.Serializable { 4 5/** 6 * Property <code>name</code> (note capitalization) readable/writable. 7*/ 8private String name = null; 910privateboolean deceased = false; 1112/** No-arg constructor (takes no arguments). */13public PersonBean() { 14 } 1516/**17 * Getter for property <code>name</code> 18*/19public String getName() { 20return name; 21 } 2223/**24 * Setter for property <code>name</code>. 25 * @param value 26*/27publicvoid setName(final String value) { 28 name = value; 29 } 3031/**32 * Getter for property "deceased" 33 * Different syntax for a boolean field (is vs. get) 34*/35publicboolean isDeceased() { 36return deceased; 37 } 3839/**40 * Setter for property <code>deceased</code>. 41 * @param value 42*/43publicvoid setDeceased(finalboolean value) { 44 deceased = value; 45 } 46 }
简单测试:
1 import player.PersonBean; 2 3 /** 4 * Class <code>TestPersonBean</code>. 5 */ 6 public class TestPersonBean { 7 /** 8 * Tester method <code>main</code> for class <code>PersonBean</code>. 9 * @param ARGS 10 */ 11 public static void main(String[] args) { 12 PersonBean person = new PersonBean(); 1314 person.setName("Bob"); 15 person.setDeceased(false); 1617// Output: "Bob [alive]"18 System.out.print(person.getName()); 19 System.out.println(person.isDeceased() ? " [deceased]" : " [alive]"); 20 } 21 }
JSP 中的使用:
1 <% // Use of PersonBean in a JSP. %> 2 < jsp:useBean id ="person" class ="player.PersonBean" scope ="page" /> 3 < jsp:setProperty name ="person" property ="*" /> 4 5 < html > 6 < body > 7 Name: <jsp:getProperty name="person" property="name"/><br/> 8 Deceased? <jsp:getProperty name="person" property="deceased"/><br/> 9<br/>10<form name="beanTest" method="POST" action="testPersonBean.jsp">11 Enter a name: <input type="text" name="name" size="50"><br/>12 Choose an option: 13<select name="deceased">14<option value="false">Alive</option>15<option value="true">Dead</option>16</select>17<input type="submit" value="Test the Bean">18</form>19</body>20</html>
参考链接:
原文:http://www.cnblogs.com/larryzeal/p/5954690.html
内容总结
以上是互联网集市为您收集整理的JavaBeans wiki 摘译全部内容,希望文章能够帮你解决JavaBeans wiki 摘译所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。