论坛首页 Web前端技术论坛

Spring is the new Java EE

浏览 9852 次
该帖已经被评为新手帖
作者 正文
   发表时间:2007-05-10   最后修改:2010-07-03

前些天曾经在Javaeye和一些网友讨论过"Java EE 是什么?"的话题,很多人对Java EE的范畴不是很了解.最近看到了Salil Deshpande--The Middleware Company 的执行总裁些的一篇文章,题目是:  Spring is the new Java EE version., 讲了一些Spring的发展前景,我觉得这篇文章对我们了解什么是Java EE有所帮助, 下面的这小段是他写的这篇文章的最后的一段,算是个引用吧,由于翻译水平有限,里面一些不懂的地方用问号标记了,请大家迁就,如果能给出正确的翻译是最好了.这篇文章既有趣味又有技术性,值得一看.

关 于Spring详细的话题太大了,我不得不在这篇文章了里再详细介绍它一遍. Rod Johnson的一次关于Spring 2.0的谈话中提到,在2007年剩下的时间里Spring将会和OSGI集成. OSGI一个Java的动态模块系统,这个东西在起初就本该是Java的一部分. 奇怪的是,它却因为Eclipse(插件)而普遍的使用在client端,而不知大家所知的server端. Spring-OSGi集成可能将会成为OSGi标准. 并且作为Spring是一个松耦合的,组件架构的证明,Spring已经成为了OSGi的有效的捆绑包

更长远的,Spring框架将会成为the Spring Portfolio(??). 它将会和JCA, CICS, and IMS集成. 会有Spring Web Services, 和 Spring LDAP. Spring的Message-driven POJOs将会成为可能. Acegi,这个领先的企业级Java安全框架,会成为Spring的Security框架. 跟Spring Message-driven POJO一样,会有Spring Web Flow. Spring在SOA中的角色会由于the Service Component Architecture (SCA)而标准化. 一个对Spring开发提供支持的IDE(由Eclipse插件实现)正在完善中,这个IDE提供了对AOP,Spring Web Flow的支持

也 许最重要的是,Interface21计划把这一大堆组成Spring平台或者是Spring portfolio的小部件打包,把它们做成一个可下载的文件…or distro(??). 这并只是把它们评凑的一起的事情,而是要经过测试,集成,给它们正确的版本,让它们相互配合工作. 我相信这将会稳固它. Enterprise Java将会意味这Spring.

最后,但并不是最不重要的,BEA,也许是IBM的下一代application server将会建立在Spring平台上. 不会是只有我发现了这些令人兴奋的事吧?

外刊IT评论  
   发表时间:2007-05-10  
如果Spring不能上升为JAVA企业级开发的标准,那么,它永远也不可能是new Java EE version,而只能算是Java EE标准的一个成功实现。
0 请登录后投票
   发表时间:2007-05-10  
rainlife 写道
如果Spring不能上升为JAVA企业级开发的标准,那么,它永远也不可能是new Java EE version,而只能算是Java EE标准的一个成功实现。


实际上的标准远比纸面上的标准来的实在,另外,spring是java EE标准的成功实现这一说法比较奇特。换句话,应该说spring是相比于java EE标准的另外一种整合java EE各项技术的方式。
0 请登录后投票
   发表时间:2007-05-10  
dennis_zane 写道
spring是java EE标准的成功实现这一说法比较奇特。换句话,应该说spring是相比于java EE标准的另外一种整合java EE各项技术的方式。

是的,您的这个说法比较贴切 ,呵呵。
0 请登录后投票
   发表时间:2007-05-10  
林秋枫 写道
spring除了技术比较成功之外,商业策略也是比较成功或者是有点阴险的。
由于在spring中,bean实例只能配置在静态xml文件中,不能在运行的时候注入。所以实际上系统只要使用到spring一点功能,就必须依赖于spring容器,甩也甩不开。这点非常不好。

怎么不能在运行时注入?如果你不希望使用spring IOC,那你自己手工setter,手工new对象,spring并没有限制你的行动。你完全可以甩开spring容器,回到遍地工厂模式、单例模式的时代。
0 请登录后投票
   发表时间:2007-05-10  
dennis_zane 写道
林秋枫 写道
spring除了技术比较成功之外,商业策略也是比较成功或者是有点阴险的。
由于在spring中,bean实例只能配置在静态xml文件中,不能在运行的时候注入。所以实际上系统只要使用到spring一点功能,就必须依赖于spring容器,甩也甩不开。这点非常不好。

怎么不能在运行时注入?如果你不希望使用spring IOC,那你自己手工setter,手工new对象,spring并没有限制你的行动。你完全可以甩开spring容器,回到遍地工厂模式、单例模式的时代。
怎么实现运行时候注入呢?
比如你在spring配置了一个数据源。
在spring容器外面怎么获得数据源这个bean呢?
0 请登录后投票
   发表时间:2007-05-10  
林秋枫 写道
dennis_zane 写道
林秋枫 写道
spring除了技术比较成功之外,商业策略也是比较成功或者是有点阴险的。
由于在spring中,bean实例只能配置在静态xml文件中,不能在运行的时候注入。所以实际上系统只要使用到spring一点功能,就必须依赖于spring容器,甩也甩不开。这点非常不好。

怎么不能在运行时注入?如果你不希望使用spring IOC,那你自己手工setter,手工new对象,spring并没有限制你的行动。你完全可以甩开spring容器,回到遍地工厂模式、单例模式的时代。
怎么实现运行时候注入呢?
比如你在spring配置了一个数据源。
在spring容器外面怎么获得数据源这个bean呢?


