使用EJB3.O简化EJB开发(三)
catch(NamingException e)
{
System.err.println("Communication error: " e.getMessage());
}
catch(CreateException e)
{
System.err.println("Error creating EJB instance: " e.getMessage());
}
如一个环境变量的变化一样,EJB3.0建议使用安放injection的方法查找和调用EJB.
下面我们使用安放injection的方法在另一个EJB查找HelloWorldEJB。
@Inject private void setSessionContext(SessionContext ctx)
{
this.ctx = ctx
}
...
myHello = (HelloWorld)ctx.lookup("java:comp/env/ejb/HelloWorldEJB");
如果你仔细查看上面的代码,它依赖的injection使用@Injectset来的指定对SessionContext方法的annotations。injection 方法将可以在业务方法被EJB调用前被容器调用来设定EJBContext。
另一个injected 的HelloWorld会话bean的直接的范例可以简化为使用
@EJB public HelloWorld myHello,这将使得myHello被HelloWorld bean的实例injected 。
你可以使用依赖的injection来查询任何类型的环境和资源参考如DataSource, JMS, Mail, Web Service等等。
容器外部测试可行性
一个现在EJB开发者所关注的不仅仅是EJB开发的复杂,也包括了测试的可怕之处。开发和测试EJB必须需要一个EJB容器并且开发人员必须熟悉最终部署平台才可以执行测试。这对于许多只在一个主要平台开发的企业开发人员来说不是主要问题,但是对于支持多个开发商平台并且要在维护的多个环境中测试EJB的ISV们来说是个大问题。EJB3.0规范承诺将提供在容器外测试的功能,但是这点在这次的规范中遗漏掉了。
结论
虽然还有很多关于打包,装配和重要的API细节没有在这个规范中提及,但是诸多的建议使得EJB3.0规范让企业级Java开发人员看起来是恨有前途的。通过这些无疑是从开发人员到服务供应商都将帮助减少开发的复杂性。下面就要看服务提供商们怎么实现,并使得EJB3.0成为企业级应用一个引人瞩目的选择。
Author Bio 作者自述
Debu Panda是Oracle应用服务开发小组的主要管理者,他的在EJB容器和事务管理上取得过很多成就。他已经有13年的IT产业的经验并在多家杂志和技术出版社刊登过很多著作。
翻译问题:
由于部分英文名词未敢枉自翻译,所以留英文原词在文中
Cleaning up the Dirty Laundry 整理缺陷
low carb
Atkins diet
metadata annotations 元数据描述
Simplifying Client View for EJBs 简化EJB客户端
dependency injection 依赖型injection
setter injection 安放injection
ISV Independent software vendor 独立软件供应商
上一篇: JSP连接Mysql数据库攻略
下一篇: 七条对于中国大学软件专业同学一些建议 作者: 梁振,严诺
文章整理:西部数码--专业提供域名注册、虚拟主机服务
http://www.west263.com
以上信息与文章正文是不可分割的一部分,如果您要转载本文章,请保留以上信息,谢谢!



