Spring5(1)-基本概念

目录

1.Spring特点

2.Spring框架的体系结构


1.Spring特点

1.Spring是轻量级开源的JavaEE框架。

轻量级:由20多个模块构成,每个jar包都很小,小于1M,核心包也就3M左右。对代码无污染。什么是污染,比如用maven时,要按着maven的目录结构,pom文件的规定来写代码。

Spring功能强大,可以整合其他框架。比如SpringMVC,SpringBoot,和微服务的SpringBoot。整合其他框架后,使其他框架更易用。

核心是IOC和AOP。

IOC降低业务对象之间的耦合度。使业务互调过程中,不再自己维护关系,即不用再自己创建使用的对象了。由Spring容器统一管理,自动注入,注入即赋值。

控制反转将原本由程序代码直接操控的对象调用权交给容器,通过容器来实现对象的装配和管理,所以控制反转就是将对象的控制权转移,从程序代码本身转到外部容器,通过容器实现对象的创建,属性的赋值,依赖的管理。

Spring的主要作用就是为代码解耦,降低代码之间的耦合度,让对象和对象之间的关系不是使用代码关联,而是通过配置说明。

形象理解解耦

有一块布,当作你的衣服,但只是一块布,没有任何加工,当你弄坏了某一处,需要修补,那你需要将整块布脱下来才能修补,如果将这块布加工,做成裤子,上衣,手套,帽子。如果哪块需要修补就单独脱哪块,不用牵一发而动全身了,这就是解耦。但是也不是解耦程度越高越好,若一个手套五个指头都单独做成手套,那也不利于操作。

DI和IOC的联系

IOC是种思想,而DI是种技术,通过DI实现IOC,可以认为DI=IOC。

Spring是一个框架,相当于一个半成品软件,是一个容器来管理对象,这个容器不装文本,数字,而是装对象。

Spring面向接口编程,什么是面向接口编程?类中的成员变量设计为接口,方法的参数设计为接口,方法的返回值设计为接口,调用的时候接口指向实现类。使用接口就是面向灵活,项目的可扩展性,可维护性都极高,接口不关心实现类的类型。只要实现了这个接口就说明能使用这个接口的功能。切换实现类即可切换整个功能,比如界面层,业务逻辑层,数据访问层,每一层都有接口卡住,比如数据访问层用的是MySQL的数据库,接口指向MySQL的实现类,如果需要更换Oracle的数据库,那么只需要在数据访问层切换掉MySQL的实现,更换成Oracle的实现就好了,上面整个项目都不用动。

AOP使系统服务得到最大复用。做好一处,然后处处调用。

Spring面向切面,什么是面向切面?公共的业务逻辑操作都称之为切面。跟具体的功能性的业务没有关系。

比如controller,service或DAO层取出数据时,都会System.out.println()来输出一下看结果,这个控制台输出结果的这个功能是用来检测的,跟代码功能无关,当项目上线之后就不能用这种方法来观察结果检测代码了,就需要用到日志,可以理解为日志就是输出语句,输出代码的情况,但不同的层都需要日志功能,所以可以把所有日志的处理集中起来做开发,谁需要日志功能,就把日志功能支回去。谁需要日志功能谁调用,所以日志功能达到可以开发一次,处处就可调用。这个公共的业务逻辑,公共的代码,公共的处理就是切面。 底层原理是动态代理。

理解什么是面向切面

spring学习总结二-----面向切面编程(AOP)思想 - 走看看

2.Spring框架的体系结构

 上下文就是与当前这件事有关联的其他数据。

比如上学读书,学校的老师,同学,餐厅,教室都是这件事的上下文。给上学读书提供支持。

Aspects是面向切面编程的核心功能包。

Instrumentation是JVM的代理。

Messaging是消息传送机制。

这四个其实是底层核心包的应用。

再往上是基于这些应用能实现的功能包含数据库的访问和Web的应用。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值