设计思路----让业务层专注业务开发,报文封装由aop自动完成。
雏形:
在controller增加切面代码,抓取入参JSON报文和出参对象,使用自定义bean规范报文格式进行返回。
private static final Logger logger = LoggerFactory.getLogger(WebRequestAroundAdvice.class);
@Pointcut("execution(* com.yc.rm.ccms.bus.controller.*.*(..))")
private void anyMethod(){}//定义一个切入点
@Around("anyMethod()")
public Object doBasicProfiling(ProceedingJoinPointpjp) throwsThrowable{
logger.debug("进入环绕通知");
Object[] objs = pjp.getArgs();
Object object = pjp.proceed();//执行该方法
logger.debug(object.toString());
logger.debug("退出方法");
RequestAttributes ra = RequestContextHolder.getRequestAttributes();
ServletRequestAttributes sra=(ServletRequestAttributes)ra;
HttpServletRequest request = sra.getRequest();
logger.debug("request "+request+" sessionid:"+request.getRequestedSessionId());
MsgBean bean = new MsgBean();
bean.setParameter(objs[0]);
bean.setResult(object);
bean.setMethod("");
bean.setSuccess(1);
bean.setTime(now());
returnbean;
}
网友评论