在一個正在運行的春天的應用程序,它可以監視一個文件夾下,我可以把更多的配置文件,其中更多的豆被定義?我不想停止應用程序,但想要添加加載更多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. 春天的雲配置 - 加載額外的文件
- 3. 如何設置默認配置文件春天
- 4. 春天的JUnit文件加載問題
- 5. 春天下載excel文件
- 6. 文件下載:春天 - AngularJS
- 7. 在CakePHP中動態加載插件配置文件3
- 8. 動態加載配置Bean
- 9. 春天沒有加載靜態內容
- 10. 如何通過配置文件運行gradle?重複鍵:春天
- 11. 配置文件Inheritage在春季啓動
- 12. 春天配置文件的正確位置在哪裏?
- 13. 春天 - 從jar文件中使用/加載上下文文件
- 14. 春天配置服務器不加載本機屬性
- 15. 春天開機單元的JUnit測試不加載配置
- 16. 春天mvc安全配置
- 17. 春天2.0安全配置
- 18. 如何在春季啓動配置類屬性文件值
- 19. 春天 - 如何用外部文件覆蓋內部配置文件
- 20. 春天不是通過加載時織自動裝配集合
- 21. 如何動態加載JavaScript文件?
- 22. 如何使用配置文件在外部化春季啓動配置?
- 23. 如何添加蒙戈選項配置到春天
- 24. 春天在哪裏存儲xml配置文件
- 25. 如何在春天讀取文件並將其分配給ArrayList?
- 26. 春天自動裝配
- 27. 如何配置春天啓動的gradle與腳本,科特林
- 28. 春雲配置服務器 - 如何下載二進制文件
- 29. 發送動態發件人春天
- 30. 春天ROO動態菜單
爲什麼你甚至想這樣做嗎?在大多數情況下,更改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