EJB3在部署描述中声明环境条目

Bean 提供者必须声明从企业bean 代码中访问的所有环境条目。这些环境条目通过在bean 类代码中使用注释符或在部署描述中使用env-entry 元素来声明。
每个env-entry 描述了一个环境条目。它由一个可选的环境条目描述、相对于java:comp/env 的环境条目名称、期望的环境条目值的类型(也就是,从EJBContext 或JNDI 的lookup 方法返回的对象的类型)和一个可选的环境条目值组成。
环境条目的范围是企业bean,它的部署描述元素要包含给定的env-entry 元素。这意味着在运行时其他企业bean 是不能获取这些环境条目的,且其他企业bean 也可以使用相同的env-entry-name 而不会引起命名冲突。
如果Bean 提供者使用env-entry-value 元素为环境条目提供了它的值,那么这个值可以在以后被应用组装者或部署者改变。这个值必须是一个有效的字符串(有效指的是可以使用类型的带单个String 参数的构造器来构造出相应的类型),或者对于java.lang.Character 来说,是一个字符。
下面的例子是声明由EmployeeServiceBean 使用的环境条目。


...
EmployeeService
com.wombat.empl.EmployeeServiceBean
...


The maximum number of tax exemptionsallowed to be set.

maxExemptions
java.lang.Integer
15



The minimum number of tax exemptions
allowed to be set.

minExemptions
java.lang.Integer
1


foo/name1
java.lang.String
value1


foo/bar/name2
java.lang.Boolean
true


Some description.
name3
java.lang.Integer


foo/name4
java.lang.Integer
10

...


...
环境条目的注入也可以使用部署描述来指导,而不需要java 语言的注释符。
下面是对应的环境条目的声明。


...
EmployeeService
com.wombat.empl.EmployeeServiceBean
...


The maximum number of tax exemptionsallowed to be set.


com.wombat.empl.EmployeeService/maxExemptions

java.lang.Integer
15


com.wombat.empl.EmployeeServiceBean


maxExemptions





The minimum number of tax exemptionsallowed to be set.


com.wombat.empl.EmployeeService/minExemptions

java.lang.Integer
1


com.wombat.empl.EmployeeServiceBean


minExemptions



...


...
除了在代码中指定缺省值外,将字段作为注入目标通常都是方便的。如下例解释的一样:
// The maximum number of tax exemptions, configured by the Deployer.
@Resource int maxExemptions = 4; // defaults to 4
为了支持这种情况,如果应用组装者或部署者已经指定了一个值覆盖了缺省值,那么容器必须只注入环境条目的值。当注入目标被指定时,在部署描述中的env-entry-value 元素是可选的。如果没有指定,则不注入值。另外,如果没有指定,命名的资源在命名上下文中不被初始化,且显式查找命名资源将会失败。

你可能感兴趣的:(ejb3)