spring FAQ

转载 2007年09月11日 18:34:00
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本身并不支持分布式。 其实分布式本身也未必需要应用层的容器来支持,我觉得,某些情况下,比如牵涉到数据库分布式操作的情况下,利用数据库本身的机制实现分布式操作可能更好。 

FAQ = Fuck you?

剛才在看Denyhosts的FAQ的時候忽然想到FAQ的讀音跟fuck you似乎是一樣的?證明發下∵    F:[f]       A:[ʌ]       Q:[kju:]∴    FAQ=[fʌk...
  • hodrag
  • hodrag
  • 2009年04月22日 08:24
  • 2187

数据库学习FAQ

数据库学习FAQ 简述数据、数据库、数据库管理系统、数据库系统的含义及其联系?数据:数据是信息的符号记录。数据是数据库处理和研究的对象 数据库:长期存储在计算机内,有组织、可共享的数据集合。数据按一定...
  • pupilxmk
  • pupilxmk
  • 2016年05月25日 08:59
  • 488

运维路上的FAQ

遇到的看见的,长期更新~~~ 1.linux乱码问题     [root@vps software]# vi  /etc/sysconfig/i18n     LANG='zh_...
  • u010718976
  • u010718976
  • 2017年01月10日 11:00
  • 206

TCP FAQ

什么是MSS(Maximum Segment Size)? TCP用MSS选项允许接收方指定它可以接收的最大段长度。传输的双方通过这个选项协 商出一个上方都接受的最大段长。这个值太大或太小都不好。太...
  • dolphin98629
  • dolphin98629
  • 2014年05月26日 15:42
  • 383

FAQ手册

1、怎么样查询特殊字符,如通配符%与_ select * from table where name like 'A\_%' escape '\' 2、如何插入单引号到数据库表中 [A]可以用A...
  • haoxiaoyan
  • haoxiaoyan
  • 2013年11月25日 16:33
  • 955

什么是FAQ,它有何作用

FAQ就是Frequently Asked Questions(常见问题), 由于这些问题出现的比较普遍,一般都推荐用户先看看FAQ, 看自己的问题是否符合FAQ中的情况,如果符合的话FAQ中 ...
  • q1054261752
  • q1054261752
  • 2015年12月25日 16:45
  • 357

discuz (dzx) FAQ帮助页面 图文并茂版

使 discuz (dzx) FAQ帮助页面 图文并茂版
  • zhangxueleishamo
  • zhangxueleishamo
  • 2017年06月19日 16:05
  • 143

开源FAQ系统:KnowledgebasePublisher

 文章来源于http://www.lupaworld.com  KnowledgebasePublisher是一个开源FAQ系统,也可做为一个用于发布文章的内容管理器。提供问题分类,术语表,强大的WY...
  • flying_hawk
  • flying_hawk
  • 2009年08月26日 20:29
  • 1320

新版FAQ的设计

准备不变的地方:1、仍然是已经解帖的帖子才可以整理FAQ;2、仍然是任何人都可以提交、整理FAQ。3、只有审核通过的FAQ,才可以阅读。4、未审核通过的FAQ,FAQ管理者和提交者可以对FAQ进行修改...
  • ghj1976
  • ghj1976
  • 2005年09月26日 16:53
  • 1936

FAQ整理(不断添加中)

FAQ1: VC7中,如何在非MFC中如何使用CString -- 包含头文件 atlstr.h 即可,需要用到ATLFAQ2: 检查某键是否被按下-- if( GetKeyState(VK_LSHI...
  • lbird
  • lbird
  • 2007年02月09日 12:04
  • 1198
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:spring FAQ
举报原因:
原因补充:

(最多只允许输入30个字)