1)我们正在使用OpenEJB(嵌入式和独立的)和一些部署的ejb。我们想要指定一些简单的静态业务规则和值(例如:icon_size=200)。通常,我们会把它们放在一个常规的属性文件中(例如:rules.properties)。由于在应用服务器内部时不应该直接访问文件系统,因此是否可以将这些键值对放在ejb-jar.xml中的某个位置?
2)如果没有,是否有标准的机制来做到这一点?这是什么?
谢谢
使用环境入口。在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;
我个人只使用。properties文件;一个TernarySearchTree,它可以读取。properties和。xml文件,并允许快速检索。这些文件在应用程序级别可用。但是,您可以在EJB 3中将环境入口元素注入到EJB中。这个链接很详细地解释了它
这里有一些可能有用的OpenEJB扩展。
env-entries.properties
查看自定义注入示例,该示例基本上允许将<env-entry>
指定为META-INF/env-entries.properties
文件中的普通属性。很好地将name &值对放入一个简单的属性文件中。在内部,我们只是使用这些属性为您生成xml。默认类型始终是java.lang。字符串,这对下一部分很有用。
java.beans。PropertyEditor支持
任何属于<env-entry-type>
java.lang.String
的<env-entry>
将自动使用虚拟机java.beans.PropertyEditor
转换为目标类型。这也是Spring进行转换的方式。有几个内置转换器,如@Resource java.util.Date myDate
和@Resource java.io.File myFile