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

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

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

Спасибо

Ответы [ 3 ]

3 голосов
/ 03 мая 2011

Использовать 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;
1 голос
/ 03 мая 2011

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

0 голосов
/ 03 мая 2011

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

env-entries.properties

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

java.beans.PropertyEditor support

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

...