spring6

是什么?

spring是一款主流的JavaEE轻量级开源框架,spring由“spring”之父,Rob Johnso 提出并创立,其目的是用于简化Java企业级应用开发难度和开发周期;

分为两个方面:

从两个方面来看:广义上;狭义上;

广义上的 spring: spring技术栈(泛指以spring Framework 为核心的spring技术栈)

狭义上:Spring Framework(特指Spring Framework ,通常我们将他称为Spring 框架)

其中最重要的是:IOC、跟AOP:

IOC:

控制反转,指把创建对象的过程交给Spring进行管理;

IOC容器:

意思为:“控制反转”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程的法则,能够知道我们如何设计出低耦合,更优良的程序;

spring 通过IOC容器来管理所有Java对象的实例化,初始化,控制对象与对象之间的依赖关系,我们将由IOC容器管理的Java对象称之为spring bean ,(它与使用new创建对象没有区别)

理解控制反转:

将对象的创建权力交出去,交给第三方容器负责;

将对象和对象之间关系的维护交出去,交给第三方容器管理;

常见的两种注入方式:

第一种:set注入

第二种:构造注入

BeanFactory:是IOC容器的基本实现,是spring内部使用的接口,面向spring本身,不提供给开发人员使用;

ApplicationContext:BeanFactory的子接口,提供了更过高级的特性,面向spring的使用者,几乎所有场合都使用ApplicatioContext,而不是底层的BeanFactory;

bean管理说的是:bean对象的闯将,以及bean对西昂中属性的赋值(或者叫bean对象之间的关系维护)

AOP:

是面向切面的程序编程,AOP用来封装多个类的公共行为,将那些与业务无关,却为业务模块所共同调用的逻辑封装起来,减少系统代码的重复代码,降低模块之间的耦合度;

例外:接口中的实现类是.Java文件类型,只要添加implements就是实现类了;

AOP:AspectOriented Programming (面向切面编程、面向方面编程),其实i局势面向特定方法的编程;

实现:动态代理是面向切面编程最主流的实现。而springAop 是spring框架的高级技术,旨再管理bean对象的过程中,主要通过底层动态代理机制,对特定方法进行编程;

AOP核心概念:

连接点:joinpoint 可以被aop控制的方法(暗含方法执行时的相关信息)

同志:advice 指那些重复的逻辑,也就是共性功能(最终体现为一个方法)

切入点:pointcut ,匹配连接点的跳进,通知仅会在切入点执行时被应用

切面:aspect,描述统治与切入点的对应关系(同志+切入点)

目标对象:target ,通知应用的对象;

同志类型:

@before(前置通知)

@after(后置通知) 重要

@Around(环绕通知,重点)

@afterRetruning(返回后通知,了解)

@afterThrowing(异常后通知,了解)

通知顺序:

当多个切面的切入点都匹配到了目标方法,目标方法运行时,多个通知都回被执行;

执行顺序

1、不同切面中,默认按照切面类的类名字母排序:

目标方法前的通知方法:字母排名靠前的先执行;

目标方法后的通知方法:字母排名靠前的后执行

2、用@order(数字)加在切面类上来控制顺序

目标方法前的通知方法:数字小的先执行

目标后的通知方法:数字小的后执行

切入点表达式

切入点表达式:描述切入点方法的一种表达式

作用:主要用来决定项目中的那些方法需要加入通知:

常见形式:

2、excution(.....):根据方法的签名来匹配

2、@annotation(.....):根据注解匹配

在spring6中的AOT概述:

JIT 与AOT的区别:是指两种不同的编译方式,这两种编译方式的主要区别在于“运行时”进行编译;

1、jit:动态(即时编译),边运行边编译

在程序运行时,根据算法计算出热点代码 ,然后进行实时编译,这种方式吞吐量高,有运行是性能加成,可以跑的更快,并且可以动态生成代码等,但是相对启动速度较慢,并需要一定时间和调用频率才能触发jit分层机制;

2、AOT:指运行前编译,预先编译;

AOT编译能直接将源代码转化为机器码,内存占用低,启动速度快,可以无需 runtime 运行,直接将runtime静态链接至最终的程序中,但是无运行时性能加成,不能根据程序运行情况做进一步的优化,AOT 缺点就是在程序运行前编译会使程序安装的时间增加。

        

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值