,有这样一个需求,某一个用户的某一种数据只能够在数据库表中出现唯一一条
有这个需求的话,很简单的实现就是不用考虑太多东西,直接写好逻辑:
如果数据库中已经存在那条数据了就把它删掉,否则新插入一条数据,在service...冷静下来想一想,应该是多条请求在同一时刻内发过来的,它们同时判断出数据库当中没有数据,然后同时插入了进去,噢,原来是这个样子,那么这个问题该如何解决呢?...可以在建表的时候,为相关的字段设置唯一索引(也可以设置联合唯一索引),当出现重复数据的时候,自然也就插不进去了,这是保证数据安全的最可靠的方案,为保证安全,这个一定要设置
##### 2.把问题扔给前端或者移动端解决...前端或者移动端可以在提交数据的时候加锁,例如前端提交表单数据的时候,可以用JavaScript把submit设置为disable,直到后端返回数据的时候再设置为enable,等等
##### 3.服务器端自己解决...实现想法
非常值得注意的一点是,我们现在要实现的aop是在SpringMVC,而不是直接在Spring当中,所以,按常理那样在Spring的配置文件当中配置<aop:aspectj-autoproxy