Spring Data Cassandra及CassandraRepository、SimpleCassandraRepository是否线程安全?
Spring Data Cassandra 线程安全性说明
Spring Data Cassandra 的核心 Repository 组件是线程安全的,具体细节如下:
CassandraRepository接口的操作线程安全:接口定义的insert、update、findById等标准 CRUD 操作采用无状态设计,最终会委托给底层 Cassandra Java Driver 中线程安全的Session实例执行,多线程环境下可安全调用。SimpleCassandraRepository实现类线程安全:作为CassandraRepository的默认实现,SimpleCassandraRepository本身无状态,未持有任何线程不安全的成员变量。所有数据操作均依赖线程安全的CassandraTemplate和 Cassandra DriverSession,多线程场景下使用该实现不存在线程安全问题。
注意:若自定义扩展 Repository 实现时,自行添加了带状态的成员变量(如非线程安全的缓存对象、可变状态字段),需自行保证这些自定义逻辑的线程安全性,默认 Repository 实现本身无相关隐患。
内容的提问来源于stack exchange,提问作者J. David Saldarriaga
相关产品推荐
相关产品推荐

