Spring bean实例化排序

Noo*_*ere 7 java spring java-ee applicationcontext

我遇到了Bean实例化排序很重要的问题.目前,Bean3从下面运行基于数据库的缓存放置操作,Bean 1使用Proxy Bean2查询新创建的缓存.优先级是Bean3和Bean 2在Bean1实例化之前完全实例化,即当Spring容器出现时.这些bean是单独的JARS,Bean2对Bean1的引用不使用Autowired.而是服务定位器给它一个参考.我们使用的是Spring 2.5.2而不是使用XML来实例化bean.任何帮助赞赏!

sas*_*_bg 1

如果我理解正确,您正在尝试在应用程序启动(上下文初始化)时执行一些逻辑。

如果是这种情况,我建议您使用 BeanPostProcessor 在应用程序启动时执行任何特殊操作。

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;
    }
}
Run Code Online (Sandbox Code Playgroud)

不要忘记告诉 Spring 你的后处理器

<context:component-scan base-package="some.package" />
<bean class="some.package.MyBeanPostProcessor"
Run Code Online (Sandbox Code Playgroud)

欲了解更多信息,请阅读此处http://static.springsource.org/spring/docs/3.0.0.M3/reference/html/ch04s07.html

我希望这有帮助。