求十里春风by舒仔微盘txt的百度云资源啊谢谢

匿名用户不能发表回复!|
每天回帖即可获得10分可用分!小技巧:
你还可以输入10000个字符
(Ctrl+Enter)
请遵守CSDN,不得违反国家法律法规。
转载文章请注明出自“CSDN(www.csdn.net)”。如是商业用途请联系原作者。跟我一起学Spring 3(1)–为什么要学Spring - ImportNew
| 标签: , , ,
为什么要学Spring?
先来看张图,它记录的是Web框架的发展史。
图片一 Web框架的发展史
还有更多你可能听都没听说的Web框架,详细的框架列表请参见。我想你已经眼花缭乱了,从这么多框架中,如何才能挑选出你心仪的框架呢?
主流的几种运行在JVM上的全栈式Web框架(Full Stack Web Framework)有,,,,等等,它们各自有各自的优缺点。(所谓Full Stack Web框架,是指所有的层无缝衔接,你可以做到Don’t Repeat Yourself(DRY),自上而下的使用一种语言。)
对我们而言,永远没有“最好”的框架,只有最适合自己需求的框架。在考虑一个框架时,你需要考虑的问题通常有这么几个:
我使用的语言和平台支持这个框架吗?
这个框架和其他我正在使用的框架的兼容性怎么样?
学习这个框架的学习曲线是否太陡?
它的开发效率如何?
安全性如何?
方便进行单元测试吗?
这个框架的文档支持怎么样?社区够活跃吗?
对于笔者而言,学习曲线和开发效率是非常重要的,考虑到Spring完全使用Java语言,不需要再学习新的语言,另外Spring同其他框架的兼容性、可扩展性都非常好,更重要的是强大的文档支持和活跃的社区,让我选择Spring作为开发应用的主要框架。Spring未必是性能最卓越的,它的。但确实能满足我的大部分需求,越深入的学习越是能体会到它的强大,它能帮助我开发出稳定、安全而又简洁易维护的软件出来,所以也便有了这个系列教程。
下面列出Spring的优点:
轻量级:相较于EJB容器,Spring采用的IoC容器非常的轻量级,基础版本的Spring框架大约只有2MB。Spring可以让开发者们仅仅使用(Plain Old Java Object,相对于EJB)就能够开发出企业级的应用。这样做的好处是,你不需要使用臃肿庞大的 EJB容器(应用服务器),你只需要轻量的servlet容器(如Tomcat)。尤其在一些开发当中,很稀缺内存和CPU资源时,采用Spring比EJB无论是开发还是部署应用都更节约资源。
控制反转(IOC):Spring使用控制反转技术实现了松耦合。依赖被注入到对象,而不是创建或寻找依赖对象。
面向切面编程(AOP): Spring支持面向切面编程,同时把应用的业务逻辑与系统的服务分离开来。
MVC框架:Spring MVC是一个非常好的MVC框架,可以替换其他web框架诸如Struts。
集成性:Spring非常容易和其他的流行框架一起集成开发,这些框架包括:ORM框架,logging框架,JEE, Quartz,以及Struts等表现层框架。
事务管理:Spring强大的事务管理功能,能够处理本地事务(一个数据库)或是全局事务(多个数据,采用JTA)。
模块分离:Spring框架是由模块构成的。虽然已经有太多的包和类了,但它们都按照模块分好类了,你只需要考虑你会用到的模块,而不用理其他的模块。
异常处理:由于Java的JDBC,Hibernate等API中有很多方法抛出的是checked exception,而很多开发者并不能很好的处理异常。Spring提供了统一的API将这些checked exception的异常转换成Spring的unchecked exception。
单元测试:Spring写出来的代码非常容易做单元测试,可以采用依赖注射(Dependency Injection)将测试的数据注射到程序中。
不得不提到,如果你要开发一个大型的Web系统,MVC框架必不可少。Spring MVC作为其中的佼佼者,被大多数系统作为MVC框架,使用它的开发者也是最多的,其搜索热度一直居高不下。此外你也能得到更多的工作机会呢!
图片二 统计的工作中需求的框架热度排名
图片三 Google上的搜索频率排名
图片四 Indeed上工作热度排名
还犹豫什么,跟我一起来学Spring吧!
关于本教程的内容安排
本教程先从Spring的核心部分开始,之后将会陆续介绍Spring MVC,Spring Security等主要模块。将用代码示例配以操作截图,来详解主要知识点,所以非常适合初学者。每一课的学习课后都留有习题供读者思考,这些习题相当多的是面试当中经常会出现的面试题,并且将在下一课中会给出习题的答案,所以本教程针对面试也相当有用。由于笔者的水平有限,错误之处还请大家指出,欢迎大家留言,大家共同学习进步。
你使用过Spring吗?你用过它的哪些模块和功能?(如果你使用过Spring MVC,请移步下一题。)
除了Spring MVC,你还知道哪些MVC框架吗?你用过哪些MVC框架?你能比较下它们之间的优缺点吗?
这是开放式问题,欢迎大家畅所欲言。
关于作者:
一名在路上的程旭媛
这篇文章希望不要对新手产生误导,作者只是讲java中“没有可以让产生感觉存在值类型”的特性,但不代表...
关于ImportNew
ImportNew 专注于 Java 技术分享。于日 11:11正式上线。是的,这是一个很特别的时刻 :)
ImportNew 由两个 Java 关键字 import 和 new 组成,意指:Java 开发者学习新知识的网站。 import 可认为是学习和吸收, new 则可认为是新知识、新技术圈子和新朋友……
新浪微博:
推荐微信号
反馈建议:@
广告与商务合作QQ:
– 好的话题、有启发的回复、值得信赖的圈子
– 写了文章?看干货?去头条!
– 为IT单身男女服务的征婚传播平台
– 优秀的工具资源导航
– 活跃 & 专业的翻译小组
– 国内外的精选博客文章
– UI,网页,交互和用户体验
– JavaScript, HTML5, CSS
– 专注Android技术分享
– 专注iOS技术分享
– 专注Java技术分享
– 专注Python技术分享
& 2017 ImportNew966,690 六月 独立访问用户
语言 & 开发
架构 & 设计
文化 & 方法
您目前处于:
我为何停止使用Spring
我为何停止使用Spring
日. 估计阅读时间:
不到一分钟
智能化运维、Serverless、DevOps......2017年有哪些最新运维技术趋势?!
Author Contacted
相关厂商内容
相关赞助商
CNUTCon全球运维技术大会,9月10日-9月11日,上海&光大会展中心大酒店,
告诉我们您的想法
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
spring更好一点
Re: 张老师做翻译了吧..
为什么不用OSGi或者OSGi.NET呢?
Re: spring更好一点
spring开发模块化
Re: spring开发模块化
是否可以选择Guice?
Spring还是很不错的
Spring还是很不错的
Spring还是很不错的
Spring还是很不错的
Spring还是很不错的
Spring还是很不错的
Spring还是很不错的
Re: Spring还是很不错的
整个Web应用需要的东西
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
允许的HTML标签: a,b,br,blockquote,i,li,pre,u,ul,p
当有人回复此评论时请E-mail通知我
赞助商链接
架构 & 设计
文化 & 方法
<及所有内容,版权所有 &#169;
C4Media Inc.
服务器由 提供, 我们最信赖的ISP伙伴。
北京创新网媒广告有限公司
京ICP备号-7
找回密码....
InfoQ账号使用的E-mail
关注你最喜爱的话题和作者
快速浏览网站内你所感兴趣话题的精选内容。
内容自由定制
选择想要阅读的主题和喜爱的作者定制自己的新闻源。
设置通知机制以获取内容更新对您而言是否重要
注意:如果要修改您的邮箱,我们将会发送确认邮件到您原来的邮箱。
使用现有的公司名称
修改公司名称为:
公司性质:
使用现有的公司性质
修改公司性质为:
使用现有的公司规模
修改公司规模为:
使用现在的国家
使用现在的省份
Subscribe to our newsletter?
Subscribe to our industry email notices?
我们发现您在使用ad blocker。
我们理解您使用ad blocker的初衷,但为了保证InfoQ能够继续以免费方式为您服务,我们需要您的支持。InfoQ绝不会在未经您许可的情况下将您的数据提供给第三方。我们仅将其用于向读者发送相关广告内容。请您将InfoQ添加至白名单,感谢您的理解与支持。赞助商链接
这是来自 JOHANNES BRODWALL 的一篇博文,他曾经在Dzone上发表一文引发了争论,在这篇博文中他正式声明停止使用Spring。下面是原文大意翻译:我对Spring和依赖注入框架的意见引起争论,我是挪威Spring最早的使用者之一,我们开发一个庞大系统,我们最终不得不考虑一些事情,如XML配置的重用机制,Spring的@Autowire和组件扫描功能帮我们解决这个问题,但是作为回报,降低了我们质疑整个源码的能力,将我们开发人员隔离在一个个小小的孤岛上,这些框架往往以复杂性为文化,工具 文档和其他不必要的层等待。后来我尝试不使用依赖注入框架来构建应用程序,让我决定什么使用new,什么时候有一个setter或构造器参数,什么类型能被作为依赖,哪个类型创建会与底层耦合。我发现了一些DI容器能改进设计的好处,同时,我去除了容器,我的解决方案代码变得越小了,易于浏览和理解,容易测试,我陷入了两难底部。我发现,使用容器的成本非常高,它提高了复杂性和规模,降低了凝聚,对于我来说,小的系统价值远远大于创建一个松耦合后又松耦合的系统。凝聚性和松耦合是对立,模块A重用模板B,模块A和B耦合了,B的变化会影响A,因此,重用和松耦合是对立,这时我偏重松耦合。当有冲突时,我将连贯性凝聚性看高于松耦合,而松耦合高于重用。Spring文化好像与这个正好相反(凝聚性最差)。
个人顶这位架构师。spring的标签让我很不习惯,代码零散,看起来难受,东跳西跳的看代码。注入比标签好点。我不能控制代码,而是交给别人去控制,让我很不放心(我不是有强烈的控制欲吧?)。大家都叫高内聚松耦合,为啥不叫全内聚零耦合,有些事情过犹不及。[该贴被masterice于 09:41修改过]
masterice"的内容高内聚松耦合,为啥不叫全内聚零耦合 ... 我也基本同意:凝聚&松耦合&重用。以前为了重用而重用,导致紧耦合,后来为了松耦合而松耦合,导致一地鸡毛,其实如果抓住内聚这个核心,纲举目张,其他两个问题就解决。打个比喻,为松耦合而松耦合,类似我们拿了一把刀,把系统像切黄瓜一样切,切得很薄,这是为了切而切,没有尊重被切物自身规律。想象一下,如果是水,你怎么用刀切呢?而这时,通过增强事物内部凝聚力,将水放到冰格中冰冻,这将会增强水分子之间引力也就是凝聚力,水自然变成一个个碎冰块,也就是松耦合了。顺其自然,巧妙利用自然之道才能与事物和谐相处,而不是任由强大的内心粗暴迸发,从而对事物形成冲击力后任加蹂躏。
不太明白你们说的这部分内容,但很好奇,想求老大进一步用代码的方式来阐述一下这个问题,最好是一个简单易懂的示例,谢谢![该贴被sinaID9-12-16 17:01修改过]
sinaID99267"的内容想求老大进一步用代码的方式来阐述一下这个问题,最好是一个简单易懂的示例,谢谢! ... 这个问题其实是SOA架构本身的问题,因为Spring是SOA架构中的一个实现,所以也带有这个问题。SOA架构的问题来自于其面向服务自身,用服务来对业务切分,这样,可能破坏业务自身的聚合性。也就是说,业务逻辑会散落在多个服务之中,想修改代码,要修改多个服务。服务的抽象主要是从重用角度抽象的,如有很多客户都要下订单,那么我们就抽象一个订单服务提供给这些客户;然后又有很多客户要签合同,那么我们就抽象一个合同服务于这些客户;这些服务都是从对外接口的角度粗粒度设计,或者只是纯粹从业务流程来考虑的,并没有从业务内部领域逻辑角度考虑,有人说,这两者不是一样吗?有时一样,有时不一样。比如某个单位无论给订单客户还是合同客户,都有一个统一的最低底线价格,按照面向服务的设计,这个底线价格会各自写到订单服务和合同服务中。有人说,那订单服务与合同服务共同重用一个实体名叫价格策略。这种重用其实引发了依赖,紧耦合,破坏了松耦合。比如订单服务代码:public class OrderService{
public int getPrice(PricePlocy pricePlocy){
}}合同服务:public class ContractService{
public int getPrice(PricePlocy pricePlocy){
}}这两个服务都依赖PricePlocy,就算PricePlocy是个接口,如果接口发生变化,这两个服务的代码就发生变化。那么有人说,将PricePlocy独立出来成为一个PricePlocyService,三个服务通过ESB消息总线交互。那这样服务的粒度就太细了,如果再发生PricePlocy2,难道你再搞个PricePlocy2Service吗?这里就发生了重用与松耦合矛盾的情况,重用的角度是从为客户服务这个外部因素考虑的,而不是从业务内部去发现领域规律。如果从内部去考虑,发现内部聚合,自然外界接口就松耦合,比如订单服务和合同服务,背后有一个价格制定策略,这个是核心,是DNA,我们可能将定价算法作为一个聚合根,订单和合同只是定价这个实体的外部两个服务接口而已。面向服务和面向领域的区别就是一个从外部考虑,一个从内部考虑,考虑方向完全不同。两者可以互补。如果片面从外部考虑,导致各个服务对领域的强行肢解,流程变动方便了,但是业务逻辑的一贯性凝聚性被破坏了。
赞助商链接
赞助商链接
最佳分辨率
OpenSource
Code & 2002-20

我要回帖

更多关于 耽美十里春风by舒仔 的文章

 

随机推荐