Spring理解,不理解底层的上层,都比较空虚吧。

Mybatis处理的7788开始使用后端框架spring-boot 使用之前先不要急,先看看。这到底是个啥。
博主本人也不是非常清楚的解析其中的每个概念,也就到能用的水平,但是我是必须要知道个7788不然写都不想写。先摸一摸。以后水平提升再回来干。从架构,感到JVM才是正确之道。
Spring简介
Spring框架为开发Java应用程序提供了全面的基础架构支持。

它包含一些很好的功能,如依赖注入和开箱即用的模块,如:

Spring JDBC
Spring MVC
Spring Security
Spring AOP
Spring ORM
Spring Test
这些模块可以大大缩短应用程序的开发时间。
我们来看看怎么缩短的。
先看Spring JDBC
https://blog.csdn.net/weixin_44117272/article/details/94716724
就看看就行了,基本就弃用了。这就是个连接数据库的封装过程。然后已经被前文所说的mybatis取代了。至于为什么取代,复用性差。
再看

Spring Security
没看懂这个加密,待定。

Spring AOP
AOP(Aspect Oriented Programming)称为面向切面编程
在程序开发中主要用来解决一些系统层面上的问题,比如日志,事务,权限等待
在这里插入图片描述
摘自简书上的一幅图。
AOP是什么呢?他没有特定的实现方式,但是有特定的定义。有必要引入一个对比的概念。在这里必先强调,概念的作用。起到一个思维主体的作用,但并不是确切的功能或者代码本身。
OOP的概念OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。
简单来说OOP的意思是,给你一个接口或者是通用类,你可以,使用它的各种特性,去将它组合起来,形成你所需要使用的对象,涵盖方式,属性等等。想象一下,地球需要质子,原子,中子等等,然后不断继承,成为鹿马,牛羊。这些每个独立的个体都是需要写很多很多的方法。每个实体对象都将多次继承和使用上一次定义的对象。
接触这个概念其实还挺有意思的。
比如说,举个例子马呼吸,牛也呼吸,这两都是用鼻子的,到了器官都是用肺的。这个时候有些朋友就会发现,谁是用鼻子呼吸的归个类,我们把用鼻子呼吸的写到一起。其他的我们再去实现,那么相对来说,是不是对于OOP概念来说,少写了很多东西。因为比如十种动物,八种是用鼻子呼吸的,两种不是。那么需要构造的呼吸方式就有三种。如果是继承的方式,那么就有十种。所以就出现了一种新的思维,叫做AOP,高大上的说叫做针对切面的编程。但我相信一定是某个疯魔的代码员搞出来的。因为写了一千个这样类似对象的哥们,一定会干翻他。而代码界的进步,也是不断的发出质疑的结果。
现在讲一下针对切面的编程。讲了很多概念,图上都有。
其实无非是通过类构造的生命周期,围绕去解决如何将部分功能解构的问题。
举个例子,十户人开门,是不是九户人用钥匙。如果需要这十户人开门这个东西,用来虚拟现实映射。那么怎么架构这个东西实在。有一种是OOP也就是我把这是个人都实例化,先把门抽象,然后继承写出十个人各自不同的表现形式,再把开锁的方法实现。这就是十个门的模拟操作。关注点在哪里?那就是这是十个门的基类,然后不同点是对应实例化。
如果是针对切面的呢?
也是先抽象出彼此相通的东西,但是抽象的过程不太一样,针对切面的编程可能就不存在这样一个基类。因为他把他们以虚拟机生命周期的方式,提炼到了一个指定的声明过程中,比如类构造或者类解析的过程。我把十个门开锁的方式写在一个方法里。然后当十个门开锁的时候,都调用同一个方式,那么我在解决的是什么问题?是如何开门的问题。而不是如何构造开锁方法的问题。代码量10:1对于一个方式。当然如果只是10个加上一些架构的源码,那么其实没啥区别,如果是一个小区1000户人,或者10000户人。那个时候呢?
大致理解一下理念核心,然后开始进行AOP分解。
使用"横切"技术,AOP把软件系统分为两个部分:核心关注点和横切关注点。业务处理的主要流程是核心关注点,与之关系不大的部分是横切关注点。横切关注点的一个特点是,他们经常发生在核心关注点的多处,而各处基本相似,比如权限认证、日志、事物。AOP的作用在于分离系统中的各种关注点,将核心关注点和横切关注点分离开来
(1) 横切关注点:对哪些方法进行拦截,拦截后怎么处理,这些关注点称之为横切关注点//确定将开锁放在公用类中
(2)Aspect(切面):通常是一个类,里面可以定义切入点和通知//如何开锁
(3)JointPoint(连接点):程序执行过程中明确的点,一般是方法的调用。被拦截到的点,因为Spring只支持方法类型的连接点,所以在Spring中连接点指的就是被拦截到的方法,实际上连接点还可以是字段或者构造器//触发条件
(4)Advice(通知):AOP在特定的切入点上执行的增强处理,有before(前置),after(后置),afterReturning(最终),afterThrowing(异常),around(环绕)//根据生命周期定义位置。
(5)Pointcut(切入点):就是带有通知的连接点,在程序中主要体现为书写切入点表达式//触发过程
(6)weave(织入):将切面应用到目标对象并导致代理对象创建的过程//
(7)introduction(引入):在不修改代码的前提下,引入可以在运行期为类动态地添加一些方法或字段//动态添加的部分
(8)AOP代理(AOP Proxy):AOP框架创建的对象,代理就是目标对象的加强。Spring中的AOP代理可以使JDK动态代理,也可以是CGLIB代理,前者基于接口,后者基于子类//代理人
(9)目标对象(Target Object): 包含连接点的对象。也被称作被通知或被代理对象。POJO//交互的基准单位。

