Как динамически настроить параметры приложения - PullRequest
4 голосов
/ 25 августа 2011

Я недавно обновил / развернул продукт Java-веб-приложения (который является только файлом войны, без какого-либо кода, поэтому я не могу посмотреть).Он имеет экран администратора, который позволяет пользователю настраивать свойства приложения.Мне было просто интересно, как они смогли это сделать, изменить параметры и даже не требовать перезапуска, так как я привык делать такую ​​конфигурацию, редактируя некоторые файлы .ini или .xml и требуя перезапуска приложения для вступления в силу.

Есть идеи, как эта функция могла быть реализована?Есть ли API для этого или нет, что может быть для него внутренним?

Ответы [ 3 ]

3 голосов
/ 25 августа 2011

Любое веб-приложение, достойное своего имени, занимается размещением материалов в базе данных и их возвратом.Это не гигантский скачок воображения, чтобы заставить само веб-приложение изменять свое поведение, основываясь на некоторых из этих данных, вместо того, чтобы всегда просто возвращать их пользователю.Мы вынуждены думать, что свойства приложения являются статическими, потому что так ведут себя все большие фреймворки.Они ведут себя так, потому что динамическая конфигурация намного сложнее, чем статическая, но это не значит, что динамическая конфигурация невозможна.

2 голосов
/ 25 августа 2011

Если свойств всего несколько, они могут сохранить его в файле свойств, а затем перезагрузить свойства, как показано в этом потоке. Загрузка файла свойств из пакета Java

Если все свойства всегда считываются из этого одноэлементного объекта porp, то его изменение мгновенно приведет к измененному поведению приложения.

0 голосов
/ 25 августа 2011

Это делается через отражение .У Java есть отражение api для доступа к свойству класса и вызова этого свойства.

Для более сложных вопросов, таких как Внедрение зависимостей (DI) , если эти свойства используются каким-либо другим компонентом приложения, необходимополучать уведомления об изменении конфигурации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...