Skip to content

xiaozhiliaoo/spring-cassandra-accessor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

9 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

为什么需要spring-cassandra-accessor?

spring-cassandra-accessor基于DataStax Java Driver 3.7 进行封装的。

accessor文档

DataStax Java Driver 使用accessor时候方式如下:

@Accessor
public interface UserAccessor {
    @Query("SELECT * FROM user")
    Result<User> getAll();
}
UserAccessor userAccessor = manager.createAccessor(UserAccessor.class);
Result<User> users = userAccessor.getAll();

但是每次使用时候,都这样会很麻烦,因为很多重复代码,而且不方便管理,于是想着使用时候如下:

@Accessor
public interface UserAccessor {
    @Query("SELECT * FROM user")
    Result<User> getAll();
}

@Autowired
private UserAccessor userAccessor;

那么就需要使用Spring能力将带有@Accessor注解的接口扫描进Bean容器中,并且需要带有自动配置功能,所以设计了如下方案(参考mybatis-spring):

cassandra-accessor

思路

  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。

About

cassandra accessor managed by spring

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages