sss视频

爱你我就色色你 SpringBootAOP导致service注入后是null的问题

         发布日期:2024-11-01 04:34    点击次数:70

爱你我就色色你 SpringBootAOP导致service注入后是null的问题

SpringBoot AOP导致service注入后是null 1.由于业务需求需要

纪委派户操作日记爱你我就色色你,无疑需要使用到SpringAOP。

2.先引入SpringBoot的AOP maven 依赖 3.斥逐这个日记操作不错有好多种设施

比如写抑止器,好像基于注解式样,在好像在原本写好的代码中添加也行,然而终末的一种无疑会浑浊原本的代码,同期会对原本的逻辑有一定浑浊,而当今的业务场景,总共的逻辑代码皆照旧编写完成,自测完成,况且查询接口的数目较着大于(增点窜),况且用户的操作日记咱们最护理的无疑是对数据的操作。是以选拔基于注解的式样斥逐。

和学生的爸爸在他家做爱 4.注解编写

上代码

5.底下需要对SpringBoot AOP 中一些注解

了解一下

@Aspect:形色一个切面类,界说切面类的时候需要打上这个注解 @Configuration:spring-boot竖立类 @Pointcut:声明一个切入点,切入点决定了畅通点关注的内容,使得咱们不错限度见告什么时候执行。Spring AOP只支持Spring bean的设施执行畅通点。是以你不错把切入点看作念是Spring bean上设施执行的匹配。一个切入点声明有两个部分:一个包含名字和任性参数的签名,还有一个切入点抒发式,该抒发式决定了咱们关注阿谁设施的执行。

注:动作切入点签名的设施必须复返void 类型

Spring AOP支持在切入点抒发式中使用如下的切入点带领符:    

execution - 匹配设施执行的畅通点,这是你将会用到的Spring的最主要的切入点带领符。 within - 斥逐匹配特定类型的畅通点(在使用Spring AOP的时候,在匹配的类型中界说的设施的执行)。 this - 斥逐匹配特定的畅通点(使用Spring AOP的时候设施的执行),其中bean reference(Spring AOP 代理)是指定类型的实例。 target - 斥逐匹配特定的畅通点(使用Spring AOP的时候设施的执行),其中主见对象(被代理的垄断对象)是指定类型的实例。 args - 斥逐匹配特定的畅通点(使用Spring AOP的时候设施的执行),其中参数是指定类型的实例。 @target - 斥逐匹配特定的畅通点(使用Spring AOP的时候设施的执行),其中正执行对象的类握有指定类型的注解。 @args - 斥逐匹配特定的畅通点(使用Spring AOP的时候设施的执行),其中本色传入参数的出手时类型握有指定类型的注解。 @within - 斥逐匹配特定的畅通点,其中畅通点地点类型已指定注解(在使用Spring AOP的时候,所执行的设施地点类型已指定注解)。 @annotation - 斥逐匹配特定的畅通点(使用Spring AOP的时候设施的执行),其中畅通点的主题握有指定的注解。

其中execution使用最时时,即某设施执行时进行切入。界说切入点中有一个病笃的常识,即切入点抒发式,西西掰阴艺术咱们一会在确认怎么写切入点抒发式。

切入点意思意思等于在什么时候切入什么设施,界说一个切入点就十分于界说了一个“变量”,具体什么技巧使用这个变量就需要一个见告。

行将切面与主见对象畅通起来。

如例子中所示,见告均不错通过注解进行界说,注解中的参数为切入点。

spring aop支持的见告:

@Before:前置见告:在某畅通点之前执行的见告,但这个见告不可退却畅通点之前的执行过程(除非它抛出一个特地)。 @AfterReturning :后置见告:在某畅通点时常完成后执行的见告,芜俚在一个匹配的设施复返的时候执行。 6.了解完以上模样

需要作念的是纪委派户时常央求,以及特地央求需要纪录的信息,对应一下实体操作

7.用户时常央求

在用户时常央求头部加上自界说的注解

8.在AOP中抑止投入该设施的前置操作以及特地操作 9.说一下踩的一个坑

当本日记照旧不错时常使命了,然而业务代码却失效了,service注入的时候是空的(部分代码),

一顿百度以后发现,原本AOP只可对public 和provide 奏效,如若你的设施法例是private,那么service注入就为空,在springboot 中默许使用的是cglib来代理操作对象,领先,特地设施是不会出当今代理类中,这也等于为什么代理对象无法对private操作的根柢原因

jdk是代理接口,特地设施势必不会存在在接口里,是以就不会被抑止到;  cglib是子类,private的设施照样不会出当今子类里,也不可被抑止。  10.措置的根柢倡导

不是强制使用cglib来代理,而是要将你的controller中的设施不开采特地属性,以上只是代表个东说念主不雅点哟。

追想

以上为个东说念主教悔爱你我就色色你,但愿能给公共一个参考,也但愿公共多多支持剧本之家。

您可能感兴味的著作: springboot 如何措置static调用service为null SpringBoot中@Autowired 失效及@Autowired 注入为null的措置 SpringBoot使用@NotEmpty、@NotBlank、@NotNull注解进行参数校验 Springboot摄取前端的Json然而为null问题 Springboot Filter中注入bean无效为null问题 Springboot编写CRUD时打听对应数据函数复返null的问题及措置设施

 
友情链接:

Powered by 西西掰阴艺术 @2013-2022 RSS地图 HTML地图

Copyright Powered by站群 © 2013-2022 版权所有