Java 使用注释指示方法启动/失败/成功的方法
在Java/Spring中有没有一种方法可以通过注释实现以下功能 例如,我有一个方法:Java 使用注释指示方法启动/失败/成功的方法,java,spring,annotations,Java,Spring,Annotations,在Java/Spring中有没有一种方法可以通过注释实现以下功能 例如,我有一个方法: public void deleteObject(Object object) { delete(object); } 我想发送两个审计事件:一个是在方法启动时,另一个是在方法成功完成或抛出异常时 实际上,我可以这样做: public void deleteObject(Object object) { sendAuditEvent("Started deletion of obj
public void deleteObject(Object object) {
delete(object);
}
我想发送两个审计事件:一个是在方法启动时,另一个是在方法成功完成或抛出异常时
实际上,我可以这样做:
public void deleteObject(Object object) {
sendAuditEvent("Started deletion of object");
try {
delete(object);
sendAuditEvent("Finished deleting of object successfully");
} catch (Exception ex) {
sendAuditEvent("Finished deleting object with exception");
throw ex;
}
}
public void deleteObject(Object object) {
startedDeleting(object);
delete(object);
}
@SomeAnnotationOnStartOfMethod
public void startedDeleting(Object object) {
//do nothing
}
public void delete(Object object) {
try {
businessLogicMethodToDelete(object);
methodOnSuccess(object);
} catch (Exception ex) {
methodOnException(object);
throw ex;
}
}
@SomeAnnotationOnSuccess
public void methodOnSuccess(Object object) {
//do nothing
}
@SomeAnnotationOnFailure
public void methodOnException(Object object) {
//do nothing
}
但我想知道是否有一种方法可以通过注释来实现这一点?我更喜欢单独保存审计逻辑,而不是自动连接任何bean来发送审计事件
我脑子里唯一想做的就是这样做:
public void deleteObject(Object object) {
sendAuditEvent("Started deletion of object");
try {
delete(object);
sendAuditEvent("Finished deleting of object successfully");
} catch (Exception ex) {
sendAuditEvent("Finished deleting object with exception");
throw ex;
}
}
public void deleteObject(Object object) {
startedDeleting(object);
delete(object);
}
@SomeAnnotationOnStartOfMethod
public void startedDeleting(Object object) {
//do nothing
}
public void delete(Object object) {
try {
businessLogicMethodToDelete(object);
methodOnSuccess(object);
} catch (Exception ex) {
methodOnException(object);
throw ex;
}
}
@SomeAnnotationOnSuccess
public void methodOnSuccess(Object object) {
//do nothing
}
@SomeAnnotationOnFailure
public void methodOnException(Object object) {
//do nothing
}
但这对我来说并不好
这里有什么更好的设计解决方案呢?您正在寻找的被称为 解决此类问题最常用的工具有:
- (另请参阅关于的教程)
- (另请参阅关于的教程)