应用场景
Authentication 权限
Caching 缓存
Context passing 内容传递
Error handling 错误处理
Lazy loading 懒加载
Debugging  调试
logging, tracing, profiling and monitoring 记录跟踪 优化 校准
Performance optimization 性能优化
Persistence  持久化
Resource pooling 资源池
Synchronization 同步
Transactions 事务
实现过程可参考
https://www.jianshu.com/p/5b9a0d77f95f
具体事例
https://baijiahao.baidu.com/s?id=1613310315603029991&wfr=spider&for=pc
Spring MVC
这个我也觉得挺有意思的,构造一个框架不难,但是合理的有机的分解一个框架,确实是一件很牛逼的事。不带重复功能的框架确实很牛逼。
致敬牛逼的代码员。
前文提到mybatis和数据库底层,现在开始写当数据通过orm映射到后端,后端拿到指定的数据后,在后台如何运作。以及后台java逻辑之后跟请求又是一个什么样的概念。
在这里插入图片描述
差不多就是一个生命周期的意思有一个前置拦截器
拦截请求然后会分配给处理器去做适配,类似于1对1通过反射拿到指定的处理器,处理完的数据,打包成modelAndView的形式给视图层,当视图层拿到数据和模型去对应做解析。这是理念,按照这个理念写成的框架叫springmvc一种分层结构生命周期的顺序。生命周期这个概念是我从Android学的,我非常喜欢这个概念,很生动形象的解释了软件的过程。
先从使用角度讲一遍,以后有机会,从架构角度再讲一次。
https://www.cnblogs.com/fengru/p/5730174.html

Spring Security
加密部分的内容,暂时不关注。过段时间可以研究一下shiro不过是在23种设计模式研究之后。以前就懂,不过太久没用。拿回来先。

Spring ORM
没啥好说的,参考前文mybatis

Spring Test
单元测试,用的时候百度一下就好了。
https://blog.csdn.net/u012998306/article/details/94548823
咋实现的,看junit等框架建立,没精力搞。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值