Spring: Make an Externally Created Object Available to Beans in applicationContext.xml
Join the DZone community and get the full member experience.
Join For FreeIf your Spring beans need access to an object that is not created by Spring itself, you can “inject” it into the context by using a static parent context and registering the object with it. Beans can then reference it just as if it was defined in the application context file.
Java: Configure ApplicationContext with an Injected Bean
import org.springframework.context.ApplicationContext; import org.springframework.context.support.FileSystemXmlApplicationContext; import org.springframework.context.support.GenericApplicationContext; import org.springframework.context.support.StaticApplicationContext; Object externalyDefinedBean = ...; GenericApplicationContext parentContext = new StaticApplicationContext(); parentContext.getBeanFactory().registerSingleton("injectedBean", externalyDefinedBean); parentContext.refresh(); // seems to be required sometimes ApplicationContext context = new FileSystemXmlApplicationContext(springConfigs, parentContext);
Xml: Make Use of It
<bean id="springBean" class="your.SpringBeanType"> <!-- Note: The injectedBean is defined outside of Spring config --> <property name="someProperty" ref="injectedBean" /> </bean>
Viola!
From http://theholyjava.wordpress.com/2011/10/11/spring-make-an-externally-created-object-available-to-beans-in-applicationcontext-xml/
Spring Framework
Object (computer science)
Opinions expressed by DZone contributors are their own.
Comments