Mik*_*lov 5 java spring hibernate spring-data
我有很多实体。对于每个实体,我都有一个扩展CrudRepository. 使用*Repository.save(entity)方法保存每个实体。
我想实现一个这样的记录器:
log 桌子:
logdata 桌子:
save或delete方法运行时,MyRepositoryTrigger 应写入一条日志消息,其中所有字段都更改为字段名称和字段值。但是这样怎么写呢?
对于触发器功能,您必须查看数据库,但很可能它不能保证CrudRepository数据库活动的排他性,因为它是在表/列的创建/删除/更新时设置的。
相反,如果您想模仿触发器功能,意味着要触发某些东西,而不必每次在功能之前/之后都进行设置,CrudRepository#save()/delete()那么您最好使用Spring AOP功能
@After("execution(* my.CrudRepository.save(..))")
public void log(JoinPoint point) {
log.info(point.getSignature().getName() + " was called..");
}
Run Code Online (Sandbox Code Playgroud)
您可以在 Spring Docs 中找到大量 Spring AOP 编程文档
| 归档时间: |
|
| 查看次数: |
9304 次 |
| 最近记录: |