参考博客

spring框架的体系结构

spring框架的体系结构

Spring AOP的简介和简单用法

参考博客1

AOP,Spring,IOC,DI

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.有一个持续的事务管理接口,可以扩展到上至本地事务

Spring bean的生命周期

spring bean的生命周期

Spring MVC流程图

Spring MVC流程图