🥞目录
🥪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
🍕SpringMVC它就是我们常说的Spring框架,它是一个软件设计架构层面的框架,为基于Java的企业级应用程序提供了一套标准流程和配置模型,可部署在任何类型的平台上。Spring优势在于为开发者提供了应用级别的基础结构支持,实现应用层面的解耦合,允许开发者自主选择相关组件,开发者只需专注于业务逻辑的开发,不需要关注特定的部署环境。
🍕SpringBootSpring MVC,它是Spring Framework中的一个模块,是 Spring Framework 在Web领域实现 MVC设计模式的具体方案,主要是基于DispatcherServer的前端路由处理和ViewResolver视图解析器来简化开发者的工作效率。
🍕SpringCloudSpring Boot是目前Spring全家桶系列中最流行的一个产品,在Spring官网的介绍排在第一位,可见对其重视程度,通过Spring Boot可以快速构建一个基于Spring的独立生存级别的应用程序,开发者直接运行程序即可,无需处理各种繁琐的配置文件。可以说它就是为了让开发者快速启动和运行Spring应用程序而设计的。
🍕SpringDataSpring Cloud并不是为了实现某个业务模块而存在的,它是一个集大成者,将分布式系统开发中常用的模块进行整合,如服务注册、服务发现、配置管理、熔断器、控制总线等,基于 Spring Boot 形成一套框架体系,开箱即用,使得开发者可以快速实现分布式、微服务应用。
🍕MongoDBSpring Data是Spring提供的持久层产品,主要功能是为应用程序中的数据访问提供统一的开发模型,同时保留不同数据存储的特殊性,并且这套开发模式是基于Spring的。根据不同类型的数据存储类型又可分为 Spring Data JDBC、Spring Data JPA、Spring Data Redis、Spring Data MongoDB等,适用于关系型数据库和非关系型数据库。
🍟Spring系统架构:它跟Redis一样是Nosql数据库,之前也用过redis,当时是用来存储一些热数据,量也不大,但是 *** 作很频繁。现在项目中用的是MongoDB,目前是百万级的数据,将来会有千万级、亿级。就Redis和MongoDB来说,大家一般称之为Redis缓存、MongoDB数据库。这也是有道有理有根据的,Redis主要把数据存储在内存中,其“缓存”的性质远大于其“数据存储“的性质,其中数据的增删改查也只是像变量 *** 作一样简单;MongoDB却是一个“存储数据”的系统,增删改查可以添加很多条件,就像SQL数据库一样灵活,这一点在面试的时候很受用。
🍕(1)核心层
🍬Core Container:核心容器,这个模块是Spring最核心的模块,其他的都需要依赖该模块
🍕 (2)AOP层 🍬AOP:面向切面编程,它依赖核心层容器,目的是==在不改变原有代码的前提下对其进行功能增强==
🍬 Aspects:AOP是思想,Aspects是对AOP思想的具体实现
🍬Data Access:数据访问,Spring全家桶中有对数据访问的具体实现技术
🍬Data Integration:数据集成,Spring支持整合其他的数据层解决方案,比如Mybatis
🍬Transactions:事务,Spring中事务管理是Spring AOP的一个具体实现,也是后期学习的重点内容
🍬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已经绑定了所有的依赖关系.
🍿1.方便解耦,简化开发:通过Spring的IOC容器,把对象间的依赖关系交给Spring容器来控制,避免将依赖关系硬编码在程序里,方便解耦,简化了开发。
🍿2.方便测试:Spring框架内部集成了Junit4,随时随地测试。
🍿3.支持声明式事务:把开发人员从单调烦闷的事务 *** 作中解脱出来。
🍿4.支持面向切面编程:支持AOP。
🍿5.方便集成其它优秀的框架:不排斥其它优秀框架,而且还方便集成其它优秀的框架。
🍿6.方便API的调用:对一些不难但是挺恶心的功能(JDBC、发邮件等)提供了薄薄的封装层,方便我们调用。
🍿7.免费、开源、轻量级、非入侵:非入侵就是指Spring框架的引入不会对原来的程序造成影响
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)