【笔记】第一阶段 模块二 :Spring框架、IOC容器、AOP简介

1.Spring简介

1.1spring是什么

    Spring 是分层的 full-stack(全栈) 轻量级开源框架,以 IoC 和 AOP 为内核,提供了展现层 SpringMVC 和业务层事务管理等众多的企业级应⽤技术,还能整合开源世界众多著名的第三⽅框架和类库.

1.2spring优势

     1.⽅便解耦,简化开发:可以将对象间的依赖关系交由Spring进⾏控制,避免硬编码所造成的过度程序耦合

     2.AOP编程的⽀持

    3.声明式事务的⽀持

    4.⽅便程序的测试

    5.⽅便集成各种优秀框架

    6.降低JavaEE API的使⽤难度

    7.源码是经典的 Java 学习范例

1.3Spring核心架构

      如图


Spring最核心的模块如下:

    1.Container 模块(对象的创建,管理等)

    2.AOP 模块(对象功能的扩展)

    3.Data 模块(数据访问功能的整合及实现)

    4.Web 模块(网络应用模块整合及实现)

    5...........

Spring 中的核心组件:

  1.IOC  容器(控制反转容器):对象创建,对象存储,对象依赖管理。

  2. MVC 组件(重点解决与表示层通讯的通讯问题)

  3. AOP  组件(重点解决对象功能扩展问题)

  4.DATA 组件(整合JDBC,MyBatis,JPA,....)

  5.......

1.4核心IOC介绍

       Spring 中有一个核心容器,这个容器我们通常称之为IOC(Inversion of Control)容器,这个容器最核心功能就是控制反转.这个容器负责对象的创建,对象的存储(map),对象的管理(依赖查找,依赖注入).

      为什么叫做控制反转?

             控制:指的是对象创建(实例化、管理)的权利

             反转:控制权交给外部环境了(spring框架、IoC容器)

优势:

     1.更好的使用内存(默认单例管理),防止内存泄露。

     2.更好的解耦和(耦合于接口或者耦合于工厂

劣势:

       1.我们丧失了⼀个权利(创建、管理对象的权利)

       2.构建对象的过程变的复杂,对象结构的可读性降低了

IoC和DI的区别:

       OC和DI描述的是同⼀件事情,只不过⻆度不⼀样罢了

      IOC思想:站在对象的角度,对象实例化和管理的权限交给了容器

      DI:Dependancy Injection(依赖注⼊),站在容器的角度,容器会把对象依赖的其他对象注入进去

1.5AOP简介

     AOP是什么: 面向切面编程,它是面向对象编程的一种补充和完善

    AOP要解决什么问题:AOP就是要在不改变原有系统核心业务代码的基础上动态添加一些扩展功能

    AOP实际项目应用场景:通常应用于日志的处理,事务处理,权限处理,缓存处理等等

   为什么叫做⾯向切⾯编程:

         切,指的是横切逻辑,原有业务逻辑代码我们不能动,只能操作横切逻辑代码,所以⾯向横切逻辑

         面,横切逻辑代码往往要影响的是很多个⽅法,每⼀个⽅法都如同⼀个点,多个点构成⾯,有⼀个⾯的概念在⾥⾯




     

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

推荐阅读更多精彩内容

友情链接更多精彩内容