Как внести изменения в свойства, сохраняемые в Java - PullRequest
0 голосов
/ 21 апреля 2011

Я использую несколько API, которые загружают свойства по умолчанию из текстового файла.
Однако, если 1 API изменяет значение свойства, я хочу, чтобы все API могли читать новое значение.
Я пытался использовать System.setProperty ("prop_name",), но это не вносит изменения в другие API.
Я не хочу изменять исходный текстовый файл. Также нужно избегать дополнительных затрат на написание нового файла свойств и заставлять все API загружать этот файл (существует множество API и множество свойств, и вы не хотите, чтобы это происходило при каждом изменении свойства).

Как мне это сделать?

Ответы [ 2 ]

1 голос
/ 21 апреля 2011

Вам нужно изменить библиотеки, чтобы взять общий Properties объект или использовать System.getProperties().Если каждая библиотека делает Properties.load(...) напрямую, открывая файл, то ваш выбор ограничен:

  • изменение файла свойств
  • использование пользовательского загрузчика классов для изменения байт-кода библиотек какони загружаются для перехвата вызова Properties.load(...)
  • , чтобы изменить класс Properties в источнике JDK (включен в этот список только для полноты)
0 голосов
/ 21 апреля 2011
  1. Вы можете создавать поток жнецов для каждой виртуальной машины Java, которая опрашивает файлы в каталоге в поисках изменений и применяет их, как они применимы к этой виртуальной машине Java.* Вы можете подключить все свои приложения к серверному приложению с помощью API сокетов.Сервер может управлять свойствами, а клиенты могут периодически запрашивать изменения.

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

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