Я могу динамично загрузить дополнительные конфигурационные файлы Spring в существующий WebApplicationContext?

Начиная с узла 7.6 , вы можете объединить функцию promisify из модуля utils с setTimeout.

const sleep = require('util').promisify(setTimeout)

Общее использование

async function main() {
    console.time("Slept for")
    await sleep(3000)
    console.timeEnd("Slept for")
}

main()

Использование вопросов

async function asyncGenerator() {
    while (goOn) {
      var fileList = await listFiles(nextPageToken);
      await sleep(3000)
      var parents = await requestParents(fileList);
    }
  }
7
задан Elliot 21 June 2009 в 15:53
поделиться

6 ответов

Вы можете использовать существующий контекст в качестве родительского контекста для других контекстов, хотя я сомневаюсь, что вы могли бы заменить существующий WebApplicationContext.

Если вы используете упаковку EAR - WAR, вы получите это -of-the-box (вроде) путем загрузки контекста приложения из EAR и последующего добавления его в WAR.

Не уверен, применимо ли это в вашей ситуации.

2
ответ дан 7 December 2019 в 12:24
поделиться

Я бы хотел позволить Spring инициализировать ваши bean-компоненты, если они сочтут нужным - в порядке их объявленных зависимостей.

Если вам нужна миграция базы данных, есть несколько шаблонов для их запуска в первую очередь:

  • если вы используете Hibernate / JPA, сделайте свой sessionFactory / persistenceManager зависимым от компонентов миграции; 1238], если вы используете простой JDBC, создайте оболочку DataSource и в ее init-методе вызовите миграции ( пример кода )

Преимущество очевидное: простота.

3
ответ дан 7 December 2019 в 12:24
поделиться

Возможно, XmlBeanDefinitionReader может вам помочь?

0
ответ дан 7 December 2019 в 12:24
поделиться

Может ли отложенная инициализация быть альтернативой тому, чего вы пытаетесь достичь?

0
ответ дан 7 December 2019 в 12:24
поделиться

вы можете преобразовать контекст WebApplicatonContext в ConfigurableWebApplicationContext затем используйте метод setConfigurations.

не забудьте обновить;

0
ответ дан 7 December 2019 в 12:24
поделиться

Была та же задача, и я создал два контекста: startUpContext.xml и applicationContext.xml . В startUpContext.xml есть компонент, запускающий загрузку appliationContext.xml . (расположение контекста приложения настраивается в startUpContext.xml как свойство триггера). И, наконец, триггер заменяет местоположения текущего контекста и обновляет его:

applicationContext.setConfigLocations(locations);
applicationContext.refresh();

(startUpContext.xml загружается с помощью стандартного прослушивателя загрузчика контекста Spring)

0
ответ дан 7 December 2019 в 12:24
поделиться
Другие вопросы по тегам:

Похожие вопросы: