Spring简介

 

/*
*作者:呆萌老师
*☑csdn认证讲师
*☑51cto高级讲师
*☑腾讯课堂认证讲师
*☑网易云课堂认证讲师
*☑华为开发者学堂认证讲师
*☑爱奇艺千人名师计划成员
*在这里给大家分享技术、知识和生活
*各种干货,记得关注哦!
*vx:it_daimeng
*/

  

一.spring框架

1.spring介绍

​ spring框架:spring是一个非常活跃的开源框架。基于IOC和aop来构架多层javaee系统,以帮助分离项目组件之间的依赖关系(解耦)

底层: 工厂模式+xml

2.Spring功能

Spring ioc能够帮我们根据配置文件创建及组装对象之间的依赖关系

Spring aop能够帮助我们无耦合的实现日志记录,性能统计,安全控制

spring能够非常简单的帮我们管理数据库事务

spring提供了与第三方数据访问框架无缝连接,比如Hibernate,mybatis,而且自己也提供了一套jdbc模板来用来数据的访问

spring还提供了与第三方web框架的无缝连接,比如structs,并且自己也提供了一套springMVC框架,来方便web层搭建

spring能方便的与javaee技术整合,比如Java mail,任务调度,还可以与其它技术整合,比如缓存.

3.Spring组成图

编辑

 

 

core - 核心模块

  • spring-core:依赖注入IoC与DI的最基本实现

  • spring-beans:Bean工厂与bean的装配

  • spring-context:spring的context上下文即IoC容器

  • spring-context-support:Spring context的扩展支持,用于MVC方面

  • spring-expression:spring表达式语言

二. IOC和DI

依赖注入或控制反转的定义中,调用者不负责被调用者的实例创建工作,该工作由Spring框架中的容器来负责,它通过开发者的配置来判断实例类型,创建后再注入调用者。由于Spring容器负责被调用者实例,实例创建后又负责将该实例注入调用者,因此称为依赖注入。而被调用者的实例创建工作不再由调用者来创建而是由Spring来创建,控制权由应用代码转移到了外部容器,控制权发生了反转,因此称为控制反转

1. IOC-控制反转

IOC是 Inverse of Control 的简写,意思是控制反转。是降低对象之间的耦合关系的设计思想。

通过IOC,开发人员不需要关心对象的创建过程,交给Spring容器完成。具体的过程是,程序读取Spring 配置文件,获取需要创建的 bean 对象,

通过反射机制创建对象的实例。

缺点:对象是通过反射机制实例化出来的,因此对系统的性能有一定的影响。

将对象的创建权利翻转给Spring容器.

2. DI-依赖注入

Dependency Injection,说的是创建对象实例时,同时为这个对象注入它所依赖的属性。相当于把每个bean与bean之间的关系交给容器管理。而这个容器就是spring。

例如我们通常在 Service 层注入它所依赖的 Dao 层的实例;在 Controller层注入 Service层的实例。

3. IOC和DI

IOC的别名,2004年,Martin Fowler探讨了同一个问题,既然IoC是控制反转,那么到底是“哪些方面的控制被反转了呢?”,经过详细地分析和论证后,他得出了答案:“获得依赖对象的过程被反转了”。控制被反转之后,获得依赖对象的过程由自身管理对象变为由IoC容器主动注入。于是,他给“控制反转”取了一个更合适的名字叫做“依赖注入(Dependency Injection,DI)”。他的这个答案,实际上给出了实现IoC的方法:注入。

所谓依赖注入,就是由IoC容器在运行期间,动态地将某种依赖关系注入到对象之中。

所以,依赖注入(DI)和控制反转(IoC)是从不同的角度描述的同一件事情,就是指通过引入IoC容器,利用依赖关系注入的方式,实现对象之间的解耦.

posted @ 2022-09-20 23:02  呆萌老师  阅读(27)  评论(0编辑  收藏  举报