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

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

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

Спасибо


person Luis Soeiro    schedule 03.05.2011    source источник


Ответы (3)


Используйте env-запись. В 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;
person Brett Kail    schedule 03.05.2011

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

person planetjones    schedule 03.05.2011
comment
Упс, вы ответили раньше меня :-). +1 - person Brett Kail; 03.05.2011

Здесь есть несколько расширений 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

person David Blevins    schedule 03.05.2011