扫一扫
分享文章到微信
扫一扫
关注官方公众号
至顶头条
【译者按】这几天,TSS上的一篇热文,讨论者众多,特翻译,水平有限,望多指正。
原文地址:》》点击进入
我不愿使用Spring有几个理由:
1. Spring的配置臃肿
我的项目组在开发一个企业级应用时,使用了依赖注入框架。这个项目中,有1500多个类,并且分散在超过11个的模块里。
以我在实际开发中的经验,我们创建出的service对象应该少于依赖他们的其他对象。如果我们使用了Spring框架,当我们创建需要依赖100个service对象的1000个action对象时,这就意味者我们要对这1000个bean做配置工作。
如果action的数量还在不断增加,这项工作将变得更加糟糕。我们试图重构一些东西、而又不愿破坏已有的代码,就必须加倍小心。
你或许想到了通过类型(byType)来自动绑定,哦?这或许不是一个坏主意。可是,为什么不通过名称(byName)来自动绑定呢?可是如果我们对不同的对象做配置就有不同的名称,这听上去很容易让人糊涂,那样的话,我猜你又得在办公室里度过漫漫长夜了。
2. XML文件配置痛苦
XML配置痛苦,这个痛苦不是说编写它有多复杂,更多是指其维护性。
如果你有1000个action,你需要对在配置中放置什么和如何放置很清楚,你需要有只鹰般锐利的眼睛,你必须不能忘记在改动XML配置时使用工具来查找和替换,否则,这个应用程序会在产品化的时候崩溃。
3. 如果使用XML配置,你将弱化Java强类型检查
当你开始使用XML配置的时候,你将弱化Java的强大。
当你幸运地发现注入到bean里的这个对象不是这个bean所需要的,但你必须等待下去直到Spring容器开始启动并且检查依赖关系。在这个时候,你该意识到你犯了个愚蠢的错误。哎!
一些配置不使用XML,而使用Java类,在Guice里,你可以使用module.如果我们想要灵活性,我们仍然可以通过分离业务逻辑包到另外的包中来达到这点,并且在核心包中,你只需使用Class.forname(“the module class”)。这就是全部所在!
4. Spring不是轻量级的容器
不幸地是,Spring不再是轻量级容器。现在,Spring的性能不再是最快的了,已经有很多性能更好的轻量级容器出现了。
5. Spring是一个希望我们构建松耦合程序的容器
Spring是一个只是希望我们使用松耦合技术的容器,Spring没有真正地更多关注紧耦合。我非常确定,一旦我们使用除了spring-core.jar的Spring包,这将意味着我们的程序不能离开Spring存活。
戚祥
2007-07-06
濠电姷顣介埀顒€鍟块埀顒€缍婇幃妯诲緞閹邦剛鐣洪梺闈浥堥弲婊勬叏濠婂牊鍋ㄦい鏍ㄧ〒閹藉啴鏌熼悜鈺傛珚鐎规洘宀稿畷鍫曞煛閸屾粍娈搁梻浣筋嚃閸ㄤ即宕㈤弽顐ュС闁挎稑瀚崰鍡樸亜閵堝懎濮┑鈽嗗亝濠㈡ê螞濡ゅ懏鍋傛繛鍡樻尭鐎氬鏌嶈閸撶喎顕i渚婄矗濞撴埃鍋撻柣娑欐崌閺屾稑鈹戦崨顕呮▊缂備焦顨呴惌鍌炵嵁鎼淬劌鐒垫い鎺戝鐎氬銇勯弽銊ф噥缂佽妫濋弻鐔碱敇瑜嶉悘鑼磼鏉堛劎绠為柡灞芥喘閺佹劙宕熼鐘虫緰闂佽崵濮抽梽宥夊垂閽樺)锝夊礋椤栨稑娈滈梺纭呮硾椤洟鍩€椤掆偓閿曪妇妲愰弮鍫濈闁绘劕寮Δ鍛厸闁割偒鍋勯悘锕傛煕鐎n偆澧紒鍌涘笧閹瑰嫰鎼圭憴鍕靛晥闂備礁鎼€氱兘宕归柆宥呯;鐎广儱顦伴崕宥夋煕閺囥劌澧ù鐘趁湁闁挎繂妫楅埢鏇㈡煃瑜滈崜姘跺蓟閵娧勵偨闁绘劕顕埢鏇㈡倵閿濆倹娅囨い蹇涗憾閺屾洟宕遍鐔奉伓
现场直击|2021世界人工智能大会
直击5G创新地带,就在2021MWC上海
5G已至 转型当时——服务提供商如何把握转型的绝佳时机
寻找自己的Flag
华为开发者大会2020(Cloud)- 科技行者