I have run into an issue where Bean instantiation sequencing matters. Currently Bean3 from below is running a DB based cache put operation, and Bean 1 queries against the newly created cache using Proxy Bean2. Priority is for Bean3 and Bean 2 to be completely instantiated before Bean1 gets instantiated, i.e. when Spring container comes up. These beans are in seperate JARS, and Bean2 reference into Bean1 is not using Autowired. Instead a service locator is giving it a reference. We are using Spring 2.5.2 and not using XML for instantiation of beans. Any help appreciated!
JAR1 (Spring project)
@Service ("bean3")   
 public class Bean3 implements ApplicationListener  { 
    public void onApplicationEvent() {  
      //load data from DB and populate cache                    
    }
     public void getCache(){
     //get data from cache
    }
}
@Service ("bean2")
public class Bean2 { 
@Autowired 
private Bean3 bean3;
   private void methodA(){
     bean3.getCache();
   }
}
JAR2 (Non-Spring project)
public class Bean1{  
Bean2 bean2 = SpringServiceLocator.getBean("bean2")
  public void methodB(){
    bean2.methodA();
   } 
}
If I understand correctly, you are trying to perform some logic on application startup (context init).
If this is the case, I would suggest that you use BeanPostProcessor, to perform any special operations at application startup.
public class MyBeanPostProcessor implements BeanPostProcessor {
    @Override
    public Object postProcessBeforeInitialization(Object bean, String beanName)
            throws BeansException {
        .. **perform special things**
        return bean;
    }
    @Override
    public Object postProcessAfterInitialization(Object bean, String beanName)
            throws BeansException {
        ..**perform special things**
        return bean;
    }
}
Do not forget to tell Spring about your post processor
<context:component-scan base-package="some.package" />
<bean class="some.package.MyBeanPostProcessor"
For more info read here http://static.springsource.org/spring/docs/3.0.0.M3/reference/html/ch04s07.html
I hope this helps.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With