有两个方面:ControllerRequestAspect和StockCamponLogAspect。 ControllerRequestAspect建议控制器级bean,它由cglib代理。 StockCamponLogAspect建议服务级bean,它由jdk动态代理代理。
问题是:ControllerRequestAspect的切入点可以检测到正常的http请求,但是当junC测试可以检测到时,StockCamponLogAspect的切入点无法检测到跟随的服务方法。
那么,如何激活StockCamponLogAspect的建议,而其上调用者是另一个代理(由cglib增强)?
这是来自控制器的代码:
@RequestMapping({ "/verifyTransfer" })
@ResponseBody
public JsonResult<Map<String, Object>> agentSaleVerify(Integer transferId, String name, Integer verifyResult, String verifyContent) throws Exception {
return agentSaleExpotService.agentSaleVerify(transferId, name, verifyResult, verifyContent)
}
这是来自junit test的代码:
@Test
@StockCampon
public void updateReleaseNumByStockIdTest() {
Map<String, Object> params = Maps.newHashMap();
params.put("stockId", 2646);
params.put("stockStatus", 1);
params.put("operQualifiedOn", 5);
int num = stockMapper.updateReleaseNumByStockId(params);
System.out.println(num);
}