前提
プログラミング初心者で、javaとSpring Frameworkを学習しております。
下記記事を参考にredisに対してsample dataをpost/getできるようなサンプルアプリを構築しようとしております
https://qiita.com/yut_arrows/items/07eabf48235d04331f9e
お伺いしたいこと
記事にある、下記コードの中で@getMappingアノテーション以降に
opsForvalue().get(xxx)
opsForvalue().range(xxx)
opsForvalue().entries(xxx)
というメソッドがあるのですが、これがどのクラスに属するメソッドのなのか見つけられずお伺いしたいです。
java
1 2 3@RestController 4@RequestMapping(value = "/SampleRedis") 5public class RedisSampleController { 6 7 @Autowired 8 private StringRedisTemplate redisTemplate; 9 10 @PostMapping 11 public void post(@RequestBody RedisSampleData redisSampleData) { 12 redisTemplate.delete("redis-tutorial:string"); 13 redisTemplate.opsForValue() 14 .set("redis-tutorial:string", redisSampleData.getString()); 15 redisTemplate.delete("redis-tutorial:list"); 16 redisTemplate.opsForList() 17 .rightPushAll("redis-tutorial:list", 18 redisSampleData.getList().toArray(new String[0])); 19 redisTemplate.delete("redis-tutorial:map"); 20 redisTemplate.opsForHash() 21 .putAll("redis-tutorial:map", redisSampleData.getMap()); 22 } 23 24 @GetMapping 25 public RedisSampleData get() { 26 RedisSampleData redisSampleData = new RedisSampleData(); 27 redisSampleData.setString( 28 redisTemplate.opsForValue() 29 .get("redis-tutorial:string") 30 ); 31 redisSampleData.setList( 32 redisTemplate.opsForList() 33 .range("redis-tutorial:list", 0, -1) 34 ); 35 redisSampleData.setMap( 36 redisTemplate.<String, String>opsForHash() 37 .entries("redis-tutorial:map") 38 ); 39 return redisSampleData; 40 } 41}
理解していること(理解していると思っていること)
- opsForvalue()メソッドはStringredisTemplateの継承元である、RedisTemplateクラスの中で定義されているメソッドで下記に記載されていることを確認しました。
RedisTemplateクラスのDoc
https://docs.spring.io/spring-data/redis/docs/current/api/org/springframework/data/redis/core/RedisTemplate.html#opsForValue--
- get()やrange()やentries()のメソッドは、redisTemplateの元になっているクラスであるStringRedisTemplateクラス、或いはその親クラスで定義されているはずだと推測しております。が、StringRedisTemplateクラス配下のメソッド、及びRedisTemplateクラス、RedisAccessorクラス、java.lang.Objectクラスにおいても該当のメソッドが見つからず、どこで定義されているものなのかどこを参照すればオプションについて確認できるのか知りたいです。
StringRedisTemplateクラスのdoc
https://spring.pleiades.io/spring-data/redis/docs/current/api/org/springframework/data/redis/core/StringRedisTemplate.html
- もしくは、opsForValue、opsForListを定義しているクラスの配下にあるかもしれないと思い、opsForValueとopsForListをクラスメソッドに持つ、RedisOperationsインターフェースを確認しましたがget, range, entriesのメソッドについては見つかりませんでした。
RedisOperationsインターフェースのdoc
https://docs.spring.io/spring-data/redis/docs/current/api/org/springframework/data/redis/core/RedisOperations.html

バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2022/10/09 05:26
2022/10/09 08:46 編集