EJB3里的资源环境与环境注册项

资源环境和管理对象
资源环境的进入对象,不需要放入资源参考目录.一些资源可能有需要进入你的组件类别之内被从 JNDI ENC 获得或注入的其他额外的被管理的对象。
一个执行对象是一个资源,在部署时配置,并且在运行期间被EJB容器所管理.它们常常定义和部署通过一个JCA资源适配器.
此外的执行对象,资源环境项目被用到参考服务,像javax.transaction.UserTransaction 和javax.transaction.TransactionSynchronizationRegistry .
为了获取引用到其它的服务,可以使用@Resource注释。当使用这个注释时,authenticationType( ) 和 shareable( )属性是无意义的,并且指定它是不合法的.
@Stateful
public class TravelAgentBean implements TravelAgentRemote {
@Resource private javax.transaction.UserTransaction utx;

...
}
如果你使用XML,你必需使用一个分开的元素,它包含子元素 (必需的), (必需的), and (可选的), 如同 (可选的)元素.
元素与JNDI ENC名字相关联.为引用的类型,的使用相同的方法如同它们使用在:



TravelAgentBean

UserTransaction
javax.transaction.UserTransaction




com.titan.travelagent.TravelAgentBean

utx





XML攫取引用到一个javax.transaction.UserTransaction 对象并且注入到travelAgentBean类的utx字段.


环境项目
ProcessPayment EJB 有一个配置属性为最小检查数.这些类型的配置属性被叫做环境项目.组件类使用环境项目来满足客户的需求.
虽然他们的定义可以使用注释,环境项目总是配置通过XML,通过他们配置数值并且不是注释.元素用于定义他们.这个元素包含子元素 (可选的), (必需的), (必需的), and (可选的),如同 (可选的)元素.这是一个典型的定义:



ProcessPaymentBean

minCheckNumber

java.lang.Integer
2000



元素与java:comp/env上下文关联,例如,minCheckNumber项目可以访问使用java:comp/env/minCheckNumber路径的JNDI ENC查找:
InitialContext jndiContext = new InitialContext( );
int minValue = (Integer)jndiContext.lookup("java:comp/env/minCheckNumber");
作为一种选择,它可以查找同 EJBContext.lookup( )方法使用minCheckNumber名字.
的类型可以是String或多个原始包装类型中的一个,包括Integer, Long, Double, Float, Byte, Boolean, 和Short.
是可选的.它的值的指定可以通过Bean的开发者或延期的应用程序的集合或部署.
元素可以用于初始化一个字段或setter方法在环境项目值中.



ProcessPaymentBean

minCheckNumber
java.lang.Integer
2000


com.titan.processpayment.ProcessPaymentBean

minCheckNumber





前面的XML将会注入2000到minCheckNumber字段或调用一个setter方法名字为setMinCheckNumber( )在组件类中:
@javax.annotation.Resource注释可以用于引用环境项目代替元素:
@Resource(name="minCheckNumber") private int minCheckNumber = 100;
在这个例子中,2000将会被放入环境项目,描述在XML和注入到minCheckNumber字段.如果没有XML配置这个值,默认值将会是100,但是没有项目被创建在ENC中.一个通常的方式是注释你的字段使用@Resource和提供一个默认值为字段可以随意的覆盖在XML中.使用@Resource注释同String或原始类型值标识作为一个环境项目到EJB容器.当 @Resource指明环境项目,仅有name()属性是允许指定的.它不会做很多的判断使用@Resource为环境项目在类级,同样的没有方法初始化值在注释中.

你可能感兴趣的:(ejb3)