Spring概述(一)

搞后端的都知道Spring是一个强大的工具,但是强大在什么地方?Spring是什么?为什么需要Spring?Spring能带来什么?让我们带着这些问题开始Spring之旅。

预备知识

在开始旅行之前,先看一下以后经常遇到的几个概念:

  1. 应用程序:能完成所有功能的成品,如:购物网站、OA系统
  2. 框架:能完成一些功能的半成品,是开发应用程序的基本框架,可以提供一些基本的功能,还规定了类和对象如何创建、如何协作,从而简化开发。
  3. 非浸入式设计:无需继承框架的类就是非浸入式设计,需要继承框架的类是浸入式设计。可以很明白看出如果企业换底层框架换的话,浸入式设计的代码都不可以继续使用了,但是非浸入式设计却不会受影响。
  4. 轻量级和重量级:轻量级一般是非浸入式的,依赖的东西很少,资源占用也很少,部署简单
  5. POJO:(Plain Old Java Object)简单的Java对象,可包含业务逻辑或持久化逻辑,但不担当任何特殊角色且不继承或不实现任何其它Java框架的类或接口
  6. 容器:容器顾名思义就是存放东西的东西,在程序设计也就是装对象的对象,对象存在放入,取出操作,所以容器也需要管理对象的生命周期
  7. 控制反转:Inverse of Control,缩写IoC,还有广为人知的名字叫依赖注入(Dependency Injection,DI),就是容器控制程序之间的关系,而不是传统实现,由程序代码直接操作
  8. Bean:一般指容器管理对象,在Spring中指Spring IoC容器管理对象

Spring是什么

Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。解决的就是对象之间的依赖关系,要形成低耦合,高内聚。框架的大概理解可以是造房子搭框架,以后你想要什么个性化的操作就在这个框架上开发,框架设定了大体不能那个违反,这样有利于后期其他人员的维护与二次开发。
Spring框架除了帮我们管理对象及其依赖关系,还提供像通用日志记录、性能统计、安全控制、异常处理等面向切面的能力,本身还提供了一套简单的JDBC访问实现,提供与第三方数据访问框架集成(如Hibernate、JPA、Mybatis),提供一套自己的web层框架Spring MVC、而且还能非常简单的与第三方web框架集成。
Spring是整个开发的核心,所有其他的框架都是与它组合,他才是老大,其他框架只有向他俯首称臣,Spring才会带他们一起玩耍。像现在主流的Struts+Spring+Herbert和SpringMVC+Spring+Mybatis都是Spring是核心。

为什么需要Spring

要想知道为什么需要Spring,知道Spring的好你不就爱上她了嘛!

  1. 非常轻量级的容器:以集中的,自动化的方式进行对象的创建于装配,管理对象的生命周期,能组合成复杂的应用程序。Spring容器是非侵入式的(不需要继承任何Spring的特定类),而且完全采用的是POJO开发,容易测试更容易管理。而且核心JAR包非常小,不需要依赖任何的应用服务器,可部署在任何环境下。
  2. AOP:Aspect Oriented Programming,面向切面编程。把可重用的功能提取出来,将这些功能在合适的时候植入程序中;比如安全,日志记录这些通用的功能提取出来,在程序执行的合适的地方植入并执行他们,从而完成需要的功能。面向切面提供了另一个角度来考虑程序结构以完善面向对象编程,即可在程序编译、装在、运行期间通过不修改源代码给程序动态加入功能的技术。
  3. 简单的数据库事务管理:管理数据库一直是一个令人头疼的事,Spring支持可插入式的事务管理,通过Spring事务管理可把我们从事务管理中解放出来专注业务逻辑
  4. JDBC抽象和ORM框架支持:Spring使JDBC更加容易使用,集成了第三方的ORM框架(Hibernate、Mybatis);完全支持Spring事务和使用Spring提供的异常体系
  5. Web层支持:Spring本身提供了强大的MVC框架(Spring MVC),而且可与第三方MVC框架集成(Struts);
  6. 简化各种技术集成:提供对Java Mail、任务调度、EJB、动态语言、远程访问、Web Service等的集成

明白Spring的这么多优点,我们也就知道为什么需要Spring。Spring可以看做是一个超级粘合平台,能把很多技术整合在一起,形成一个整体,是系统结构更优良,性能更出色,加速简化我们的程序开发。

Spring能带来什么

  1. 传统程序开发,创建对象及组装对象间的依赖关系是通过程序内部控制的,会增加对象间耦合,如果要修改对象间的依赖关系就要修改源代码,再编译,部署;采用Spring,由Spring的配置文件完成对象的创建和对象间的依赖关系,如需修改,只需修改配置文件,无需再编译;
  2. 项日志记录、权限控制、性能统计等这些操作,在传统程序开发中国很多是重复的,在Spring中可以利用面向切面编程,在有需要的地方动态加入这些功能,无需各个需要的方法和对象中,而且Spring是通过配置文件完成不需要再代码中添加额外的代码,现有代码专注业务逻辑。
  3. 在传统程序开发中,数据库事务管理有“获取连接,执行SQL,提交或回滚,关闭连接”,如使用Spring,只需获得连接,执行SQL,其他由Spring管理,Spring简化了数据库事务的管理
  4. Spring可与第三方数据访问框架集成(Hibernate,JPA),自己也提供了一套JDBC访问方式
  5. Spring可与第三方Web框架集成(Struts、JSF),自己也提供了一套Spring MVC框架
  6. Spring可与Java EE整合(Java Mail 任务调度等)与更多的技术整合(比如缓存框架)

如何学好Spring

通过前面的认识,已经知道了Spring是个什么玩意了,能为我们服务什么,再通过做一个小demo,就大概知道怎么使用Spring了。Spring的核心是IoC,所以要学好Spring,一定把IoC容器给它整明白了(同样带这是什么,为什么,怎么用的疑问来学习);理解好了IoC,另一个重头就是AOP,也就是面向切面编程了,也要给它整明白了(同样是带这是什么,为什么,怎么用的疑问来学习)。将这两大哥给理解透彻了以后,剩余小弟(知识)都是围着大哥转的,学习起来就会轻松了。学习Spring得慢工出细活,把基础给打牢了。

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 213,992评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,212评论 3 388
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 159,535评论 0 349
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,197评论 1 287
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,310评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,383评论 1 292
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,409评论 3 412
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,191评论 0 269
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,621评论 1 306
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,910评论 2 328
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,084评论 1 342
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,763评论 4 337
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,403评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,083评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,318评论 1 267
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,946评论 2 365
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,967评论 2 351

推荐阅读更多精彩内容