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

#ejb #openejb #custom-properties #ejb-jar.xml

#ejb #openejb #пользовательские свойства #ejb-jar.xml

Вопрос:

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

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

Спасибо

Ответ №1:

Используйте 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;
  

Ответ №2:

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

Комментарии:

1. Упс, ты ответил раньше меня :-). 1

Ответ №3:

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

env-entries.properties

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

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

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