首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 软件管理 > 软件架构设计 >

EJB3.0的依赖注入的应用

2012-10-06 
EJB3..0的依赖注入的使用package com.easyway.tbs/**?* ?* @author longgangbai?*?*/public interface In

EJB3..0的依赖注入的使用

package com.easyway.tbs;

/**
?*
?* @author longgangbai
?*
?*/
public interface Injection {
?public String sayHello();
}

?

?

package com.easyway.tbs;

import javax.ejb.EJB;
import javax.ejb.Remote;
import javax.ejb.Stateless;
/**
?* 依赖注入的应用
?* @author longgangbai
?*
?*/

@Stateless
@EJB(//@EJB注解工作时,会自动引发容器在JNDI ENC中为被注入的元素创建一个注册项,这不仅对@EJB注解使用,对其他的环境用注解也使用,名称有name决定,如果没有,则容器
??name="ejb/HellWorld",? //ejb 引用的JNDI ENC注册项名称,相对于java:comp/env 上下文
??beanName="HelloWorldBean", //被调用EJB的名称?? 其值与@Stateless.name(),@Stateful.name(),或者ejb-jar.xml中<ejb-name>元素所指定的值相等。
??beanInterface=HelloWorld.class //bean接口的名称,用于区分本地还是远程接口,如果在bean class 上面 必须指定该属性值,其他可以省略
?????? // ,mappedName="" //EJB的全局JNDI的名称,而全局JNDI的名称与容器厂商有关,设置该属性值将不利于移植
??//??
)//通过注解添加注册项
/*
??? 上面代码相等于如下配置
??? <enterprise-beans>
???? <session>
??????? <ejb-name>InjectionBean</ejb-name>
???????? <ejb-ref>
??????????? <ejb-ref-name>ejb/HelloWorld</ejb-ref-name>
???????????? <ejb-ref-type>Session</ejb-ref-type>
???????????? <remote>com.easyway.tbs.HelloWorld</remote>
???????????? <ejb-link>HelloWorldBean</ejb-link>
???????? </ejb-ref>
???? </session>
? </enterprise-beans>
??
?*/
@Remote(Injection.class)
public class InjectionBean? implements Injection{
?/**
? *
? * 备注如果要从ENC中户获取资源的引用,我们可以通过注册项目名称进行JDNI查找,
? * 例如:
? *?? HelloWorld? helloWorld=(HelloWorld)ctx.lookup("java:comp/env/ejb/HelloWorld")
? *??
? *?? comp:代表组件,
? *?? java:comp/env指向该EJB的ENC,
? *?? ejb/HellWorld是在ENC中定义的注册项的名称。
? *??
? * EJB的注入方式
? */
?private HelloWorld hellworld;
?

?@EJB(beanName="HelloWorldBean")//采用EJB注入的方式
?public void setHelloWorld(HelloWorld hellworld)
??? {
??this.hellworld=hellworld;
??? }

??
?public String sayHello(){
??? ? return hellworld.sayhello("注入者");
???? }
}

热点排行