发布一篇EJB 3.0开辟指南之依附注进
Java编译的是字节码,跟C++相反,启动不够快,效率不够高,难以精确控制内存,但是优点是编程比C++容易,代码比较安全但是容易留下性能隐患,跨平台靠字节码在各个平台复制(一处编译到处调试)依附注进(DependencyInjection),又称作把持反转(IOC),原本是一种计划形式,如今被吵得如火如荼,有点过了。对照着名项目如String,picoContainer等。
在EJB3.0中,能够经由过程在字段和设置办法上加上正文注进依附,我想在很快会有新的项目,大概在本来的项目标基本上,一些IOC容器会接纳正文的体例注进依附,JDK5.0到场的正文切实其实是一个很壮大的功效,绝对而言,在.net中的属性却没有发扬那末年夜的代价。这就是开源的能力,不计其数的在开源java程序员不休出现出新的设法新的功效。
看上面的例子:我们晓得,JBOSS中已默许设置了一个数据源,它的JNDI称号是"java:/DefaultDS"。上面这个例子声了然一个数据源,经由过程正文,就能够将JBOSS的这个默许的数据源赋值给它。
@Resource(jndiName="java:/DefaultDS")
publicDataSourcecustomerDB;
Resource正文的声明
@Target({TYPE,METHOD,FIELD,PARAMETER})@Retention(RUNTIME)
public@interfaceResource{
Stringname()default"";
StringresourceType()default"";
AuthenticationTypeauthenticationType()defaultCONTAINER;
booleanshareable()defaulttrue;
StringjndiName()default"";
}
publicenumAuthenticationType{
CONTAINER,
APPLICATION
}
@Target(TYPE)@Retention(RUNTIME)
public@interfaceResources{
Resource[]value();
}
Resource的name指向一个在情况属性中定名的资本,AuthenticationType用来指定是容器仍是EJB组件来举行身份考证,sharebale指定是不是共享,jndiName用来指定JDNI中的称号。resourceType()用来指定资本的范例。
假如name和resourceType都指向被正文的程序成员,AuthenticationType和resourceType都是缺省的,则可使用Inject正文:
@Inject(jndiName="java:/DefaultDS")
publicDataSourcecustomerDB;
关于单例的成员,你能够更简化:
@Injectjavax.ejb.SessionContextctx;
@Injectjavax.ejb.TimerServicetimer;
@Injectjavax.ejb.UserTransactionut;
@Injectjavax.ejb.EntityManagermanager;
Resources正文能够注进多个资本。
在Eclipse中导进本文供应的例子DI。
这个例子从数据库中读取JMS_USER表,并显现表中的内容。这个例子利用依附注进的体例失掉JBOSS默许的数据源。
这个例子次要有5个文件:
JmsUsers.java:营业接口。
JmsUsersBean.java:营业完成类。未来我们开辟的EJB也都是如许定名(在接口名上加上Bean)。
Client.java:测试EJB的客户端类。
jndi.properties:jndi属性文件,供应会见jdni的基础设置属性。
Build.xml:ant设置文件,用以编译、公布、测试、扫除EJB。
上面针对每一个文件的内容做一个先容。
JmsUsers.java
packagecom.kuaff.ejb3.di;
importjava.util.List;
importjavax.ejb.Remote;
importjavax.sql.*;
@Remote
publicinterfaceJmsUsers
{
publicList<String>getUsers();
}
<p>
J2ME在手机游戏开发的作用也是无用质疑的。至于桌面程序,可能有人说java不行,界面不好看,但是请看看net网页编程Beans和Eclipse吧,他们都是利用java开发的,而他们的界面是多么的华丽,所以界面决不是java的缺点。还有一个不得不提的优点就是大多java人员都挂在嘴边的java的跨平台性,目前这确实也是java优点之一。 http://www.ckuyun.com/去下载,或到同济技术论坛的服务器ftp://www.ckuyun.com去下,安装上有什么问题,可以到论坛上去提问。 多重继承(以接口取代)等特性,增加了垃圾回收器功能用于回收不再被引用的对象所占据的内存空间,使得程序员不用再为内存管理而担忧。在 Java 1.5 版本中,Java 又引入了泛型编程(Generic Programming)、类型安全的枚举、不定长参数和自动装/拆箱等语言特性。 当然你也可以参加一些开源项目,一方面可以提高自己,另一方面也是为中国软件事业做贡献嘛!开发者在互联网上用CVS合作开发,用QQ,MSN,E-mail讨论联系,天南海北的程序员分散在各地却同时开发同一个软件,是不是很有意思呢? 吧,现在很流行的Structs就是它的一种实现方式,不过Structs用起来实在是很繁,我们只要学习其精髓即可,我们完全可以设计自己的MVC结构。然后你再研究一下软件Refactoring (重构)和极限XP编程,相信你又会上一个台阶。 做完这些,你不如整理一下你的Java代码,把那些经典的程序和常见的应用整理出来,再精心打造一番,提高其重用性和可扩展性。你再找几个志同道合的朋友成立一个工作室吧 那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧! 是一种使用者不需花费很多时间学习的语言 任职于太阳微系统的詹姆斯·高斯林等人于1990年代初开发Java语言的雏形,最初被命名为Oak,目标设置在家用电器等小型系统的程序语言 你一定会高兴地说,哈哈,原来成为Java高手就这么简单啊!记得Tomjava也曾碰到过一个项目经理,号称Java很简单,只要三个月就可以学会。 你可以去承接一些项目做了,一开始可能有些困难,可是你有技术积累,又考虑周全,接下项目来可以迅速作完,相信大家以后都会来找你的,所以Money就哗啦啦的。。。。。。 Sun公司看见Oak在互联网上应用的前景,于是改造了Oak,于1995年5月以Java的名称正式发布。Java伴随着互联网的迅猛发展而发展,逐渐成为重要的网络编程语言。 设计模式是高级程序员真正掌握面向对象核心思想的必修课。设计模式并不是一种具体"技术",它讲述的是思想,它不仅仅展示了接口或抽象类在实际案例中的灵活应用和智慧 你快去找一份Java的编程工作来做吧(如果是在校学生可以去做兼职啊),在实践中提高自己,那才是最快的。不过你得祈祷在公司里碰到一个高手,而且他 还愿意不厌其烦地教你,这样好象有点难哦!还有一个办法就是读开放源码的程序了。我们知道开放源码大都出自高手,他们设计合理,考虑周到,再加上有广大的程序员参与,代码的价值自然是字字珠叽,铿锵有力(对不起,偶最近《金装四大才子》看多了)。 在全球云计算和移动互联网的产业环境下,Java更具备了显著优势和广阔前景。 不过,每次的执行编译后的字节码需要消耗一定的时间,这同时也在一定程度上降低了 Java 程序的运行效率。 如果要向java web方向发展也要吧看看《Java web从入门到精通》学完再到《Struts2.0入门到精通》这样你差不多就把代码给学完了。有兴趣可以看一些设计模块和框架的包等等。 Java是一种计算机编程语言,拥有跨平台、面向对java J2SE开发桌面应用软件比起 VC,VB,DEPHI这些传统开发语言来说,优势好象并不明显。J2ME对于初学者来说,好象又有点深奥,而且一般开发者很难有开发环境。 Pet Store.(宠物店)是SUN公司为了演示其J2EE编程规范而推出的开放源码的程序,应该很具有权威性,想学J2EE和EJB的朋友不要 错过了。 如果你学过HTML,那么事情要好办的多,如果没有,那你快去补一补HTML基础吧。其实JSP中的Java语法也不多,它更象一个脚本语言,有点象ASP。
页:
[1]