|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
轮性能微软曾做过一个例子,就是同一个项目用java和.net来作,结果开发周期,.net是java的一半,性能java是.net的十分之一,代码量java是.net的三倍。呵呵,这说明了什么,.net的全方位比java好。但是有的人说.net不能跨平台,这个问题我和我同学曾讨论过,都认为微软的.net很可能早都可以跨平台了,但是微软为了保护他们的操作系统,所以才没有推出跨平台的.net,只是推出了跨语言的.net,
这段工夫也实在好好的看了下spring的相干书本,对其也有了也许和开端的熟悉和了解,固然之前也一向传闻spring是一个十分优异的开源框架,可一向没无机会进修和利用(是否是有点后进了?呵呵),以是呢,这段工夫就重点进修了spring(一个礼拜的工夫固然是进门级的啦~~)
人人一向都说spring的IOC怎样怎样的壮大,实在我倒以为不是IOC怎样的强年夜,说白了IOC实在也十分的复杂。我们先从IOC提及,这个观点实际上是从我们平常new一个对象的对峙面来讲的,我们寻常利用对象的时分,一样平常都是间接利用关头字类new一个对象,那如许有甚么害处呢?实在很明显的,利用new那末就表示以后模块已不知不觉的和new的对象耦合了,而我们一般都是更高条理的抽象模块挪用底层的完成模块,如许也就发生了模块依附于详细的完成,如许与我们JAVA中倡始的面向接口面向笼统编程是相抵触的,并且如许做也带来体系的模块架构成绩。很复杂的例子,我们在举行数据库操纵的时分,老是营业层挪用DAO层,固然我们的DAO一样平常都是会接纳接口开辟,这在必定水平上满意了松耦合,使营业逻辑层不依附于详细的数据库DAO层。可是我们在利用的时分仍是会new一个特定命据库的DAO层,这有形中也与特定的数据库绑定了,固然我们可使用笼统工场形式来猎取DAO完成类,但除非我们一次性把一切数据库的DAO写出来,不然在举行数据库迁徙的时分我们仍是得修正DAO工场类。
那我们利用IOC能到达甚么呢?IOC,就是DAO接口的完成不再是营业逻辑层调用工场类往猎取,而是经由过程容器(好比spring)来主动的为我们的营业层设置DAO的完成类。如许全部历程就反过去,之前是我们营业层自动往猎取DAO,而现在是DAO自动被设置到营业逻辑层中来了,这也就是反转把持的由来。经由过程IOC,我们就能够在不修正任何代码的情形下,无缝的完成数据库的换库迁徙,固然前提仍是必需得写一个完成特定命据库的DAO。我们把DAO广泛到更多的情形下,那么IOC就为我们带来更年夜的便利性,好比一个接口的多个完成,我们只必要设置一下就ok了,而不必要再一个个的写工场来来猎取了。这就是IOC为我们带来的模块的松耦合和使用的便当性。
那为何说IOC很复杂呢?说白了实在就是由我们寻常的new转成了利用反射来猎取类的实例,信任任何人只需会用java的反射机制,那末本人写一个IOC框架也不是不成能的。好比:
……
publicObjectgetInstance(StringclassName)throwsException
{
Objectobj=Class.forName(className).newInstance();
Method[]methods=obj.getClass().getMethods();
for(Methodmethod:methods){
if(method.getName().intern()=="setString"){
method.invoke(obj,"helloworld!");
}
}
}
……
下面的一个办法我们就很复杂的利用了反射为指定的类的setString办法来设置一个helloworld!字符串。实在能够看到IOC真的很复杂,固然了IOC复杂其实不暗示spring的IOC就复杂,spring的IOC的功效壮大就在于有一系列十分壮大的配置文件保护类,它们能够保护spring设置文件中的各个类的干系,这才是spring的IOC真正壮大的中央。在spring的Bean界说文件中,不但能够为界说Bean设置属性,还撑持Bean之间的承继、Bean的笼统和分歧的猎取体例等等功效。
下次俺再把spring的Bean设置的相干心得和人人一同分享下,假如说的欠好,人人能够提定见哦,可万万不要仍臭鸡蛋,嘿嘿~~~~
原文:http://j2ee.blog.sohu.com/63333114.html
首先java功能强大的背后是其复杂性,就拿web来说,当今流行的框架有很多,什么struts,spring,jQuery等等,而这无疑增加了java的复杂性。 |
|