https://github.com/xiaozhiliaoo/spring-cassandra-accessor
cassandra accessor managed by spring
https://github.com/xiaozhiliaoo/spring-cassandra-accessor
Last synced: about 2 months ago
JSON representation
cassandra accessor managed by spring
- Host: GitHub
- URL: https://github.com/xiaozhiliaoo/spring-cassandra-accessor
- Owner: xiaozhiliaoo
- Created: 2022-11-11T08:08:41.000Z (over 2 years ago)
- Default Branch: main
- Last Pushed: 2024-11-01T17:42:04.000Z (7 months ago)
- Last Synced: 2025-03-22T21:35:50.691Z (2 months ago)
- Language: Java
- Size: 86.9 KB
- Stars: 2
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# 为什么需要spring-cassandra-accessor?
spring-cassandra-accessor基于[DataStax Java Driver 3.7](https://docs.datastax.com/en/developer/java-driver/3.7/index.html) 进行封装的。
[accessor文档](https://docs.datastax.com/en/developer/java-driver/3.7/manual/object_mapper/using/index.html#accessors)
DataStax Java Driver 使用accessor时候方式如下:
```java
@Accessor
public interface UserAccessor {
@Query("SELECT * FROM user")
Result getAll();
}
UserAccessor userAccessor = manager.createAccessor(UserAccessor.class);
Result users = userAccessor.getAll();
```但是每次使用时候,都这样会很麻烦,因为很多重复代码,而且不方便管理,于是想着使用时候如下:
```java
@Accessor
public interface UserAccessor {
@Query("SELECT * FROM user")
Result getAll();
}@Autowired
private UserAccessor userAccessor;
```那么就需要使用Spring能力将带有@Accessor注解的接口扫描进Bean容器中,并且需要带有自动配置功能,所以设计了如下方案(参考mybatis-spring):
# 思路
1. 第一步:AccessorFactoryBean(手动配置)
2. 第二步:AccessorScannerConfigurer(手动配置)
3. 第三步:AccessorScannerRegistrar(注解配置)# 类功能
1. @AccessorScan 注解:用来标记扫描哪些包下面的@Accessor。
2. AccessorScanner:扫描带有Accessor注解的接口。
3. AccessorScannerConfigurer:配置AccessorScanner的属性,配置完开始扫描。
4. AccessorScannerRegistrar:扫描@AccessorScan,扫描完注册到Bean容器中。
5. AccessorFactoryBean:用来管理session和mappingManager。
6. CqlSessionFactoryBean:创建CqlSession工厂Bean。