Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 在运行时覆盖/禁用方面_Java_Spring Boot_Aspectj - Fatal编程技术网

Java 在运行时覆盖/禁用方面

Java 在运行时覆盖/禁用方面,java,spring-boot,aspectj,Java,Spring Boot,Aspectj,在我的SpringBoot应用程序中,我对外部jar有一个依赖关系,它包含一个用注释标记的类,该jar中的@Aspect在该类上被触发 我使用mu自定义注释对dao方法进行了注释: @MyAnnotation public void save(MyEntity entity) { super.save(entity); } 我有一个方面,它有一个建议,在调用save()方法后发送消息: @Aspect public class MySuperAspect { @Autowired

在我的SpringBoot应用程序中,我对外部jar有一个依赖关系,它包含一个用注释标记的类,该jar中的@Aspect在该类上被触发

我使用mu自定义注释对dao方法进行了注释:

@MyAnnotation
public void save(MyEntity entity)
{
   super.save(entity);
}
我有一个方面,它有一个建议,在调用save()方法后发送消息:

@Aspect
public class MySuperAspect
{
  @Autowired
  MessageSender messageSender;

  @Around("@annotation(MyAnnotation) && args(entity)")
  public void sendMessage(MyEntity entity)
  {
     messageSender.send();
  }
}
我确实需要jar中的Dao方法,但我想为它禁用aspect

Aspect是通过SpringXML配置创建的,它也在我使用的jar中

我可以修改方面本身,但这是不可取的,因为它不仅被我的spring boot应用程序使用

我试过:

  • 在我的spring boot应用程序中禁用xml配置扫描
  • 将xml配置更改为注释,并在扫描中对其进行过滤
  • 在要由属性禁用的方面上添加@ConditionalOnPression和@ConditionalOnProperty

到目前为止,唯一有效的方法是使用属性添加@Value注释,通过该属性我可以控制通知中的逻辑,但我很好奇,这是唯一的方法还是我可能遗漏了什么?

您需要停止spring boot扫描此类。。。因为必须将其配置为扫描此特性,否则它将无法拾取和应用特性。

您需要提供更多信息。这方面做什么。定义了什么切入点来触发它。另外,请确保共享一些代码。