赞
踩
今天写项目的时候,发现一个很诡异的问题,在同一个controller中,增改查操作都是正常的,调用Service删除方法时,报空指针异常,往上找发现@Autowired注入的Service全部为null,上代码:
/**
* 删除表数据
* @param
* @return
*/
@DeleteMapping("/delete/{id}")
private String deleteTool(@PathVariable String id){
try{
astiService.deleteById(id);
}catch (Exception e){
e.printStackTrace();
throw new BusinessException("500","delete failed!");
}
}
查了一下资料,原因在这个方法是用private修饰的,无法匹配org.springframework.aop.support.AopUtils中的
Method[] methods = clazz.getMethods(); 所以无法被代理,从而导致注入失败。
解决方法:
附:
SpringAop与AspectJ的联系与区别
org.springframework.aop.support.AopUtils中关于修饰符部分的代码
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。