snpyeso
2021-10-24 18:07
采纳率: 0%
浏览 215
已结题

@poincut 后面的参数如何动态化 Spring boot AOP

@Pointcut("execution(* com.xxxx.aop.MessageSender.*(..))")
我们都知道这样可以定义切入点,但是
Pointcut后面的参数如何实现动态化
比如 @PointCut(configProperty.getExecutionPress())
这样会被提示报错 因为他需要常量字符

我很想把切入点做成application.yml里可配置,自定义一个logger-starter
客户端只需添加我的starter依赖,然后配置自己的yml设置需要做哪些类的跟踪即可

  • 好问题 提建议
  • 收藏

4条回答 默认 最新

  • a1767028198 2021-10-24 20:18

    那还不如自己去写advisor,methodInterceptor,人家也没预留扩展点给你

    评论
    解决 无用
    打赏 举报
  • zcl_1991 2021-10-25 15:50

    用自定义注解做切点感觉更简单方便

    评论
    解决 无用
    打赏 举报
  • qq_34370249 2021-10-25 17:54

    Point中的参数为什么要动态化呢?如果有不同的处理,那就写一个新的方法就好了啊。切面不是为了将非业务的共性的问题提取出来,单独处理吗?如果有不同的话,不就是处理的业务逻辑不一样了吗?如果非要配置的话,可以使用@value注解,对static属性的set方法进行修饰,这样就可以对static属性进行赋值了。

    评论
    解决 无用
    打赏 举报
  • 两个猕猴桃 2021-10-25 19:54

    不要个别的写
    @Pointcut("execution(* com.xxxx.aop.MessageSender.*(..))")
    写一个总体的 类似于 ** 之类的自己查一下
    所有的方法都进入一个你自己定义的切点,
    然后在你的切点里再判断进来的方法名,根据不同的方法名执行不同的逻辑。

    评论
    解决 无用
    打赏 举报

相关推荐 更多相似问题