场景: 项目中引入一个使用切面类来处理 某个业务方法。根据业务需求重写了这个切面类,并在类头上加上了 @Primary注解,但是通过debug发现 业务方法走完后 断点还会先走到引入的切面类里去,然后走到重写的切面类,导致业务数据多加了一条。
解决方法: 剔除引入进来的切面类
@Component public class RemoveRegistyBeanFactoryPostProcessor implements BeanDefinitionRegistryPostProcessor { //移出bean。 accountManageAop是bean的名称 @Override public void postProcessBeanDefinitionRegistry(BeanDefinitionRegistry beanDefinitionRegistry) throws BeansException { if (beanDefinitionRegistry.containsBeanDefinition("accountManageAop")){ beanDefinitionRegistry.removeBeanDefinition("accountManageAop"); } } @Override public void postProcessBeanFactory(ConfigurableListableBeanFactory configurableListableBeanFactory) throws BeansException { } }