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

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

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

友情链接更多精彩内容