350 likes | 362 Views
This chapter discusses the phases involved in the design, lifecycle, and implementation of JavaBeans. It covers requirements analysis, design framework, architecture, and detailed design. Key concepts include creating beans, working with bean containers, and creating applications that use beans.
E N D
Process Phases Discussed in This Chapter Requirements Analysis Design Framework Architecture Detailed Design Implementation Key: = main emphasis = secondary emphasis x x Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Learning Goals for This Chapter Understand … • … what JavaBeans (“Beans”) are • … the life-cycle of a Bean • … Bean containers • … create JavaBeans • … connect Beans in BeanBox • … create applications that use Beans Be able to … Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Java Beans Design Goals 1 • Create a component technology within Java • capitalize on Java portability • Include GUI components • but not limited to GUI (e.g. server bean) • Compete with other visual programming and component systems • (which are often specific to an O.S.) • usually Windows • require installation of some kind
Beans Design Goals 2 • “Light weight” for Internet applications • Secure • use Java security model • Easy & efficient to distribute • Provide mechanism which enables development environment (“container”) to determine methods, properties & events Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Design Goal At Work: Reusability Facilitate the easy reuse of Java code. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Output Of Chair Maker Estimator Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Bean Phases Phase 1. Create Bean Classes Source subject to rules Design / implementation time. Phase 2. Create Bean from Multiple Bean Classes Combine Bean classes to make new Beans; create manifest; compile Instance creation time. Phase 3. Create Bean Instance Instantiate object(s), usually in a Bean environment (container) -------- Phase 4a. Combine Beans in Bean Container to Make Application Combine with other Beans to produce application Assembly time. - or - Deployment time. Phase 4b. Deploy Bean and Use in Applications Place application, Beans and required software on target platform Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Key Concept: Ways to use Beans -- within environments; connected to other Beans; within applications. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Amenities Afforded by Bean Environments • Detection of the Bean’s properties Read only – or- Writeable • Detection of listeners supported So events on the Bean can be handled • Ability to easily create instances and display an image if an awt or swing object Set property values visually • Ability to store instances Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Required Bean Rules 1 of 2 • Java source consists of Java classes • -containing null constructor … MyClass() { … } • - implementing Serializable interface • - obeying standards shown below for … • … accessor methods • … Listener registration • … Event classes Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Required Bean Rules2 of 2 • To have property myProp, include methods: <type> getMyProp(){ … } // to access myProp void setMyProp( <type> p ) // to change • For boolean property: booleanisMyProp() • Name for event classes to be XXXEvent • extends Event • Listeners must implement java.util.EventListener • Name must end in Listener as in XXXListener • added withpublic voidaddXXXListener(...) • removed withpublic voidremoveXXXListener(...) Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
JAR’ing a Bean jar cfm Bean0.jar manifest.txt Bean0.class Creating a JAR file First argument is name of the new JAR file Second argument is name of manifest file List all .class files to be included Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Adding a Bean to the BeanBox Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Bean1 Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Setting Color Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Design Goal At Work: Reusability Be able to use Chairmaker Bean alone. Avoid having it refer to any other non-API class. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Initial Form of Properties Panel (green in color) Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Design Goal At Work: Reusability Utilize Chairmaker with TicTock events. This avoids compromising either Bean. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Beginning to Use ChairMaker Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Setting ChairMaker to Add a Chair Leg Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
An Output Of ChairMaker Bean Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Output Of ChairMaker Bean From Button Action Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Using a Bean in an Application: Output Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Design Goal At Work: Reusability We want to associate Beans even when there is no external event such as a mouse click. Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Property Change Event Demonstration Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Property Change Event Demonstration #2 Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Bound Property Demonstration Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Key Concept: Bound Properties -- causes a Beans to react when a property in another Bean changes value.
Embedding Beans in JSP <jsp:useBean id="object name" 1 scope="page|request|session|application" 2 class="fully qualified classname" 3 </ jsp:useBean > 1 Bean instance name as in MyClass myName = …. 2 // Choose one; when instance is destroyed; optional; default is page 3// e.g., a.b.MyClass Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Scope of a Bean in a JSP • page - new object created and destroyed for every page view. • request - the newly created object created and bound to the request object. • session - the newly created object bound to the session object. -- every visitor coming to the site will have a separate session for it, so you will not have to create a new object every time for it -- can retrieve that object later again from the session object when wanted • application - object will stay as long as the application remains loaded. E.g., you want to count page views or daily sessions for your site. Source: http://stardeveloper.com:8080/articles/072001-1.shtml
Setting and Getting a Bean Property in a JSP:Introduction <jsp:setProperty name=“account17" property=“bal" value=“3211“ /> <jsp:getProperty name=“account17" property=“bal" />
Summary of This Chapter • A Java Bean is a compiled collection of Java classes and required files • JAR’d to reduce to a single file • Beans are used at various phases, often in a Bean container • Creating from scratch • Creating instances of • Connecting • Deploying as part of an application Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.
Adapted from Software Design: From Programming to Architecture by Eric J. Braude (Wiley 2003), with permission.