spring FAQ

1 : 相比较仅仅使用jsp或者struts等简单框架的开发,使用了spring的web应用,其性能如何?

客观来讲,Spring的 微内核容器的确会在一定程度上消耗额外的系统性能。 不过,除非对于

并发性能(比如超大规模论坛)

实时性能(比如超大规模信用卡在线交易系统)

要求特别高,我还是推荐使用Spring进行开发。 Spring为我们带来的系统结构和开发上的帮助,远远可以抵消这部分损失。


2  :我在配置了某个service中的方法为使用事务,然后又在另外的一个带事务的service中调用这个事务,这样就形成了事务的欠套,会不会有问题?

nested(嵌套)的事务,何时该发起事务,何时该结束事务,这可以设置PROPAGATION BEHAVIOR,这可以查询TransactionDefinition中的几个BEHAVIOR,依需求设置。


3 : Java领域的开源事业空前繁荣,spring作为期待包容开源框架的产品,它的研发更新速度是否能够适应Java开源领域以及企业应用领域的需要呢?

从目前的情况来看,Spring已经做到了这一点。很多新开发的企业级应用系统,已经建立在Spring框架之上。


4  : 夏老师是金融行业的顾问,我想问一下,您是怎么说服金融行业的人员使用开源产品的,我所遇到的一些金融行业从业人员,对开源甚至java都不愿意接受,而更喜欢古老但坚固的C ++  

这可能是传统思路的延续吧,跟国内金融系统一贯的风险规避思路有关。 我为花期银行亚太数据中心工作的时候,看到很多蛮关键的业务,后台其实是Tomcat在运行。 所以,开源产品本身并没有什么问题,关键还在于思路的改变,这需要时间。
 
5  : 什么情况下适合将spring纳入项目中加以应用?(最适合spring应用的场景有哪些)

使用Spring,最怕的是为了Spring而Spring,为了IoC而IoC,为了AOP而AOP,这样的话,Spring对您没有好处,有几点可以参考… 

1 . 當元件出現重用時,才開始考慮使用 Spring IoC。
2 . 元件動用到外部資源時,使用 Spring IoC。 
3 . 當元件需要 AOP 時,再考慮設定到 Spring xml。 
4 . 能不用 Spring IoC 就不用! 
5 . 不要為Spring而Spring。 
6 . 不要為IoC而IoC。 
7 . 不要為AOP而AOP。

简单的说,采XP的方式,可以让您考量到,何时该采用Spring,何时该采用IoC、AOP等。 这边有个案例可以参考: http://www.javaworld.com.tw/roller/page/ingramchen?entry=2006_2_1_KeepSpringIoCCoarseGrained
另一方面,Spring在JDBC这方面所提供的封装,其实蛮值得分开来看看的,可以省去不少的功夫。

6  : 我在配置了某个service中的方法为使用事务,然后又在另外的一个带事务的service中调用这个事务,这样就形成了事务的欠套,会不会有问题?

Spring支持多种事务设定,比如

PROPAGATION_REQUIRED
PROPAGATION_SUPPORTS
PROPAGATION_MANDATORY

之类的,可以根据实际情况加以调整。
 
7  : spring里面的接口编程有哪些好处,如果用类来写实现service,dao层 同样可以实现注入啊 为什么要接口呢,有的资料说可以重用代码,但是一般service,dao的接口就只被一个类实现.何来重用呢 ?  

这个...就跟电脑上的USB接口一样,一般只会插鼠标,如果什么时候需要插U盘了,那也可以。
Spring提供了这种实现的基础,至于重用性本身是否存在,那可能就需要进行项目前的调研了。
比如做一个只用一次的投票表单,那么不如一个JSP搞定来得干净利落,这里重用性并不重要。
 

8  : 在当今的MVC framework里,似乎Webwork2逐渐成为主流, Webwork2 + SpringFramework 的组合变得越来越流行。这似乎意味着Spring自带的MVC framework远比Webwork2差,所以大家纷纷用Webwork2来代替。确 实,Spring的MVC framework不算是整个Spring的核心部件,但它的威力却超过了很多人的想象。很多人包括xiecc认为 Spring的MVC framework是非常优秀的,甚至比Webwork2更优秀。两位老师是如何看待的呢 ?  

夏昕 :
 Spring MVC我觉得是以干练取胜,可以以极致简炼的办法实现Control逻辑。喜欢简洁的人会非常喜欢Spring MVC的实现方式。 但是在某些方面还是有点缺陷,比如wizard的backspace问题,一直没能很好解决,另外,跟Spring webflow的配合,在实际应用过程中,也总是比较尴尬。 我们公司目前选择的是webwork+Spring+hibernate的组合。

