Spring总结

Spring的概念

Spring是个java企业级应用的开源开发框架,旨在降低应用程序开发的复杂度。是一个轻量级,松散耦合的,具有分层体系结构,可继承其他框架的框架。

Spring的优点

轻量:基本的版本大约2MB。
控制反转(IOC):实现了松散耦合,将对象交给容器管理,对象们给出它们的依赖,由容器去创建或查找(简述:反转:指的是资源的反转,之前是对象去容器请求,控制反转后,是容器向调用者注入)。
在系统运行时,容器创建被调用者,然后注入调用者中,这种情况叫做依赖注入(DI),依赖注入是通过java的反射机制实现的。
反射:允许程序在运行的时候动态地生成对象,执行对象,设置对象属性。
面向切面(AOP)
面向切面编程把软件系统分为两个部分:核心关注点横切关注点,将业务程序和系统服务分开;
面向切面编程是基于代理模式实现的;
代理模式分为:
静态代理:编译时
动态代理:运行时
动态代理实现的两种方式:JDK代理和CGlib代理
JDK基于接口的动态代理
CGilb实现子类的动态代理

容器:Spring包含并管理对象的生命周期和配置:
MVC框架:Spring的WEB框架
事务管理:Spring提供了一个持续的事务管理接口,可以扩展上至本地事务下至全局事务(JTA)
异常处理:把具体技术相关的异常转化为一致的unchecked异常

解释JDBC抽象和DAO模块

保证数据库代码的简洁,并能避免数据库资源错误关闭导致的问题,在各种不同的数据库的错误信息之上,提供了一个统一的异常访问层,提供事务管理服务。

BeanFactory和Application contexts区别?

Application contexts 提供了一个方法处理文本信息,一个通常的做法是加载文本资源(比如镜像),可以向注册为监听器的bean发布事件。
在容器或容器内的对象,由BeanFactory以程序化方式处理操作,也可以在Application contexts中以声明的方式处理。

依赖注入的方式:

1.构造器依赖注入:构造器依赖注入通过容器触发一个类的构造器来实现的,该类有一系列参数,每个参数爱表一个对其他类的依赖。
2.Setter方式注入:Setter方法注入是容器通过调用无参构造器或者无参static工厂方法实例化bean之后,调用该bean的setter犯法。即实现了基于setter的依赖注入。

用构造器参数实现强制依赖,setter方法实现可选依赖。

Spring Bean的定义包含什么?

容器必知的所有配置化元数据,包含如何创建一个bean,它恶生命周期详情及它的依赖。

配置元数据的方法:

1.XML配置文件。
2.基于注解的配置。
3.基于java的配置。

定义类的作用域

bean定义中的scope,默认singleton(单例)

spring支持bean的作用域:

1.singleton:bean在每一个spring ioc容器中只有一个实例。
2.prototype:一个bean可以有多个实例。
3.request:每次http请求就回创建一个bean,仅基于web的ApplicationContext情形下有效。
4.session:在一个http session中,一个bean定义对应一个实例。同3条件。
5.global-session:在一个全局的http session中,一个bean定义对应一个实例,同3,4的条件下。

spring的bean是非线程安全的

重要的bean生命周期方法:setup,容器加载bean的时候被调用;teardown,容器卸载类的时候被调用。

bean的装配:

容器必须知道bean的依赖关系,以及如何依赖注入来把它们组装在一起。

自动装配的方式:

1.no:默认不进行自动装配,通过显示设置ref属性来进行装配
2.byName:通过参数名自动装配,antowire属性被设置成byname,容器试图匹配,装配和该bean具有相同名字的bean。
3.byType:通过参数类型自动装配,autowire属性设置为bytype,具有同类型的bean。多个bean符合将抛出异常。
4.constructor:这个方式类似于byType, 但是要提供给构造器参数,如果没有确定的带参数的构造器参数类型,将会抛出异常。
5.autodetect:首先尝试使用constructor来自动装配,如果无法工作,则使用byType方式。

Spring支持的事务管理类型

Spring支持两种类型的事务管理:
编程式事务管理:这意味你通过编程的方式管理事务,给你带来极大的灵活性,但是难维护。
明式事务管理:这意味着你可以将业务代码和事务管理分离,你只需用注解和XML配置来管理事务。

总结:Spring 主要是实现了IOC和AOP

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

推荐阅读更多精彩内容

  • Spring框架的好处 轻量:基本的版本大约是2M IOC(控制反转):Spring通过控制反转实现了松散耦合,对...
    whupenger阅读 269评论 0 0
  • 1、Spring是什么?Spring是一个轻量级的IoC和AOP容器框架。是为Java应用程序提供基础性服务的一套...
    月哥说了算阅读 361评论 0 0
  • 1.什么是 Spring Spring是一个开源应用框架,旨在降低应用程序开发的复杂度,他是轻量级,松耦合的。它具...
    不要夜空霓虹的繁荣阅读 164评论 0 0
  • 从大小、开销两方面而言,Spring 都是轻量级的; 通过控制反转技术(IOC)达到松耦合; 通过面向切面编程(A...
    千反田爱瑠爱好者阅读 523评论 0 0
  • 一篇关于spring的总结 主要:主要是分清楚AOP(面向切面编程),IOC(控制反转/依赖注入),DI(IOC同...
    七枷琴子阅读 604评论 0 1