学习完老师讲的这节关于操作日志记录的,有几个问题想问下有没有更好的解决方案:
课中讲的日志都是在调用业务服务之后,再调用日志操作记录服务:类似如下:
public void do(){
businessService.save(newB);
sysLogService.saveX(oldB,newB);
}
1.1 这块业务处理do(),真正的业务是 businessService.save(newB),但强加了一段记录操作的日志的服务,会影响业务操作的性能,有没有更好的处理方式
1.2 若 businessService.save(newB) 出错了,但后面的记录操作日志还是会入库,相当于业务操作不成功,但日志却记录了,这也是不正确的,如何处理这种情况 (按上面的描述像把两个操作加在一个事务里就可以,但这好像又回到了上面的问题,业务操作强依赖操作记录了)
2. logType 为何使用接口 而不是枚举,是否枚举更合适一些
3. sysLogService.saveX(oldX,newX) 有没有更通用的方式,因为目前这样多一张表就得加一方法;