Spring的基础知识
文章目录
参考博客
spring框架的体系结构
Spring AOP的简介和简单用法
参考博客1
AOP:面向切面编程
为什么要面向切面编程:
一般方法中都有几个部分,包含了业务相关和业务不相关的,比如
1.验证参数
2.前置日志
3.业务代码
4.后置日志
为了便于后期的维护和管理,我们希望在方法中只有业务相关代码,所以用到了切面编程。
切面编程就是为了让非业务代码从方法中抽离出来,然后还能方便的动态运用到其它方法中,便于维护代码。遍布于应用各层的功能分离出来,形成可重用的功能组件。
Spring的单例模式和工厂模式
参考博客
工厂模式:根据调用数据返回某个类的一个实例,但是调用者并不关心方法的具体实现,只关心调用者的接口
单例模式:一个类只有一个实例
SpringIOC 容器
参考博客
控制反转和依赖注入差不多是同一个概念。
当某个角色需要另外一个角色协助的时候,在传统的程序设计中,通常由调用者来创建被调用者的实例,但是在spring中,创建被调用者的实例不是由调用者完成,因此叫做控制反转,而是由Spring来完成,然后注入调用者,这一步叫做依赖注入
总的来说:依赖注入让相互协作的软件组件保持松散的耦合
依赖注入分为三种方式注入:1.构造函数注入。2.属性注入。3.接口注入
1.通过构造器,一开始就注入
2.通过setter方法注入,等到用时,在注入
3.接口注入需要额外声明一个接口,增加类的数目,但是它的效果和属性注入没有什么区别,所以一般不用
Spring的容器能通过配置文件或注解描述类与类之间的依赖关系,自动完成类的初始化和依赖注入工作。
为什么Spring能通过配置文件实例化并装配好程序所用的Bean?因为通过了Java语言本身的类反射机制。
如何理解Spring
1.spring面向接口编程,所有降低了组件间的耦合,实现了软件各层的解耦
2.提供了AOP技术,利用这个技术能很容易实现权限拦截和日志的记录
3.提供了依赖注入(DI)的机制,让相互协作的软件组件保持松散的耦合
4.容器提供单例模式支持,并管理应用中对象的生命周期和配置
5.SpringMVC是web框架的很好替代品
6.有一个持续的事务管理接口,可以扩展到上至本地事务