#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