|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
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优点之一。 |
|