spring-data-redis Repositories

SDR中通过支持Repository,操作对于model在缓存中的增删改查,非常方便。
1.Repository
spring-data中对于数据库的增删改查的中央存储库。通过它可以对数据库(redis)进行操作。基本的实现为CrudRepository。
2.EnableRedisRepositories
要通过CrudRepository必须先开启支持Repository。EnableRedisRepositories是一个注解,通过注解它可以开启。其中有些比较重要的属性:


    /**
    * 指定扫描的包与子包下面的Repositories
     */
    String[] basePackages() default {};

    /**
     * 指定Repositories的类
     */
    Class[] basePackageClasses() default {};


    /**
     * 实现类的结尾 默认为Impl
     */
    String repositoryImplementationPostfix() default "Impl";


    /**
     * 查询方法策略
     * CREATE 按照接口名称自动构建查询
     * USE_DECLARED_QUERY 按照用户声明的查询
     * CREATE_IF_NOT_FOUND 先搜索用户声明的,
     * 不存在则自动构建
     *
     */
    Key queryLookupStrategy() default Key.CREATE_IF_NOT_FOUND;

    /**
     *指定Repository的工厂类
     */
    Class repositoryFactoryBeanClass() default RedisRepositoryFactoryBean.class;

    /**
     * 指定Repository的基本
     *
     * @return
     */
    Class repositoryBaseClass() default DefaultRepositoryBaseClass.class;

    /**
     * 指定KeyValueTemplate的引用,默认为
     * redisKeyValueTemplate 
     * 
     *
     * @return
     */
    String keyValueTemplateRef() default "redisKeyValueTemplate";
    /**
     *redisTemplate的引用 默认为
     *redisTemplate
     */
    String redisTemplateRef() default "redisTemplate";

3.配置一个类如:

@Component
@EnableRedisRepositories(redisTemplateRef ="jedisTemplate", basePackages = {"com.pdz"}
                         ,keyValueTemplateRef = "jedisKeyValueTemplate")
public class RedisConfig {

}

4.注解需要缓存的实体,添加关键的两个注解@RedisHash @Id SDR通过这两个注解生成key,如果id的值为 pdz,注解的RedisHash值为user,那么key就为user:pdz

@RedisHash("user")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    @org.springframework.data.annotation.Id
    @Column(name = "userId")
    private String id;

    private String name;

    private Integer age;

    private Timestamp birthday;

    private String bankCard;
    //省略set get方法

5.编写UserRepository接口继承CrudRepository

public interface UserRepository  extends CrudRepository<User, String>  {

}

6.编写测试:

@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration({"classpath:applicationContext.xml","classpath:spring-servlet.xml"})
public class JRedisTest extends TestRoot {


    @Autowired
    private UserRepository userRepository;

    @Test
    public void testRepository() {
        User user = new User();
        user.setAge(19);
        user.setName("aa");
        userRepository.save(user);
    }
}

测试前redis查看结果:
spring-data-redis Repositories_第1张图片

运行测试成功后查看redis:
spring-data-redis Repositories_第2张图片
redis中已经存在刚才插入的user.
这样就可以通过简单的Repository对Redis进行增删改查。

你可能感兴趣的:(java,Spring,redis,spring-data)