我的web-app(这里没有Spring-MVC,只有核心IOC)使用了很多原型bean,而且大多数都使用了单例dao-bean。单例dao-bean方法是否应该同步,因为许多不同的原型bean(来自不同的请求)可能在同一时刻使用相同的方法id dao?
例如,dao方法
return new ResponseEntity<String>(HttpStatus.BAD_REQUEST);
答案 0 :(得分:0)
取决于。
正如您在评论中所写,您使用的是jdbc。 JDBC API上的所有操作are synchronized并执行auto-commit by default。因此,如果您共享JDBC连接,但您的方法不需要事务(例如,它不会对之前几行选择的数据进行更新),而不需要同步
但是,如果您需要事务,则需要同步此方法或为每个线程提供自己的JDBC连接,如each connection is also a transaction。为此,您可以每次在方法中打开新连接,或者让Spring handle that problem