你手工new啊,或者再弄个工厂模式来,再把工厂设为单例......这个时候,你需要自己设置dataSource的属性,这个工作本来是spring容器帮你做的,现在既然你抛开了spring容器,一切都要你来掌握了 ,spring哪里绑定了?
0 请登录后投票
   发表时间:2007-05-10  
dennis_zane 写道
林秋枫 写道
dennis_zane 写道
林秋枫 写道
spring除了技术比较成功之外,商业策略也是比较成功或者是有点阴险的。
由于在spring中,bean实例只能配置在静态xml文件中,不能在运行的时候注入。所以实际上系统只要使用到spring一点功能,就必须依赖于spring容器,甩也甩不开。这点非常不好。

怎么不能在运行时注入?如果你不希望使用spring IOC,那你自己手工setter,手工new对象,spring并没有限制你的行动。你完全可以甩开spring容器,回到遍地工厂模式、单例模式的时代。
怎么实现运行时候注入呢?
比如你在spring配置了一个数据源。
在spring容器外面怎么获得数据源这个bean呢?


你手工new啊,或者再弄个工厂模式来,再把工厂设为单例......这个时候,你需要自己设置dataSource的属性,这个工作本来是spring容器帮你做的,现在既然你抛开了spring容器,一切都要你来掌握了 ,spring哪里绑定了?
问题就在这里。
你手工new...工厂模式出来的数据源bean和spring中的完全是两个不同的实例。

就是说,如果在在一个web系统里面只想部分使用spring,比如用spring来实现发送邮件的bean,如果web层没有加载spring容器,就无法使用这个bean了。
0 请登录后投票
   发表时间:2007-05-10  
林秋枫 写道
dennis_zane 写道
林秋枫 写道
dennis_zane 写道
林秋枫 写道
spring除了技术比较成功之外,商业策略也是比较成功或者是有点阴险的。
由于在spring中,bean实例只能配置在静态xml文件中,不能在运行的时候注入。所以实际上系统只要使用到spring一点功能,就必须依赖于spring容器,甩也甩不开。这点非常不好。

怎么不能在运行时注入?如果你不希望使用spring IOC,那你自己手工setter,手工new对象,spring并没有限制你的行动。你完全可以甩开spring容器,回到遍地工厂模式、单例模式的时代。
怎么实现运行时候注入呢?
比如你在spring配置了一个数据源。
在spring容器外面怎么获得数据源这个bean呢?


你手工new啊,或者再弄个工厂模式来,再把工厂设为单例......这个时候,你需要自己设置dataSource的属性,这个工作本来是spring容器帮你做的,现在既然你抛开了spring容器,一切都要你来掌握了 ,spring哪里绑定了?
问题就在这里。
你手工new...工厂模式出来的数据源bean和spring中的完全是两个不同的实例。

就是说,如果在在一个web系统里面只想部分使用spring,比如用spring来实现发送邮件的bean,如果web层没有加载spring容器,就无法使用这个bean了。


怎么会是不同的实例呢?我觉的你对为什么要IOC,IOC是什么这两个问题的理解很有问题。spring容器管理的bean跟你自己手工new的bean没有什么两样,只不过你手工new,你需要为这个bean手工注入各个属性,而spring容器可以帮你做这件事情。发送邮件?既然没有spring来替你管理bean,你就要自己手工去创建这个bean啊 搞了半天,不知道你有没有明白我在说什么!-_-
0 请登录后投票
   发表时间:2007-05-10  
dennis_zane 写道
林秋枫 写道
dennis_zane 写道
林秋枫 写道
dennis_zane 写道
林秋枫 写道
spring除了技术比较成功之外,商业策略也是比较成功或者是有点阴险的。
由于在spring中,bean实例只能配置在静态xml文件中,不能在运行的时候注入。所以实际上系统只要使用到spring一点功能,就必须依赖于spring容器,甩也甩不开。这点非常不好。

怎么不能在运行时注入?如果你不希望使用spring IOC,那你自己手工setter,手工new对象,spring并没有限制你的行动。你完全可以甩开spring容器,回到遍地工厂模式、单例模式的时代。
怎么实现运行时候注入呢?
比如你在spring配置了一个数据源。
在spring容器外面怎么获得数据源这个bean呢?


你手工new啊,或者再弄个工厂模式来,再把工厂设为单例......这个时候,你需要自己设置dataSource的属性,这个工作本来是spring容器帮你做的,现在既然你抛开了spring容器,一切都要你来掌握了 ,spring哪里绑定了?
问题就在这里。
你手工new...工厂模式出来的数据源bean和spring中的完全是两个不同的实例。

就是说,如果在在一个web系统里面只想部分使用spring,比如用spring来实现发送邮件的bean,如果web层没有加载spring容器,就无法使用这个bean了。


怎么会是不同的实例呢?我觉的你对为什么要IOC,IOC是什么这两个问题的理解很有问题。spring容器管理的bean跟你自己手工new的bean没有什么两样,只不过你手工new,你需要为这个bean手工注入各个属性,而spring容器可以帮你做这件事情。发送邮件?既然没有spring来替你管理bean,你就要自己手工去创建这个bean啊 搞了半天,不知道你有没有明白我在说什么!-_-
还是举数据源这个例子。
如果系统只是部分使用spring。

在spring配置了一个数据源的bean,在spring容器之外又new了一个数据源的bean。
两个地方配置参数统一性维护是一个问题,在系统中使用又存在统一性的问题。
0 请登录后投票
论坛首页 Web前端技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics