我当前的项目(基于Spring MVC)要求监控用户活动,如更新,删除等。 我想/寻找一种api方法,其中我可以传递命令和实体对象。比较它们的值并将它们与字段名称一起存储在数据库中。 如果有人可以使用 java with MongoDB或MySQL作为后端来引导我或建议最佳方法,那将是很棒的。
提前致谢
答案 0 :(得分:1)
如果您打算监控各种活动,例如更新,删除等您可以执行以下操作:
@Service
public class MyUpdateServiceClass {
//Check for preconditions
LogActivity.logUserActivity(oldObject, newObject);
}
@Service
public class MyDeleteServiceClass {
//Check for preconditions
LogActivity.logUserActivity(T oldObject, T newObject);
}
public interface LogActivity {
public void logUserActivity(T oldObject, T newObject);
}
public class LogUpdateActivity implements LogActivity {
@Override
public void logUserActivity(T oldObject, T newObject) {
//Use reflection to get all the fields and iterate and check for modifications and then log accordingly
}
public class LogDeleteActivity implements LogActivity {
@Override
public void logUserActivity(T oldObject, T newObject) {
//Simply log delete, or whatever your requirement is
}
根据您来自用户的传入请求,您可以创建工厂以在服务方法中生成LogActivity接口的相应实现。您只需创建一个新实现即可轻松扩展LogActivity。
我希望这会有所帮助。