SPRING MVC 多用户并发,数据错误
框架: springmvc + mybatis
业务: 在多用户并发购买商品的时候,发现用户总的购买量>某商品的剩余库存。
比如某商品库存为100个,但在多用户购买的情况下,sum(用户购买的的总量) > 100了。
目前实现方式:
<tx:advice id="txAdvice" transaction-manager="transactionManager">
<tx:attributes>
<tx:method name="*" isolation="READ_COMMITTED"/>
</tx:attributes>
</tx:advice>
<aop:config expose-proxy="true">
<aop:pointcut id="txPointcut"
expression="execution(* com.my.abc..*.*(..))" />
<aop:advisor pointcut-ref="txPointcut" advice-ref="txAdvice" />
</aop:config>
Controller调用service层buy()方法, Controller加了 @Scope("prototype")。
业务逻辑都写在service层,service层首先判断了用户购买的数量是否大于剩余库存。如果小于等于,才可以购买。
要怎么样解决这个问题,请高手指点????