Spring学习笔记(1):了解Spring

🥞目录

🥪Spring简介:

🍰Spring常用框架:

🍕Spring Framework

🍕SpringMVC

🍕SpringBoot

🍕SpringCloud

🍕SpringData

🍕MongoDB

🍟Spring系统架构:

🍕(1)核心层

 🍕 (2)AOP层

  🍕(3)数据层

 🍕 (4)Web层

 🍕 (5)Test层

🥙IOC、IOC容器、Bean、DI

🍕1. IOC(Inversion of Control)控制反转

🍕2. DI(Dependency Injection)依赖注入

🍔Spring优点


🥪Spring简介:

Spring框架由Rod Johnson开发,2004年发布了Spring框架的第一版。Spring是一个从实际开发中抽取出来的框架,因此它完成了大量开发中的通用步骤,留给开发者的仅仅是与特定应用相关的部分,从而大大提高了企业应用的开发效率。Spring是一个轻量级的控制反转(IOC)和面向切面编程(AOP)的开源框架。

🍰Spring常用框架:

 

🍕Spring Framework

它就是我们常说的Spring框架,它是一个软件设计架构层面的框架,为基于Java的企业级应用程序提供了一套标准流程和配置模型,可部署在任何类型的平台上。Spring优势在于为开发者提供了应用级别的基础结构支持,实现应用层面的解耦合,允许开发者自主选择相关组件,开发者只需专注于业务逻辑的开发,不需要关注特定的部署环境。

🍕SpringMVC

Spring MVC,它是Spring Framework中的一个模块,是 Spring Framework 在Web领域实现 MVC设计模式的具体方案,主要是基于DispatcherServer的前端路由处理和ViewResolver视图解析器来简化开发者的工作效率。

🍕SpringBoot

Spring Boot是目前Spring全家桶系列中最流行的一个产品,在Spring官网的介绍排在第一位,可见对其重视程度,通过Spring Boot可以快速构建一个基于Spring的独立生存级别的应用程序,开发者直接运行程序即可,无需处理各种繁琐的配置文件。可以说它就是为了让开发者快速启动和运行Spring应用程序而设计的。

🍕SpringCloud

Spring Cloud并不是为了实现某个业务模块而存在的,它是一个集大成者,将分布式系统开发中常用的模块进行整合,如服务注册、服务发现、配置管理、熔断器、控制总线等,基于 Spring Boot 形成一套框架体系,开箱即用,使得开发者可以快速实现分布式、微服务应用。

🍕SpringData

Spring Data是Spring提供的持久层产品,主要功能是为应用程序中的数据访问提供统一的开发模型,同时保留不同数据存储的特殊性,并且这套开发模式是基于Spring的。根据不同类型的数据存储类型又可分为 Spring Data JDBC、Spring Data JPA、Spring Data Redis、Spring Data MongoDB等,适用于关系型数据库和非关系型数据库。

🍕MongoDB

它跟Redis一样是Nosql数据库,之前也用过redis,当时是用来存储一些热数据,量也不大,但是操作很频繁。现在项目中用的是MongoDB,目前是百万级的数据,将来会有千万级、亿级。就Redis和MongoDB来说,大家一般称之为Redis缓存、MongoDB数据库。这也是有道有理有根据的,Redis主要把数据存储在内存中,其“缓存”的性质远大于其“数据存储“的性质,其中数据的增删改查也只是像变量操作一样简单;MongoDB却是一个“存储数据”的系统,增删改查可以添加很多条件,就像SQL数据库一样灵活,这一点在面试的时候很受用。

🍟Spring系统架构:

 

🍕(1)核心层

   🍬Core Container:核心容器,这个模块是Spring最核心的模块,其他的都需要依赖该模块 

 🍕 (2)AOP层

  🍬AOP:面向切面编程,它依赖核心层容器,目的是==在不改变原有代码的前提下对其进行功能增强==
  🍬 Aspects:AOP是思想,Aspects是对AOP思想的具体实现

  🍕(3)数据层

  🍬Data Access:数据访问,Spring全家桶中有对数据访问的具体实现技术
  🍬Data Integration:数据集成,Spring支持整合其他的数据层解决方案,比如Mybatis
  🍬Transactions:事务,Spring中事务管理是Spring AOP的一个具体实现,也是后期学习的重点内容

 🍕 (4)Web层

  🍬web开发

 🍕 (5)Test层

  🍬Spring主要整合了Junit来完成单元测试集成测试

🥙IOC、IOC容器、Bean、DI

🍕1. IOC(Inversion of Control)控制反转

🍬(1)什么是控制反转?

使用对象时,由主动new产生对象转换为由外部提供对象,此过程中对象创建控制权由程序转移到外部,此思想称为控制反转。

🍬(2)Spring和IOC之间的关系是什么?

🍿Spring技术对IOC思想进行了实现
🍿Spring提供了一个容器,称为IOC容器,用来充当IOC思想中的"外部"
🍿 IOC思想中的`别人[外部]`指的就是Spring的IOC容器

(3)IOC容器的作用以及内部存放的是什么?

🍿IOC容器负责对象的创建、初始化等一系列工作,其中包含了数据层业务层的类对象
🍿被创建或被管理的对象在IOC容器中统称为Bean
🍿IOC容器中放的就是一个个的Bean对象

(4)当IOC容器中创建好service和dao对象后,程序能正确执行么?

🍿不行,因为service运行需要依赖dao对象,IOC容器中虽然有service和dao对象,但是service对象和dao对象没有任何关系,需要把dao对象交给service,也就是说要绑定service和dao对象之间的关系。

像这种在容器中建立对象与对象之间的绑定关系就要用到DI:

🍕2. DI(Dependency Injection)依赖注入

(1)什么是依赖注入?

🍬在容器中建立bean与bean之间的依赖关系的整个过程,称为依赖注入
🍬业务层要用数据层的类对象,以前是自己`new`的
🍬现在自己不new了,靠`别人[外部其实指的就是IOC容器]`来给注入进来
🍬这种思想就是依赖注入

(2)IOC容器中哪些bean之间要建立依赖关系?

🍬根据业务需求提前建立好关系,如业务层需要依赖数据层,service就要和dao建立依赖关系

Spring的IOC和DI的最终目标就是:充分解耦,具体实现靠:

🍬使用IOC容器管理bean(IOC)
🍬在IOC容器内将有依赖关系的bean进行关系绑定(DI)
🍬最终结果为:使用对象时不仅可以直接从IOC容器中获取,并且获取到的bean已经绑定了所有的依赖关系.

🍔Spring优点

🍿1.方便解耦,简化开发:通过Spring的IOC容器,把对象间的依赖关系交给Spring容器来控制,避免将依赖关系硬编码在程序里,方便解耦,简化了开发。

🍿2.方便测试:Spring框架内部集成了Junit4,随时随地测试。

🍿3.支持声明式事务:把开发人员从单调烦闷的事务操作中解脱出来。

🍿4.支持面向切面编程:支持AOP。

🍿5.方便集成其它优秀的框架:不排斥其它优秀框架,而且还方便集成其它优秀的框架。

🍿6.方便API的调用:对一些不难但是挺恶心的功能(JDBC、发邮件等)提供了薄薄的封装层,方便我们调用。

🍿7.免费、开源、轻量级、非入侵:非入侵就是指Spring框架的引入不会对原来的程序造成影响

 

  • 3
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

她与剑意皆失

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值