Webcam Chat QuickBooks Advice international calling cards international phone cards
JavaBeat Java Books Certifications Certifications Kits Articles Tutorials Tips QNA Book Store Interview Questions SCJP 1.5 SCJP 1.6 SCWCD 5.0 SCBCD 5.0 SCEA SCJA Feeds

Spring IOC Bean Lookup Performance

Topic :
Feedback Request New QnA Print Email

//File: lookup.xml
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" "http://www.springframework.org/dtd/spring-beans.dtd">
<beans>
<bean id="helper" class="MyHelper" singleton="false"/>
<bean id="abstractLookupBean" class="AbstractLookupDemoBean">
<lookup-method name="getMyHelper" bean="helper"/>
</bean>
<bean id="standardLookupBean" class="StandardLookupDemoBean">
<property name="myHelper">
<ref local="helper"/>
</property>
</bean>
<bean id="factoryLookupBean" class="BeanFactoryAwareLookupDemoBean"/>
</beans>



///////////////////////////////////////////////////////////////////////////////////////
public interface DemoBean {

public MyHelper getMyHelper();
public void someOperation();
}



///////////////////////////////////////////////////////////////////////////////////////

public class MyHelper {

public void doSomethingHelpful() {
// do something!
}
}

///////////////////////////////////////////////////////////////////////////////////////

public class StandardLookupDemoBean implements DemoBean {

private MyHelper helper;

public void setMyHelper(MyHelper helper) {
this.helper = helper;
}

public MyHelper getMyHelper() {
return this.helper;
}

public void someOperation() {
helper.doSomethingHelpful();
}
}

///////////////////////////////////////////////////////////////////////////////////////
public abstract class AbstractLookupDemoBean implements DemoBean {

public abstract MyHelper getMyHelper();

public void someOperation() {
getMyHelper().doSomethingHelpful();
}
}


///////////////////////////////////////////////////////////////////////////////////////

import org.springframework.beans.BeansException;
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.BeanFactoryAware;

public class BeanFactoryAwareLookupDemoBean implements BeanFactoryAware,
DemoBean {

private BeanFactory factory = null;

public void setBeanFactory(BeanFactory factory) throws BeansException {
this.factory = factory;
}

public MyHelper getMyHelper() {
return (MyHelper) factory.getBean("helper");
}

public void someOperation() {
getMyHelper().doSomethingHelpful();
}

}
///////////////////////////////////////////////////////////////////////////////////////
import org.springframework.beans.factory.BeanFactory;
import org.springframework.beans.factory.xml.XmlBeanFactory;
import org.springframework.core.io.FileSystemResource;
import org.springframework.util.StopWatch;

public class LookupPerformance {

public static void main(String[] args) {

BeanFactory factory = new XmlBeanFactory(new FileSystemResource(
"build/lookup.xml"));

DemoBean abstractBean = (DemoBean) factory.getBean("abstractLookupBean");
DemoBean factoryBean = (DemoBean) factory.getBean("factoryLookupBean");

testPerf(abstractBean);
testPerf(factoryBean);
}

public static void testPerf(DemoBean bean) {
StopWatch stopWatch = new StopWatch();
stopWatch.start("perfTest");

for (int x = 0; x < 1000000; x++) {
MyHelper helper = bean.getMyHelper();
helper.doSomethingHelpful();
}

stopWatch.stop();

System.out.println("1000000 gets took "
+ stopWatch.getTotalTimeSeconds() + " seconds");
}
}

Topic :
Feedback Request New QnA Print Email

All api java java 6.0 java 7.0 jdbc jsp servlet ejb jndi jms ejb 3.0 j2ee jee 5.0 jee 6.0 jsf struts spring Hibernate ajax JBoss Seam netbeans eclipse ant xml maven dojo junit javafx j2me log4j ESB JBoss Apache Quartz scjp mysql oracle gwt openjpa jmx yui google-guice android JBoss scwcd 5.0 scjp 1.5 scjp 1.6 scja scbcd 5.0

JavaBeat Website (2004-2011), India
javabeat | advertise | about us | contact | useful resources
Copyright (2004 - 2011), JavaBeat


Technology Blogs
Technology blogs Technology Blogs
blog log