Можно ли разместить пользовательские значения (свойства) в ejb-jar.xml?

1) Мы используем OpenEJB (как встроенный, так и автономный) с несколькими развернутыми EJB. Мы хотели бы указать несколько простых статических бизнес-правил и значений (пример: icon_size=200). Обычно мы помещаем их в обычный файл свойств (пример: rules.properties). Поскольку мы не должны обращаться к файловой системе напрямую, находясь внутри сервера приложений, возможно ли разместить эти пары ключ-значение где-нибудь внутри файла ejb-jar.xml?

2) Если нет, есть ли стандартный механизм для этого? Что это?

Спасибо

3 ответа

Используйте env-entry. В XML:

<env-entry>
  <env-entry-name>icon_size</env-entry-name>
  <env-entry-type>java.lang.Integer</env-entry-type>
  <env-entry-value>200</env-entry-value>
</env-entry>

В аннотации:

@Resource(name="icon_size")
int icon_size;

Лично я просто использую файл.properties; хорошо TernarySearchTree, который читает в.properties и.XML-файлы и позволяет быстрый поиск. Эти файлы доступны на уровне приложения. Однако вы можете в EJB 3 вставить элементы env-entry в ваш EJB. Эта ссылка объясняет это в деталях. Введение в env

Здесь есть некоторые расширения OpenEJB, которые могут быть полезны.

env-entries.properties

Посмотрите пример Custom Injection, который в основном позволяет <env-entry> быть указано как простые свойства в META-INF/env-entries.properties файл. Отлично подходит для свертывания всех этих пар имя-значение в простой файл свойств. Внутренне, мы просто генерируем xml для вас, используя эти свойства. Тип по умолчанию всегда java.lang.String, что хорошо для следующей части.

поддержка java.beans.PropertyEditor

любой <env-entry> который из <env-entry-type>java.lang.String автоматически преобразует тип с использованием виртуальной машины java.beans.PropertyEditor для целевого типа. Это также, как Spring делает преобразование. Есть несколько встроенных преобразователей, таких как @Resource java.util.Date myDate а также @Resource java.io.File myFile

Другие вопросы по тегам