2014-10-02 98 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類等