advertisement
javaboutique
Search Tips
Articles  |   Tutorials  |   Reviews  |   Tools  |   by Category  |   by Date  |   by Name  |   Submit  |   Source  |   Forums  |  
javaboutique
Browse DevX


Partners & Affiliates











advertisement

Tutorials : The Spring Framework :

BeanDefinition

The BeanDefinition contains all the information required by the BeanFactory to instantiate the bean. This includes any dependencies the bean may have on other beans and how the bean needs to be configured in the container. When a request is made for a bean, the BeanFactory loads the corresponding BeanDefinition and instantiates the bean. The BeanDefinition has information on how the bean would be instantiated (Singleton or prototype) and callback methods defined in the Lifecycle section.

Lifecycle of a Bean

After the bean is initialized the BeanFactory can use callback methods to change the behavior of the bean in the BeanFactory. One of the callback methods is the init-method. The InitializingBean interface of the factory package gives the ability to do initialization work after properties are set up for a bean in the BeanFactory. The afterPropertiesSet () method in the InitializingBean interface allows the user to check if all the properties are set properly or if some operation has to be done after the properties have been set. All Bean classes that need to use this callback method need to implement the InitializingBean interface and implement the afterPropertiesSet () method. If the initialization work is minimal the user has the flexibility to designate a method within the bean, which will be invoked after bean properties have been set. The designated method, which would do the initialization, can be then be specified in the init-method attribute of the bean. Designating the init-method attribute can help to avoid implementing the InitializingBean interface.

In a similar fashion a DisposableBean interface is provided to do cleanup operations after a bean is destroyed. The bean has a destroy-method attribute that can used to designate a method within the bean, which will do the clean up work when the BeanFactory destroys the bean.

Other Features:

  • Spring can automatically resolve the dependent beans with the help of the BeanFactory. This facility can reduce the need to specify properties or constructor arguments.
  • Spring can check dependencies on a bean. It can check for values that should be set when a bean is initialized. If the check is not done the BeanFactory will set the default value. This behavior is not mandatory and can be turned on when required.
  • Spring can also manage multiple resource files for you.

    Sample

    Lets go through a sample to illustrate a few of the important ideas outlined above. Shown below is a snippet of XML that defines some BeanDefinitions of an actual bean.

    <bean id = ‘helloWorldSample´ 
    class=”com.helloworld.samples.HelloWorld” 
    depends-on = ”boostrapClassId”>
    <property name=”myString”>
    My famous Hello World Program</property>
    <property name=”dependentClassId”> 
         <ref bean = “firstDependentClass”/>
    </property>
    </bean>  
    
    <bean id = “firstDependentClass” 
    class =  “com.helloworld.dependent.FirstDependentClass” 
    destroy-method=”cleanupMethod”>
    <property name=”dependentString”>
    My famous Hello World Program needs me</property>
    <bean>
    
    <bean id = “bootstrapClassId” 
    class = “com.helloworld.config.BootStrapClass” 
    init-method = “loadPropertiesFromFile”>	
    

    The sample above shows a BeanDefinition for a HelloWorld Class, which depends upon the BootStrapClass class. The property ‘myString’ would translate into a field into the bean with a default value specified within it. Since the BeanFactory knows that this bean requires the class FirstDependentClass, it would instantiate that class before it sets the reference for that class in the main bean. The property "dependentClassId" would also become a field in the bean with a reference to the FirstDependentClass. The loadProertiesFromFile method which is specified as a init method will be invoked after properties have been set to the BootStrapClass bean.

    Application Context

    The ApplicationContext provides a framework type of API to Spring. The framework allows the user to use a ContextLoader to load beans. The ContextLoader does the job of the BeanFactory. The ApplicationContext provides all the features offered by BeanFactory and allows the user to add some additional features. Some of the features offered by the ApplicationContext are MessageSources, Resource management and Event Propagation.

    MessageSource offers an i18n type messaging facility. Event Propagation allows Spring to have an event handling mechanism. The Event handling is done via the ApplicationEvent Class and the ApplicationListener interface. Every bean that’s wants to be notified of any events would implement the ApplicationListener Interface. Whenever an ApplicationEvent takes place the ApplicationContext knows about it. The ApplicationContext would notify the beans that are listening to this event.

    How to Add Java Applets to Your Site

    New on the Java Boutique:

    New Review:

    Time Management Made Easy with the Quartz Enterprise Job Scheduler
    Why not just use the Java timer API? This open source scheduling API boasts simplicity, ease-of-integration, a well-rounded feature set, and it's free!

    New Applet:

    Reverse Complement
    Reverse Complement is a simple applet that converts DNA or RNA sequences into three useful formats.

    Elsewhere on internet.com:

    WebDeveloper Java
    Lots of Java information on webdeveloper.com

    WDVL Java
    Thorough Java resource at the Web Developer's Virtual Library.

    ScriptSearch Java
    Hundreds of free Java code files to download.

    jGuru: Your View of the Java Universe
    Customizable portal with online training, FAQs, regular news updates, and tutorials.

  •  Microsoft Visual Studio 2010 Showcase
     Avaya Developer Showcase
     MSDN Spotlight
     PHP for Windows Showcase
    XML error: undefined entity at line 39
    advertisement
    Receive Articles via our XML/RSS feed
    Receive Articles via our XML/RSS feed

    JavaBytes
    Internet Cyclone
    This powerful, easy-to-use, internet optimizer is for Windows 95, 98, ME, NT, 2000 and XP. It's designed to automatically optimize your Windows settings, boosting your Internet connection up to 200%.

    Windows 7: From Beta to Final Code in One Year
    Google Shows Off Chrome OS, Releases Source
    Microsoft Shows Off Silverlight 4, IE9 Plans
    Metasploit Expands Vulnerability Test Framework
    HyperCard Reborn?
    Fedora 12 Takes Aim at Linux Networking
    Top Supercomputer Nearly Doubles in Speed
    Fedora 12 Linux Tackles Virtualization
    Apple Gives iPhone Developers App Status Tracker
    Novell Sets OpenSUSE 11.2 Free

    Creating Custom Export Filters for StarOffice with XSLT
    WPF Wonders: Using DataTemplates
    Crystal Reports Family Offers Options for Developers
    Avaya Aura Session Manager video
    Avaya Aura Overview video
    Exploring HTML 5's Audio/Video Multimedia Support
    Overriding Virtual Functions? Use C++0x Attributes to Avoid Bugs.
    Understanding the Cloud Computing Security Vulnerabilities
    Cisco and IBM Target a Greener World
    Upgrade to Visual Studio 2010 with the Ultimate Offer

    Advertising Info  |   Member Services  |   Contact Us  |   Help  |   Feedback  |   Site Map  |   Network Map  |   About

    internet.commediabistro.comJusttechjobs.comGraphics.com

    Search:

    WebMediaBrands Corporate Info

    Legal Notices, Licensing, Permissions, Privacy Policy.
    Advertise | Newsletters | Shopping | E-mail Offers | Freelance Jobs