1.1 了解Spring框架 -《SSM深入解析与项目实战》

文章目录

  • 声明
  • 第1篇 基础概念
    • 第1章 谈谈SSM框架和Redis
      • 1.1 了解Spring框架
        • 1.1.1 如何学习Spring
        • 1.1.2 IoC(Inversion of Control 控制反转)
        • 1.1.3 AOP(Aspect Oriented Programing面向切面编程)

声明

专栏链接:https://chenhx.blog.csdn.net/category_10263372.html
作者:谙忆

1.1 了解Spring框架 -《SSM深入解析与项目实战》

项目中所有的源码都可以在此链接的仓库中找到:https://github.com/chenhaoxiang/uifuture-ssm

本章非常形象的介绍了Springn中最核心的两个概念,IoC和AOP,使用了现实中的例子进行讲解,让开发者更加容易理解。

第1篇 基础概念

第1章 谈谈SSM框架和Redis

本章节对于Spring、Spring MVC、MyBatis和Redis进行了一些简单的介绍,不会对技术有太过深入的讲解。

1.1 了解Spring框架

Spring是一个轻量级的企业级Java开发开源框架,是为了解决企业项目开发的复杂性而创建的。学习Spring,最重要的就是要理解两个核心概念,即IoC(Inversion of Control 控制反转)和AOP(Aspect Oriented Programing面向切面编程)。

Spring之所以在企业中应用如此广泛,完全是由于它先进的设计理论:

分层架构,使用者只用引入自己所需要的某一个组件,不需要再做一些重复性的工作,简化开发与配置。对于项目没有太多的入侵性,在使用Spring框架的时候,并不需要继承或者实现框架中的类和接口。
使用IoC容器进行实例化对象以及管理对象间的依赖,面向接口编程,降低模块与模块之间的耦合,方便扩展。

使用AOP面向切面编程,让开发者可以更加专注于实现业务本身,而且代码与代码之间没有耦合,简化开发。

1.1.1 如何学习Spring

学习Spring,Java的基础是不可少的。其次对于一些设计模式也必须有一些了解,其中必不可少的就数工厂模式(Factory Pattern)、策略模式(Strategy Pattern)、模板模式(Template Pattern)以及代理模式(Proxy Pattern),在本文的第3章,将会对该几种模式进行详细的介绍与实例讲解。

学习Spring,并不是需要我们强行记住一些Spring的特性,例如IoC,AOP概念,死记硬背是非常痛苦的学习方式。如何将这些概念理解,如何在项目中灵活使用,才是最需要的。

1.1.2 IoC(Inversion of Control 控制反转)

假设生病时没有医生,用户只能自行寻找药物治疗,还要确定吃药的先后顺序,而一旦有了医生,这些事情就交给医生,只需吃药治疗就行。一开始用户自己诊断找药吃,可以类比成传统的Java应用程序新建对象的方式。而这里的医生可以理解成IoC(Inversion of Control,控制反转),帮助用户管理药物,用户只需要进行使用药物即可。

某些药物与药物之间存在依赖的关系,比如药物A需要先服用药物B之后才能食用。这个关系,在开始没有医生的时候,也需要用户自行管理,如图1-1所示。

1.1 了解Spring框架 -《SSM深入解析与项目实战》_第1张图片
图1-1 一开始用户自己找药治病

而在有了医生之后,我们可以理解成医生帮我们管理了药物之间的食用先后顺序和关系。我们只需要知道“吃”即可,如图1-2所示。

1.1 了解Spring框架 -《SSM深入解析与项目实战》_第2张图片
图1-2 医生负责管理药物

药物之间的依赖,可以类比成DI(Dependency Injection,依赖注入),由医生负责管理这种依赖。也就是反转了(开始是由用户管理药物的),这就是IoC(Inversion of Control,控制反转),即“管理对象的容器”。有了IoC,不需要关心对象的创建、销毁等,只需要在使用的时候,通过注解id或者通过类名,告诉Spring你需要的对象是什么。

DI(Dependency Injection 依赖注入)是在“控制反转”之后由Martin Fowler于2004年初首次提出的。在进行Spring配置的时候,Bean与Bean之间通过ref进行维护的时候是相互依赖的,动态地为某个对象提供它需要的其他对象,所以称为依赖注入(DI)。

对于IoC(DI)的理解,没有一个绝对标准的答案,每个人都有不同的理解。IoC对编程带来的最大改变就是,从应用程序的主动出击获取资源,到了IoC(DI),即应用程序被动接受IoC容器注入需要的资源。

1.1.3 AOP(Aspect Oriented Programing面向切面编程)

可以用一个例子来简单理解AOP(Aspect Oriented Programing,面向切面编程)。

例如,在调用DAO层插入方法,需要记录全局日志时,就可以实现一个切面,将一个代理类使用切面织入到Spring管理的Bean中去,这样代理类将会在目标类之前,截取对目标类方法的调用,让调用者对于目标类的调用优先调用代理类中的方法,也就是说,先执行切面,再在切面方法中将调用转发给真正的目标类方法。

1.1 了解Spring框架 -《SSM深入解析与项目实战》_第3张图片
图1-3 调用者调用目标类中的方法需要先经过代理类

理解了动态代理之后,对AOP的理解会更加的深刻,本书后续章节会详解动态代理。

你可能感兴趣的:(SSM深入解析与项目实战,java,spring,aop,设计模式,编程语言)