In
any non-trivial application, beans has to communicate each other to perform
certain action. For example, serivce layer bean dependes on dao layer bean,
which in turn depends on session bean.
If
a bean depends on other bean, we must ensure that, all the dependency beans are
initialized properly before initializing this bean.
<bean id="serviceBean" class="com.sample.pojo.ServiceBean" depends-on="daoBean" /> <bean id="daoBean" class="com.sample.pojo.DaoBean" depends-on="sessionBean" /> <bean id="sessionBean" class="com.sample.pojo.SessionBean" />
Notify
above statements, serviceBean depends on daoBean, and daoBean depends on
sessionBean. So sessionBean is initialized before initializing daoBean, daoBean
initialized before initializing sessionbean.
Following
is the complete working application.
SessionBean.java
package com.sample.pojo; public class SessionBean { public SessionBean(){ System.out.println("Session Bean initialized successfully"); } }
DaoBean.java
package com.sample.pojo; public class DaoBean { public DaoBean(){ System.out.println("DaoBean initialized successfully"); } }
ServiceBean.java
package com.sample.pojo; public class ServiceBean { public ServiceBean(){ System.out.println("ServiceBean initialized successfully"); } }
myConfiguration.xml
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="serviceBean" class="com.sample.pojo.ServiceBean" depends-on="daoBean" /> <bean id="daoBean" class="com.sample.pojo.DaoBean" depends-on="sessionBean" /> <bean id="sessionBean" class="com.sample.pojo.SessionBean" /> </beans>
HelloWorld.java
package com.sample.test; import org.springframework.context.ApplicationContext; import org.springframework.context.support.ClassPathXmlApplicationContext; import com.sample.pojo.ServiceBean; public class HelloWorld { public static void main(String args[]) { ApplicationContext context = new ClassPathXmlApplicationContext(new String[] { "myConfiguration.xml" }); ServiceBean bean = context.getBean("serviceBean", ServiceBean.class); ((ClassPathXmlApplicationContext) context).close(); } }
Run
‘HelloWorld.java’, you can able to see following output.
Session Bean initialized successfully DaoBean initialized successfully ServiceBean initialized successfully
Specifying multiple
dependencies using ‘depends-on’ attribute
To
express a dependency on multiple beans, supply a list of bean names as the
value of the depends-on attribute, with commas, whitespace and semicolons, used
as valid delimiters.
<?xml version="1.0" encoding="UTF-8"?> <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd"> <bean id="serviceBean" class="com.sample.pojo.ServiceBean" depends-on="daoBean, sessionBean" /> <bean id="daoBean" class="com.sample.pojo.DaoBean" /> <bean id="sessionBean" class="com.sample.pojo.SessionBean" /> </beans>
Notify
above snippet, two dependencys are specified for serviceBean.
No comments:
Post a Comment