JavaBeans
בשפת התכנות ג'אווה, JavaBeans (ג'אווה בינז, באנגלית bean: פול קפה או שעועית) הם רכיבי תוכנה הניתנים לשימוש חוזר. אלו הן מחלקות הנכתבות בשפת ג'אווה ומשמשות כדי לכמס הרבה אובייקטים בתוך אובייקט אחד (ה-bean), כך שניתן יהיה להעביר אותם ממקום למקום כאובייקט bean אחד, במקום הרבה אובייקטים בודדים.
קונבנציות של JavaBeans
[עריכת קוד מקור | עריכה]על מנת לתפקד כ-JavaBean, המחלקה חייבת להיבנות לפי מספר קונבנציות (מוסכמות) הנוגעות למתן השמות למתודות, יצירת מופעים והתנהגות. קונבנציות אלו מאפשרות יצירת כלים אשר יכולים להשתמש ב-JavaBeans, להחליף ביניהם, לחבר ביניהם וכדומה.
JavaBean היא מחלקת ג'אווה העונה על שלוש הדרישות הבאות:
- האובייקט ניתן לסריאליזציה (המחלקה מממשת את הממשק
Serializable
). זה מאפשר ליישומים חיצוניים ולתשתיות תוכנה (frameworks) לשמור, לאחסן ולשחזר את המצב של ה-bean בצורה אמינה, ללא תלות במכונה הווירטואלית והפלטפורמה. - למחלקה יש בנאי שאינו מקבל ארגומנטים (no arguments constructor). דבר זה מאפשר יצירה והפעלה פשוטים של מופעים של המחלקה באמצעות תשתיות תוכנה.
- קיימת גישה למשתני המחלקה (properties) באמצעות מתודות get ו-set (מתודות mutator). למתודות אלה ניתנים שמות העונים על קונבנציה סטנדרטית למתן שמות. לדוגמה, עבור משתנה מחלקה בשם
name
ייווצרו המתודותgetName
ו-setName
. למשתני מחלקה מטיפוסboolean
, מתודת ה-get
מוחלפת במתודה המתחילה ב-is
. לדוגמה, עבור משתנה מחלקה בשםempty
מטיפוסboolean
תהיה קיימת המתודהisEmpty
. השמות עבור מתודותset
אינם משתנים עבור משתנים בוליאניים. מתודותset
חייבות לקבל רק ארגומנט אחד. כללים אלה מאפשרים בדיקה ועדכון אוטומטיים פשוטים של מצב ה-bean באמצעות תשתיות תוכנה, שרבות מהן כוללות מנגנונים משלהן לעדכון משתני מחלקה מטיפוסים שונים.
דוגמה ל-JavaBean
[עריכת קוד מקור | עריכה]PersonBean.java
:package beans; import java.io.*; /** * Class <code>PersonBean</code>. */ public class PersonBean implements 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; } }
TestPersonBean.java
:import beans.PersonBean; /** * Class <code>TestPersonBean</code>. */ public class TestPersonBean { /** * Tester method <code>main</code> for class <code>PersonBean</code>. * @param args */ public static void main(String[] args) { PersonBean person = new PersonBean(); person.setName("Bob"); person.setDeceased(false); // Output: "Bob [alive]" System.out.print(person.getName()); System.out.println(person.isDeceased() ? " [deceased]" : " [alive]"); } }
testPersonBean.jsp
:<% // Use of PersonBean in a JSP. %> <jsp:useBean id="person" class="beans.PersonBean" scope="page"/> <jsp:setProperty name="person" property="*"/> <html> <body> Name: <jsp:getProperty name="person" property="name"/><br/> Deceased? <jsp:getProperty name="person" property="deceased"/><br/> <br/> <form name="beanTest" method="POST" action="testPersonBean.jsp"> Enter a name: <input type="text" name="name" size="50"><br/> Choose an option: <select name="deceased"> <option value="false">Alive</option> <option value="true">Dead</option> </select> <input type="submit" value="Test the Bean"> </form> </body> </html>
קישורים חיצוניים
[עריכת קוד מקור | עריכה]- אתר האינטרנט הרשמי של JavaBeans
- המדריך הרשמי ל-JavaBeans באתר של Oracle (באנגלית)
Java (פלטפורמת תוכנה) | ||
---|---|---|
פלטפורמה | Java (שפת תכנות) • Java Card • Java ME • Java EE • Java SE • Java Virtual Machine | |
טכנולוגיות | Java applet • Java Web Start • Java Servlet • JavaServer Pages • JavaFX • JavaServer Faces | |
מושגים | איסוף זבל • Cross-platform • Java Bytecode • Java Development Kit • Javadoc • Java Classloader • Java Class Library JIT Compiler • HotSpot • JavaBeans • Enterprise JavaBeans • JNI • JAR • POJO • Web container • Java annotation | |
ממשקי תכנות יישומים | Swing • AWT • SWT • Java 3D • Java 2D • JMS • JDBC • JAXP • JPA • RMI • JNDI | |
שפות ל-JVM | Scala • Clojure • Groovy • JRuby • Jython | |
תשתיות תוכנה וכלים של חברות צד שלישי | אפאצ'י טומקט • Apache Maven • Apache Ant • Apache Struts JUnit • Hibernate • Spring Framework • JBoss • Google Web Toolkit • BEA WebLogic • IBM WebSphere | |
סביבות פיתוח משולבות | Eclipse • NetBeans • IntelliJ | |
חברות | סאן מיקרוסיסטמס • אורקל | |
אישים | ג'יימס גוסלינג • ביל ג'וי • אריק שמידט |