Что надлежащий путь состоит в том, чтобы хранить conf данные приложения в Java?

Вы можете использовать свойство position:fixed для исправления вашей кнопки:

.btn{
  position: fixed;
  top: 40px;
  right: 0;
}
<button class="btn">Button</button>

Для темных тему, вы можете добавить .dark имя класса и переключаться на него, например:

$(document).ready(function(){
  $("#changeTheme").click(function(){
    $("body").toggleClass("dark");
  });
});
body{
  background-color: white;
}

.dark{
  background-color: black;
}

.dark .bloc{
  background-color: gray;
}

.dark .bloc p{
  color: white;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<body class="light">
  <div class="bloc">
    <p>
      Hello world !<br/>
      <a href="#" id="changeTheme"> Change theme</a>
    </p>
  </div>
</body>

15
задан ansgri 12 October 2008 в 06:32
поделиться

5 ответов

Это зависит от Вашего вида Приложения J2SE:

  • исполняемый (очень простой) файл JAR J2SE: используйте user.home свойство System, чтобы найти, что dir дома Затем делает subdir соответственно (как, например, PGP, SVN... делают)
  • , сеть Java Запускается, предоставляет очень хорошие включенные методы безопасным свойствам. Всегда определенный для пользователя
  • Наконец Eclipse RCP: Там у Вас есть понятие рабочей области (также полученный из user.home) для пользователей и конфигурации (не полностью уверенный, как получить доступ к этому хитрому в Vista) для компьютера широкое использование

, Все эти подходы при использовании с осторожностью - использованием, корректным separatorChar - нейтральная ОС.

13
ответ дан 1 December 2019 в 00:37
поделиться

Сначала на формате:

  1. Java файлы свойств хороши для пар ключ/значение (также автоматически обрабатывают символы новой строки). Степень структуры возможна при помощи 'записи через точку'. Недостаток состоит в том, что структура не позволяет Вам легко перечислять объекты конфигурации верхнего уровня и работу способом развертки. Лучше всего используемый для маленького набора часто tweakable определенных для среды настроек
  2. XML-файлы - довольно часто используемый для более сложной конфигурации различных платформ Java (особенно J2EE и Spring). Я был бы совет, что Вы, по крайней мере, изучаете приблизительно Spring - он содержит много идей, которые стоит знать, решаете ли Вы не использовать его. Если бы Вы решаете к конфигурации XML самокрутки, я рекомендовал бы использовать XStream со специализированными опциями сериализации или если просто необходимо проанализировать некоторый XML, смотреть на XOM. Spring BTW также позволяет Вам включать свой пользовательский язык конфигурации XML, но это относительно сложная задача . Конфигурация XML лучше всего используется для более сложной 'внутренней' конфигурации, которую не замечает или настраивает конечный пользователь.
  3. Сериализированные объекты Java - быстрый и простой способ сохранить состояние объекта и восстановить его позже. Полезный, если Вы пишете конфигурацию, GUI и Вы не заботится, человекочитаема ли конфигурация. Остерегайтесь проблемы совместимости при развитии классов.
  4. Предпочтения - представленный в Java 1.4, позвольте Вам хранить напечатанный текст, числа, массивы байтов и другие примитивы в определенном для платформы устройстве хранения данных. В Windows, который является реестром (можно выбрать между [1 111]/Software/JavaSoft/Prefs под [1 112] HKLM или HKCU). Под Unix тот же API создает файлы при пользователе домой или / и т.д. . Каждый prefs улей может быть экспортирован и импортирован как XML-файл. Можно указать пользовательскую реализацию интерфейс PreferencesFactory путем установки "java.util.prefs. PreferencesFactory" свойство JVM к Вашему имени класса реализации.

В общем использовании prefs API может быть польза или плохая вещь на основе Вашего сценария приложения.

  1. , Если Вы планируете иметь несколько версий того же кода, работающего на той же машине с другой конфигурацией, затем с помощью Предпочтений, API является плохой идеей.
  2. при планировании использования приложения в ограниченной среде (домен Windows или жестко контролируемое поле Unix) необходимо удостовериться, что у Вас есть надлежащий доступ к необходимым ключам/каталогам реестра. Это поймало меня врасплох несколько раз.
  3. Остерегаются от профилей роуминга (копируемые домашние директора), они восполняют некоторые забавные сценарии, когда больше чем одна активная машина включена.
  4. Предпочтения не так очевидны как конфигурационный файл в соответствии с каталогом приложения. большинство сотрудников поддержки настольных систем не ожидает и не любит их.

Относительно расположения файла prefs это снова зависит от Вашего приложения. Универсальное предложение:

  1. Пакет большинство Ваших XML-файлов в JAR приложения или в корне или в соответствии с/META-INF каталогом. Эти файлы будут только для чтения и считаются частными за приложение.
  2. Помещенный пользователь модифицируемая конфигурация менее чем [1 115] $APP_HOME/conf . Это должно состоять главным образом из файлов свойств и иногда простого XML-файла (сериализация XStream). Эти файлы настраивают как часть процесса установки и обычно не для обслуживания пользователем.
  3. Под пользовательским домом, в точечном каталоге (т.е. '~/.myapplication') хранят любую пользовательскую конфигурацию. Пользовательская конфигурация может переопределить тот в каталоге conf приложения . Любые изменения, внесенные из приложения, идут сюда (см. также следующий вопрос).
  4. можно также использовать $APP_HOME/var каталог, чтобы хранить любые другие изменяемые данные, которые характерны для этого экземпляра приложения (в противоположность пользователю). Другое преимущество этого подхода состоит в том, что можно переместить и скопировать целое приложение, и это - конфигурация простой копией одного каталога.

Это иллюстрирует некоторые стандартные методы для руководящей конфигурации. Можно реализовать их пользующийся различными библиотеками и инструментами, начинающими с необработанного JRE, добавив Spring/Guice или идя для полного контейнера J2EE (возможно со встроенным Spring)

, Другие подходы для руководящей конфигурации:

  1. Используя несколько базовых каталогов для выполнения нескольких экземпляров приложения с помощью различных конфигураций.
  2. Используя легкий вес реестры для централизованного управления конфигурацией
  3. А централизованно управлял Базой данных управления конфигурацией (CMDB), файл, содержа определенные для хоста значения для каждой машины является rsync-редактором каждую ночь ко всем производственным узлам. Приложение использует шаблонную конфигурацию и выбирает из CMDB во время времени выполнения на основе текущего имени хоста.
26
ответ дан 1 December 2019 в 00:37
поделиться

Java имеет библиотеку специально для выполнения этого в java.util.prefs. Предпочтения .

Preferences userPrefs = Preferences.getUserNodeForPackage(MyClass.class); // Gets user preferences node for MyClass
Preferences systemPrefs = Preferences.getSysteNodeForPackage(MyClass.class); // Gets system preferences node for MyClass
Preferences userPrefsRoot = Preferences.getUserRoot(); // Gets user preferences root node
Preferences systemPrefsRoot = Preferences.getSystemRoot(); // Gets system preferences root node
5
ответ дан 1 December 2019 в 00:37
поделиться

Вы могли бы хотеть посмотреть Пакеты Ресурса .

1
ответ дан 1 December 2019 в 00:37
поделиться

Для пользователя определенная конфигурация Вы могли записать файл конфигурации в папку, на которую указывает "user.home" системное свойство. Только работал бы над той машиной, конечно.

0
ответ дан 1 December 2019 в 00:37
поделиться
Другие вопросы по тегам:

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