[jboss-user] [JBoss/Spring Integration] - Re: Using beans from other spring module

jussi_po do-not-reply at jboss.com
Fri Feb 16 05:20:37 EST 2007


I solved this by using Delegate class from web application to access Spring module beans. I defined business services for the web application, I tried to make the web application as slim as possible.

Made a delegate class which extends the business interface. And for that class I get the business class from the Application Context.

  | public class BusinessSearchDelegateImpl implements BusinessSearch { 
  |         private ApplicationContext springModuleContext;
  | 	private final String BEAN = "BusinessSearchService";
  | 
  |     public void setSpringModuleContext(ApplicationContext springModuleContext) {
  | 		this.springModuleContext = springModuleContext;
  | 	}
  | 
  |         private BusinessSearch getSearchService()
  | 			throws TechnicalException {
  | 
  | 		if (springModuleContext.containsBean(BEAN)) {
  | 
  | 			BusinessSearch service = (GenericSearchService) springModuleContext
  | 					.getBean(BEAN);
  | 			return service;
  | 		} else {
  | 			LOG.error("Component with name(" + BEAN + ") not found. ");
  | 			throw new TechnicalException("Component with name(" + BEAN
  | 					+ ") not found. ");
  | 		}
  | 	}
  | 
  | public Customer findCustomer(String id) throws TechnicalException {
  | 		return getSearchService().findCustomer(id);
  | 	}
  | 
  | }

This class is configured in web application context  as following:
<!--  Business Service beans  -->
  | 	<bean id="BusinessContext"
  | 		class="org.springframework.jndi.JndiObjectFactoryBean">
  | 		<property name="cache">
  | 			<value>true</value>
  | 		</property>
  | 		<property name="jndiName">
  | 			<value>d_business-enabler</value>
  | 		</property>
  | 	</bean>
  | 
  | 	<bean id="BusinessSearchDelegate"
  | 		class="com.som.pac.web.BusinessSearchDelegateImpl">
  | 		<property name="springModuleContext">
  | 			<ref bean="BusinessContext" />
  | 		</property>
  | 	</bean>

And then that BusinessSearchDelegate is given to those controllers which needs the business services. 

I made it his way, and best thing was that I could add this delegate class to our utility jar, which is a jar module in ear file. 


View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4017520#4017520

Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4017520



More information about the jboss-user mailing list