在一個正在運行的春天的應用程序,它可以監視一個文件夾下,我可以把更多的配置文件,其中更多的豆被定義?我不想停止應用程序,但想要添加加載更多bean的能力,所以我正在考慮創建一個文件夾,然後將bean定義放入該文件夾,並讓spring選擇它並初始化bean。我想知道它是否是可行與否如何動態加載配置文件在春天
0
A
回答
1
您將需要兩件事情
的文件觀察者來監視文件系統的變化 - JDK7提供way做到這一點。
刷新應用程序上下文 - 您可以使用
AbstractRefreshableApplicationContext
類之一的refresh
方法:它不會刷新先前已實例豆,但上下文下一次調用將返回刷新豆。
0
您可以創建一個屬性文件並加載動態
參考下,我在我的項目已經使用代碼:
private static Properties beanProps = new Properties();
beanFactoryFileProps.load(AppContext.class
.getResourceAsStream("configFile.properties"));
Collection props = beanProps.values();
String[] configFiles = null;
if (!Utils.isEmpty(props)) {
Object[] config = props.toArray();
configFiles = new String[config.length];
for (int i = 0; i < config.length; i++) {
configFiles[i] = (String) config[i];
}
}
else
{
configFiles=new String[] {"dispatcher-servlet.xml"};
}
性文件,如下
file1=dispatcher-servlet.xml
file2=ApplicationContext.xml
file2=QuartzSchedulerContext.xml
相關問題
- 1. 春天 - 配置文件的動態加載
- 2. 如何添加活動的配置文件春天春聯spring.profiles.active
- 3. 春天配置文件配置
- 4. 春天的雲配置 - 加載額外的文件
- 5. 春天 - 如何從數據庫加載配置?
- 6. 如何設置默認配置文件春天
- 7. 錯誤在春天xml配置相關的bean配置文件
- 8. 春天的JUnit文件加載問題
- 9. 春天 - 從UTF-8文件加載
- 10. 文件下載:春天 - AngularJS
- 11. 春天下載excel文件
- 12. 在CakePHP中動態加載插件配置文件3
- 13. 動態加載配置Bean
- 14. 我如何加載配置文件,但不自動加載zf2
- 15. 自動裝配在春天
- 16. 春天無法加載靜態資源
- 17. 春天沒有加載靜態內容
- 18. 如何通過配置文件運行gradle?重複鍵:春天
- 19. Spring.NET配置文件從一個文件夾動態加載
- 20. 配置文件Inheritage在春季啓動
- 21. 春天檔案不默認活動的配置文件
- 22. 春天無法挑選配置文件自動佈線實施
- 23. 春天配置文件的正確位置在哪裏?
- 24. 春天啓動的logback fileappender配置
- 25. 春天 - 從jar文件中使用/加載上下文文件
- 26. 如何在magento配置文件中添加動態選擇框
- 27. 春天開機單元的JUnit測試不加載配置
- 28. 自定義屬性加載器與春天雲配置
- 29. 春天配置服務器不加載本機屬性
- 30. 春天開機自動配置與春季啓動器
爲什麼你甚至想這樣做嗎?在大多數情況下,更改bean定義也需要部署(由於代碼更改)... – home 2014-12-07 13:16:35
不更改bean定義,但添加更多定義。我只想添加一個jar文件,讓spring選取它,然後讓它選擇一個指向jar文件中定義的新bean的配置。可能嗎? – 2014-12-07 13:23:21
@DanielWu在Spring中有一個'AbstractRefreshableApplicationContext'類,它有一個方法'loadBeanDefinitions',所以也許這將是一個檢查它的好方法。你可以在上下文中執行'refresh()',然後'loadBeanDefinitions'會被調用...但這是一個很長的過程。 – 2014-12-07 16:34:52