蒙在股里 发表于 2015-1-18 11:09:56

发布一篇从spring的IOC提及(一)

轮性能微软曾做过一个例子,就是同一个项目用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的复杂性。

金色的骷髅 发表于 2015-1-20 15:36:30

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

乐观 发表于 2015-1-20 15:40:37

Java是一个纯的面向对象的程序设计语言,它继承了 C++语言面向对象技术的核心。Java舍弃了C ++语言中容易引起错误的指针(以引用取代)、运算符重载(operator overloading)

再现理想 发表于 2015-1-29 12:24:19

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

海妖 发表于 2015-2-5 04:42:11

科学超级计算机、移动电话和互联网,同时拥有全球最大的开发者专业社群。

仓酷云 发表于 2015-2-11 04:31:29

还好,SUN提供了Javabean可以把你的JSP中的 Java代码封装起来,便于调用也便于重用。

飘飘悠悠 发表于 2015-3-1 21:06:43

应用在电视机、电话、闹钟、烤面包机等家用电器的控制和通信。由于这些智能化家电的市场需求没有预期的高,Sun公司放弃了该项计划。随着1990年代互联网的发展

分手快乐 发表于 2015-3-1 21:06:43

那么我书也看了,程序也做了,别人问我的问题我都能解决了,是不是就成为高手了呢?当然没那么简单,这只是万里长征走完了第一步。不信?那你出去接一个项目,你知道怎么下手吗,你知道怎么设计吗,你知道怎么组织人员进行开发吗?你现在脑子里除了一些散乱的代码之外,可能再没有别的东西了吧!

小妖女 发表于 2015-3-10 23:46:55

是一种为 Internet发展的计算机语言

若相依 发表于 2015-3-17 16:09:24

http://www.jdon.com/去下载,或到同济技术论坛的服务器ftp://nro.shtdu.edu.cn去下,安装上有什么问题,可以到论坛上去提问。

admin 发表于 2015-3-24 11:15:30

所以现在应用最广泛又最好学的就是J2EE了。 J2EE又包括许多组件,如Jsp,Servlet,JavaBean,EJB,JDBC,JavaMail等。要学习起来可不是一两天的事。那么又该如何学习J2EE呢?当然Java语法得先看一看的,I/O包,Util包,Lang包你都熟悉了吗?然后再从JSP学起。
页: [1]
查看完整版本: 发布一篇从spring的IOC提及(一)