Spring AOP对各作用域的支持
写这篇文章的起因是想用aop做一个方法进出时日志的打印,然后就找文章学习呗,写demo的时候却发现问题很多,对作用域的支持几乎没有撒。
说白了,Spring AOP的拦截,仅限于在进出最小原子Bean时通过的方法。
这样的话,私有和可继承这两个作用域就不会被支持了。
包括切面表达式里的作用域标识,也是无用的?
当然,这只是我个人的理解,存在许多疑惑没时间去解决。
我想加日志的方法都是类内部可继承作用域的方法:
/**
* 入口处理类
*
* @param eventType 事件类型
*/
public void deal(String eventType, JsonObject payload) throws CmdbException {
log.info("service 处理事件 {}", eventType);
if (eventType.endsWith("create.end")) {
create(payload);
} else if (eventType.endsWith("delete.end")) {
delete(payload);
} else if (eventType.endsWith("update") || eventType.endsWith("update.end")) {
update(payload);
} else {
log.error("service无法识别事件{}", eventType);
}
}
/**
* 创建
*
* @param object json对象payload
* @throws CmdbException cmdb处理异常
*/
protected abstract void create(JsonObject object) throws CmdbException;
/**
* 删除
*
* @param object json对象payload
* @throws CmdbException cmdb处理异常
*/
protected abstract void delete(JsonObject object) throws CmdbException;
/**
* 更新
*
* @param object json对象payload
* @throws CmdbException cmdb处理异常
*/
protected abstract void update(JsonObject object) throws CmdbException;
就是这样,我想在create、update和delete的进出时打印日志…
若有人知道解决方法,还请联系我…