基于彈簧的Web應用程序:現有:上下文從文件(“web.xml”)加載,并且應用程序所需的屬性從xml上下文文件中引用的屬性文件加載。新:現在應該從動物園管理員那里讀取屬性(以及屬性文件)。讀取屬性所需的 Java 代碼是使用動物園管理員屬性源完成的問題:我需要在哪里插入java代碼,以便從動物園管理員加載屬性以及應用程序上下文的初始化?我無法使用應用程序事件查看器(因為上下文啟動事件不會自動觸發)和 BeanFactoryPost 處理器(環境不可用于綁定屬性)來實現此目的
1 回答

慕森卡
TA貢獻1806條經驗 獲得超8個贊
解決方案:
創建一個擴展“上下文加載器偵聽器”類的新類,并重寫方法“Web 應用程序上下文創建Web應用程序上下文(ServletContext sc)”。由于 Web 應用程序上下文將在此處提供,因此可以將“動物園管理員屬性源”設置為該環境。
示例代碼:
@Override protected WebApplicationContext createWebApplicationContext(ServletContext servletContext) { WebApplicationContext webApplicationContext = super.createWebApplicationContext(servletContext); loadZookeeperPropertySource(webApplicationContext.getEnvironment()); return webApplicationContext; }
loadZookeeper屬性源(環境環境)是一種方法,其中使用動物園管理員屬性源定位器從動物園管理員加載屬性源并將其設置為環境
添加回答
舉報
0/150
提交
取消