在 DemoController.class 中使用 @EnableBinding 导致 spring aop 失败

时间:2021-05-19 07:39:51

标签: java spring spring-cloud spring-aop spring-cloud-stream

在我的应用中,在DemoController.class上使用@EnableBinding导致我的Log Aspect失败,没有更多的日志记录。
并且,如果删除@EnableBinding,日志方面将起作用。

UspeController.class 像这样:

@RestController
@RequestMapping("/yeah/user")
@EnableBinding({OpenFileSystemOutput.class})
public class UspeController {

    @Autowired
    OpenFileSystemOutput openFileSystemOutput; 

    @PutMapping(value = "/applyAccount")
    public Result<?> applyAccount() throws Exception {
        UserMessage userMessage = new UserMessage(UserInfoContext.getUserId());
        openFileSystemOutput.output().send(MessageBuilder.withPayload(userMessage).build());
        return ResultUtils.success("");
    }
}

LOG 像这样的方面:

@Aspect
public class LogAspect {

    @Pointcut("within(com.yeah..*) && @target(org.springframework.web.bind.annotation.RestController) ")
    public void executionService() {

    }

    @Before(value = "executionService()")
    public void doBefore(JoinPoint joinPoint) {
        log.info("Api Interface: [{}], parameters: {}", request.getRequestURI(), JSON.toJSONString(getSerializableObject(joinPoint)));
    }
}

1 个答案:

答案 0 :(得分:1)

从 Spring Cloud Stream 的 3.1.x 版本开始,不推荐使用 EnableBinding。如果可以,请升级您的代码以使用最新的功能模型。有关详细信息,请参阅文档中的 programming model 部分。