是否可以在ejb-jar.xml中放置自定义值(属性)?

时间:2011-05-03 18:01:05

标签: ejb openejb custom-properties ejb-jar.xml

1)我们正在使用OpenEJB(嵌入式和独立式)以及一些已部署的EJB。我们想指定一些简单的静态业务规则和值(例如:icon_size = 200)。通常,我们会将它们放在常规属性文件中(例如:rules.properties)。由于我们不应该在应用程序服务器内部直接访问文件系统,是否可以将这些键值对放在ejb-jar.xml中的某个位置?

2)如果没有,是否有标准机制来做到这一点?它是什么?

由于

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:1)

我个人只是使​​用.properties文件;以及读取.properties和.XML文件并允许快速检索的TernarySearchTree。这些文件在应用程序级别可用。但是,您可以在EJB 3中将env-entry元素注入EJB。此链接详细解释了Injection of env entry

答案 2 :(得分:0)

这里有一些OpenEJB扩展可能很有用。

env-entries.properties

查看Custom Injection示例,该示例基本上允许在<env-entry>文件中将META-INF/env-entries.properties指定为普通属性。很好地折叠所有这些名称和&amp;值对成简单的属性文件。在内部,我们只使用这些属性为您生成xml。默认类型始终是java.lang.String,这对下一部分很有用。

java.beans.PropertyEditor支持

<env-entry> <env-entry-type>的任何java.lang.String都会自动使用VM java.beans.PropertyEditor为目标类型转换其类型。这也是Spring如何进行转换的。内置转换器很少,例如@Resource java.util.Date myDate@Resource java.io.File myFile