Spring使用中需要注意的地方

原创 2006年06月19日 09:41:00

最近再一次阅读了一些Spring的资料,对Spring有了一些新的认识。回想自己曾经写过的一些Spring相关的程序片断偶有所得,于是记下了一些心得。

 

使用Spring时注意得几点:

 

第一,   不要迷信

Spring项目的创始人(我们伟大的……你打我干什么?不打你才怪,不是说不能迷信吗?)也认为设计的优秀要远远重要于使用的技术。所以不要认为选择了Spring就能够保证我们的系统拥有金刚不坏体。可是国内却往往把使用了某某先进技术作为招牌来用,我从来不认为使用了好的技术的项目本身就一定会是成功的。

第二,   因题施法

对于具体的情况使用不同的解决办法。Spring对于一个从无到有的项目来说绝对是一个不错的选择,但是对于一个已经存在了数据结构或者陈旧代码的项目来说中途把它加进来能够起到的作用有限。

往往与Spring同时使用的还有HibernateStruts这两个家伙。Struts暂且不提,毕竟人家fans多,我怕死。Hibernate这个东西也是被很多人捧的上天的家伙,可是这个玩意不是万能的。Hibernate近乎完美的封装了底层数据同步的操作,在开发上可以为我们节省太多的时间。但是完美本身就是缺点,Hibernate完美是有代价的,它为了完美付出的最大代价就是“性能”。不信的Hibernate拥护者可以自己作个测试看看,它封装之后的操作要比JDBC编程方式下慢多少倍。封装完美就无法对于SQL语句优化,如果你的数据库是一个已有的,那么使用Hibernate只会给你带来无穷无尽的麻烦。

所以使用之前考虑好你的系统的复杂程度,如果你的系统十分简单,没有那么多相互依赖的bean的话,我们无须使用Spring

第三,   尽量使用set方法的注入模式

我见过很多的Spring相关的代码,发祥对于BeanFactory的使用方式基本分为两种,一种是获取了BeanFactory实例然后生成需要的bean;另外一种是使用set方法的注入实现。

我奇怪的发现很多人喜欢获得BeanFactory实例然后再生成需要的实例,我觉得这样做已经违背了Spring的使用原则——尽量减少模块之间的依赖关系。因此我觉得使用set方法的注入模式才是正确的选择,至少这样的代码看起来要更加优雅。

第四,   慎重的选择SpringMVC作为表现层

Spring是个好东西,但是并不代表它全部适合你。至少我觉得SpringMVC就不适合绝大多数情况,SpringMVC十分优雅,但是它的优雅有些过分了。就像一个过分注重理论并且有着极高的学术地位的专家,这样的专家并不一定会是一个能够创造出很多价值的程序高手。

SpringMVC的学习代价高,使用起来虽然功能强大,但是却无法熟练的应用。所以我一般不会选择使用这样一个过分注重设计的东西,设计要适当不要过渡。

关于重载的概念和使用时的注意事项

本文对重载的概念和一些基本的常见用法作了一些归纳,供读者参阅。
  • qq_38234015
  • qq_38234015
  • 2017年04月24日 11:43
  • 420

MyBatis(使用注意事项)

一、Mybatis中的 #{} 和 ${} 的区别? # 将传入的数据都当成一个字符串,会对自动传入的数据加一个双引号。如:order by #user_id#,如果传入的值是111,那么解析成sq...
  • qq_16559905
  • qq_16559905
  • 2016年04月15日 18:52
  • 1123

socket通信需要注意的地方

 socket通信需要注意的地方
  • u013714419
  • u013714419
  • 2014年06月10日 10:54
  • 1180

struts2标签使用需注意的几个地方

struts2标签使用需注意的几个地方 1.在jsp页面上直接使用struts2的s标签,要求必须经过FileterDispatcher过滤,否则总会报错  org.apache.jasp...
  • gaoqiao1988
  • gaoqiao1988
  • 2014年09月03日 16:32
  • 517

注意<c:forEach>的用法

中判断的问题。 属性var定义的是迭代参数的名称,然后begin定义从这个值开始迭代,然后在end结束。我以为这样循环就很好解决了,因为我做的是个分页,那肯定是有12345各个页面的。这样用就可以解...
  • sunhuwh
  • sunhuwh
  • 2013年04月14日 22:21
  • 1827

C语言需要注意的地方

今天看了一本C陷阱与指针的书,从中挑选了一些我自己平常不太注意的地方,或者有些是记不太清的东西,稍微整理了下有以下这些地方: 1:=与==是不同的,一个是赋值,一个是比较 2:&与&&是不同的,前...
  • chuhang_zhqr
  • chuhang_zhqr
  • 2016年01月27日 23:10
  • 494

Java集合需要注意的地方

(一) 1.集合大致分为四类:Set List Queue Map 2.集合类也被称为容器类 3.区别于数组,集合类只能保存对象(对象的引用值) 4.java集合类主要由俩个接口派生:Collecti...
  • BoLann
  • BoLann
  • 2016年03月14日 20:27
  • 755

jquery的ajax使用注意事项

我们在使用jquery的ajax方法的时候,有shi'h
  • yukunjiename
  • yukunjiename
  • 2014年04月24日 09:36
  • 438

Code Review的一些注意事项(英文版)

当你进行Code Review的时候,你能很快发现问题吗?你能保证不遗留问题吗?下面是个Check List, 在Code Review结束后看一遍,查漏补缺,有助于吹毛求疵。以前在外企写的,懒得翻译...
  • ffmpeg4976
  • ffmpeg4976
  • 2015年01月02日 12:02
  • 293

有些需要注意的地方

1. CRichEditCtrl使用前如果未被初始化,错误信息会比较隐蔽,所以使用前应记得初始化AfxInitRichEdit();2. vs可视化界面产生的控件,比如按钮,如果绑定了控件变量,就不能...
  • darkduck9989
  • darkduck9989
  • 2007年10月22日 11:34
  • 617
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Spring使用中需要注意的地方
举报原因:
原因补充:

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