林信良 :
就我个人而言,使用Spring MVC最大的好处,是可以直接整合并善用其IoC容器功能,Spring MVC与Struts的设计其实是蛮像的,其它的部份,我并不觉得Spring MVC有什麽特别突出之处。

9  : 是否可以通俗的解释一下“依赖注入”,谁依赖谁了

依 赖注入,当您在A物件内部需要B物件的某个功能,A就依赖于B,您可以直接在A内部直接实例化B,但日后要修改就麻烦些,如果您可以透过IoC,而不是直 接在A内部实例化B,而是将一个B实例从外部设定给A,那就比较有弹性。 举个通俗例子,CPU如果固定在mainboard上,那mainboard就依赖于CPU,保留CPU的插槽规格,让CPU可以自由更换,就有点IoC 的味道了。

10  : 现在,基于spring框架开发的应用中,有没有大型应用的成功案例,比如说ERP方面的?

一般能用EJB实现的,用Spring实现肯定没有问题 , 可能更多时候,大型系统发生问题大多集中在数据库访问层,Hibernate在这里是有所欠缺的。

11 : 尽管 Java™ 编程语言功能强大,但对于轻量级开发,它有着严重的局限性。对于某些问题,其他的编程语言(比如 Ruby)也许会改善生产效率!那是不上意味那是不是意味着将来ruby会成为主流?

Ruby 是小语系,我觉得很类似java之前的SmallTalk。 对于轻量级开发,如目前典型的Web2.0网站,我觉得比较不错,短平快。 不过感觉普及性和成属性上还有待提高,很简单的来讲,我很难从人才市场上找到熟练使用ROR的程序员。 另一方面,对于复杂的企业级应用,Ruby 还欠缺很多,很简单的例子,如果要用到密钥算法,ruby本身就无法处理,只能借助一些第三方类库,这里就存在很多兼容性的问题。 我觉得可见的未来,主要的战场还在微软的.net平台,以及IBM,SUN的Java平台上展开。 ROR如果能顺利发展,有可能会顶替PHP的位置,不过也只是可能。


12 : 问一个新一点的问题,ruby on rails出现后,spring是否能够适应现在互联网敏捷开发的要求?

可 能这不仅仅是Spring的问题。而是Java WEB开发与ROR开发之争了。目前来看,Spring还谈不上是一个WEB的RAD框架,它本身还是定位于一个微内核容器,希望会有相关的子项目出现。 对于java web开发中的RAD感兴趣的,可以去看看RIFE,可以说是ROR的Java实现,这其实很早就出现了。 

13 : 本次主题是关于Spring和轻量级,轻量级和重量级的概念如何划分? Spring 对JTA,EJBSB,JMS,WebService也都 支持都也封装的很好。

现 在轻量级和重量级的确很难区分了,标准越来越多,也越来越难以衡量。 之前有人说,有classloader的算是重量级,也有人说,超过3MB的算是重量级。 真的很难说了。 EJB有轻量化的倾向,Spring也有重量化的趋势。 简单说吧,Spring core算是轻量级,但是加上其余的,估计就得列入重量级的范畴了。

14 :  acegi 作为spring的一个子工程,它的使用难度是不是很高? 

如果按照acegi的标准设定来使用的话,估计会折磨死一票大仙。不过,具体应用中,我们可以对权限系统本身进行简化,只使用acegi的核心功能。 这样使用起来还是相对简单的。

15  : 新的aspectj属性的引入是不是让spring2 aop开发的门槛提高了? 

应该是多了一些选择,入门的门槛实际上我个人觉得跟原来差不了太多。

16  : 夏老师,spring中提供的功能组件您最欣赏的是哪些?比如对orm的封装或者任务调度,MVC之类的 

最欣赏的就是对JDBC以及各ORM的封装。 实际上,目前工作中,除了必不可少的BeanFactory,ORM层也是不可或缺。 其余的部分,倒是会根据情况进行替代。 

17 : Spring中动态实现AOP,到底怎么动态法呢?具体意义是什么呢?

一个例子就是动态代理,我只要知道代理的interface,具体要代理的对象不用理会,随时可以为指定的对象进行代理,只要它有实作该interface。

18  :Sping 的 MVC 和 Struts 在运用方面各有什么特点 

Struts的特点是成熟,已经是Model2的代表了,可用的元件多,Tag丰富,而Spring的View层可以适当的抽换,使用JSTL,可以整合其IoC功能等,是其特点。
 
19  :依赖注入,B实例是如何从外部设定给A的 

可以透过Setter或Constructor设定给A。

20  :Spring是怎么处理分布式的应用的呢?

Spring本身并不支持分布式。 其实分布式本身也未必需要应用 层的容器来支持,我觉得,某些情况下,比如牵涉到数据库分布式操作的情况下,利用数据库本身的机制实现分布式操作可能更好。 
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值