I\'m not a Spring pro, so please bear with me....
I have three classes:
class SpringBeanA {
public aMethod() {
.....
}
}
class SpringBea
Spring initializes all the objects and keep it in Spring Application Context. You have couple different ways to get access to objects inside Application context
First create a spring configuration class to inject ApplicationContext in to a private attribute and expose as static method.
@Configuration
class StaticApplicationContext implements ApplicationContextAware{
static ApplicationContext applicationContext = null;
public void setApplicationContext(ApplicationContext context) throws BeansException {
applicationContext = context;
}
/**
* Note that this is a static method which expose ApplicationContext
**/
public static ApplicationContext getContext(){
return applicationContext;
}
}
Now you can try this in your non spring class,
((SpringBeanB)StaticApplicationContext.getContext.getBean("b")).bMethod();
Please keep in mind, invoking getContext method before spring context initialization may cause NullPointerException. Also accessing beans outside of spring container is not a recommended approach. Ideal way will be to move all beans in to spring container to manage.
If you want to access SpringApplicationContext from a java Servelet please refer WebApplicationContextUtils