2014-10-02 52 views
-2

如何从Spring容器获取bean的现有单例实例。 我不想像以下那样再次加载配置,但想要检索已经使用此配置创建的bean;从Spring容器获取单例Bean实例

ApplicationContext context = new ClassPathXmlApplicationContext("some.xml"); 

在此先感谢您的早期关注。

+0

和。 ..你尝试阅读文档,或只是在谷歌类型'春季教程'? – 2014-10-02 09:15:17

+0

看[这里](http://stackoverflow.com/questions/129207/getting-spring-application-context)也许这有助于。 – Jens 2014-10-02 09:16:45

+0

如果你的bean被声明/注释为单例 - 这是默认的[scope](http://www.tutorialspoint.com/spring/spring_bean_scopes.htm) - 那么使用它的id从BeanFactory/Context获取它应该是足够。 – A4L 2014-10-02 09:16:53

回答

1

这里为例

public class MyFancyBean implements ApplicationContextAware { 

    private ApplicationContext applicationContext; 

    void setApplicationContext(ApplicationContext applicationContext) { 
    this.applicationContext = applicationContext; 
    } 

    public void businessMethod() { 
    //use applicationContext somehow 
    } 

} 

在这里你去:

applicationContext.getBean("someName") 

注意,有吨的方法来启动春 - 使用的ContextLoaderListener,@Configuration类等