spring-data-redis Repositories

11 篇文章 0 订阅
8 篇文章 0 订阅

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查看结果:
不存在key

运行测试成功后查看redis:
这里写图片描述
redis中已经存在刚才插入的user.
这样就可以通过简单的Repository对Redis进行增删改查。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值