Spring AOP在Spring引导中不能为模型类工作



我的aspect类在启动时调用aspect。

但是在调用下面提到的API之后,模型设置器方法不是通过aspect

处理的
@RestController
@AllArgsConstructor
@Slf4j
public class MyController {
@PostMapping("/terms")
public Mono<ResponseEntity<ModelResponse>> createCountryExceptionRule(@RequestBody ModelRequest model) {
model.setField1("test");
//some statements
}
}
@Data
class ModelRequest{
String field1;
String field2;
}
@Aspect
@Component
class MyAspect {
@Before("execution(public * *.set*(..))")
public void test(JoinPoint joinPoint) {
System.out.println("Before method:" + joinPoint.getSignature());
}
}
@SpringBootApplication
@EnableAspectJAutoProxy(proxyTargetClass=true)
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}

我添加的依赖项在

下面
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-webflux</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-aop</artifactId>
</dependency>

如果我通过http请求

调用api,则不会调用aspect我在这里做错了什么,或者我错过了什么?

Spring AOP只在Spring Container托管bean上工作。来自文档:5.2。Spring AOP功能和目标

Spring AOP目前只支持方法执行连接点(建议在Spring bean上执行方法)

createCountryExceptionRule()方法的ModelRequest参数实例不是Spring bean(此处用@Component注释ModelRequest类无效)。

最新更新