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 使用的环境条目。
<enterprise-beans>
<session>
...
<ejb-name>EmployeeService</ejb-name>
<ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class>
...
<env-entry>
<description>
The maximum number of tax exemptionsallowed to be set.
</description>
<env-entry-name>maxExemptions</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>15</env-entry-value>
</env-entry>
<env-entry>
<description>
The minimum number of tax exemptions
allowed to be set.
</description>
<env-entry-name>minExemptions</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>1</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>foo/name1</env-entry-name>
<env-entry-type>java.lang.String</env-entry-type>
<env-entry-value>value1</env-entry-value>
</env-entry>
<env-entry>
<env-entry-name>foo/bar/name2</env-entry-name>
<env-entry-type>java.lang.Boolean</env-entry-type>
<env-entry-value>true</env-entry-value>
</env-entry>
<env-entry>
<description>Some description.</description>
<env-entry-name>name3</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
</env-entry>
<env-entry>
<env-entry-name>foo/name4</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>10</env-entry-value>
</env-entry>
...
</session>
</enterprise-beans>
...
环境条目的注入也可以使用部署描述来指导,而不需要java 语言的注释符。
下面是对应的环境条目的声明。
<enterprise-beans>
<session>
...
<ejb-name>EmployeeService</ejb-name>
<ejb-class>com.wombat.empl.EmployeeServiceBean</ejb-class>
...
<env-entry>
<description>
The maximum number of tax exemptionsallowed to be set.
</description>
<env-entry-name>
com.wombat.empl.EmployeeService/maxExemptions
</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>15</env-entry-value>
<injection-target>
<injection-target-class>
com.wombat.empl.EmployeeServiceBean
</injection-target-class>
<injection-target-name>
maxExemptions
</injection-target-name>
</injection-target>
</env-entry>
<env-entry>
<description>
The minimum number of tax exemptionsallowed to be set.
</description>
<env-entry-name>
com.wombat.empl.EmployeeService/minExemptions
</env-entry-name>
<env-entry-type>java.lang.Integer</env-entry-type>
<env-entry-value>1</env-entry-value>
<injection-target>
<injection-target-class>
com.wombat.empl.EmployeeServiceBean
</injection-target-class>
<injection-target-name>
minExemptions
</injection-target-name>
</injection-target>
</env-entry>
...
</session>
</enterprise-beans>
...
除了在代码中指定缺省值外,将字段作为注入目标通常都是方便的。如下例解释的一样:
// The maximum number of tax exemptions, configured by the Deployer.
@Resource int maxExemptions = 4; // defaults to 4
为了支持这种情况,如果应用组装者或部署者已经指定了一个值覆盖了缺省值,那么容器必须只注入环境条目的值。当注入目标被指定时,在部署描述中的env-entry-value 元素是可选的。如果没有指定,则不注入值。另外,如果没有指定,命名的资源在命名上下文中不被初始化,且显式查找命名资源将会失败。
分享到:
相关推荐
在Java Web开发中,`web.xml`是一个非常重要的配置文件,它作为Web应用程序的部署描述符,负责管理与应用程序相关的各项配置信息。本文将深入解析`web.xml`的各项元素及其作用,帮助开发者更好地理解并利用这一配置...
web.xml 文件中包含了一些基本的元素,用于描述 Web 应用程序的结构和配置。 1. `<context-param>` 元素 `<context-param>` 元素用于声明应用范围内的初始化参数。它可以包含多个 `<param-name>` 和 `...
- 可以在部署描述符中声明数据源,并在SessionBean中使用JNDI查找它。 ##### 2.5 对weblogic-ejb-jar.xml的支持 - `weblogic-ejb-jar.xml`是WebLogic服务器特定的部署描述符。 - 它包含了EJB配置的扩展属性,例如...
对于依赖于第三方库或服务器上其他服务的应用,`geronimo-web.xml`中可以声明这些依赖,以确保它们在部署时能正确解析和加载。 综上所述,`geronimo-web.xml`是Geronimo部署Web应用的关键组件,它为开发者提供了一...
在JavaEE应用开发中,描述符用于提供配置信息,使开发者能够声明式地管理应用程序的行为,而无需编写大量硬编码逻辑。这些描述符文件通常包括Web应用的web.xml、EJB的ejb-jar.xml、以及应用上下文的application.xml...
9. **部署配置**:在实际部署中,需要在应用服务器的配置文件中声明MDB,指定消息监听的JMS目的地和相应的消息类型。 由于缺乏具体的代码或博客内容,以上都是基于常见场景的推测。对于更深入的理解,最好能访问到...
web.xml 配置详解是指在 Java Web 应用程序中使用的部署描述符配置文件。它是一个 XML 文件,包含了很多描述 servlet/JSP 应用的各个方面的元素,如 servlet 注册、servlet 映射以及监听器注册。 在 web.xml 文件中...
在Java Web开发中,`web.xml`是部署描述文件的核心部分,它定义了Web应用程序的各种配置信息。本文将详细解析`web-app_2_3.dtd`中定义的主要元素及其作用,帮助开发者更好地理解和应用这些配置。 #### 1. `icon`...
- **`<env-entry>`**:声明Web应用的环境项,例如JNDI条目等。 - **示例**: ```xml <role-name>admin <env-entry-name>myDB <env-entry-value>java:comp/env/jdbc/myDB <env-entry-type>javax.sql....
在计算机领域中,“方言”一词有时用于描述针对特定目的或环境定制的编程语言或语法变体。 #### Directive 指令是指在程序中用于控制编译器或解释器行为的特殊命令。在 Java 中,例如 Java 注解就可以被视为一种...
3. **MVC(Model-View-Controller)模式**:在JavaWeb开发中,MVC模式是常见的架构模式,用于分离业务逻辑(Model)、用户界面(View)和控制流程(Controller)。 4. **JSTL(JavaServer Pages Standard Tag ...
- **web.xml**:Web应用程序部署描述符,配置了Web容器所需的各项设置。 #### 核心代码分析 以`BrowsCatelog.jsp`为例,该页面主要用于展示商品目录。代码中首先包含了导入必要的包声明,如`dao.transfer.*`、`...
在Java中,"main"方法是程序执行的起点,声明为`public static void main(String[] args)`的形式。 结合以上信息,我们可以探讨以下知识点: 1. **Java基础**:Java的基本语法、类与对象、封装、继承、多态等面向...