Spring Boot 2和Redis例子实现过程解析
这篇文章主要介绍了SpringBoot2发布与调用REST服务过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
Redis是一个key-value数据库,支持存储的value类型包括string(字符串)、list(链表)、set(集合)、zset(sortedset--有序集合)和hash(哈希类型)。在Java中,使用较为广泛的客户端有Redisson、Jedis。SpringDataRedis模块默认使用Jedis。
开发环境:IntelliJIDEA2019.2.2
SpringBoot版本:2.1.8
一、项目构建
1、新建一个名称为demo的SpringBoot项目。
2、pom.xml
org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-data-redis org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-devtools
3、application.yml
配置Redis的相关属性。
spring: redis: port:6379 password:123456 host:localhost
二、实体类
1、User.java
映射Redis的数据:
(1)类使用@RedisHash注解表示User对象会以hash类型保存;
(2)字段id使用@Id注解表示自动生成guid;
(3)字段使用@Indexed表示建立索引,在方法名查询时需要设置此注解;
packagecom.example.demo.entity; importorg.springframework.data.annotation.Id; importorg.springframework.data.redis.core.RedisHash; importorg.springframework.data.redis.core.index.Indexed; @RedisHash("user") publicclassUser{ @Id privateStringid; @Indexed privateStringname; @Indexed privateIntegerage; publicStringgetId(){ returnid; } publicvoidsetId(Stringid){ this.id=id; } publicStringgetName(){ returnname; } publicvoidsetName(Stringname){ this.name=name; } publicIntegergetAge(){ returnage; } publicvoidsetAge(Integerage){ this.age=age; } }
三、数据访问层
1、数据访问层UserRepository.java
继承CrudRepository可以不需要任何实现,拥有基本的CRUD操作。也可以手动添加代码实现方法名查询。
packagecom.example.demo.repository; importcom.example.demo.entity.User; importorg.springframework.data.repository.CrudRepository; importjava.util.List; publicinterfaceUserRepositoryextendsCrudRepository{ //方法名查询:根据字段name查询 List findByName(Stringname); //方法名查询:根据字段name和age的And查询 List findByNameAndAge(Stringname,Integerage); //方法名查询:根据字段name和age的Or查询 List findByNameOrAge(Stringname,Integerage); }
四、业务层
1、UserRepository.java
packagecom.example.demo.service; importcom.example.demo.entity.User; importcom.example.demo.repository.UserRepository; importorg.springframework.beans.factory.annotation.Autowired; importorg.springframework.stereotype.Service; importjava.util.ArrayList; importjava.util.Iterator; importjava.util.List; @Service publicclassUserService{ @Autowired UserRepositoryuserRepository; publicListgetUsers(){ Iterable users=userRepository.findAll(); List datas=newArrayList (); for(Iterator it=users.iterator();it.hasNext();){ Useru=it.next(); datas.add(u); } returndatas; } publicvoidsave(Useruser){ userRepository.save(user); } publicList findByName(Stringname){ returnuserRepository.findByName(name); } publicList findByNameAndAge(Stringname,Integerage){ returnuserRepository.findByNameAndAge(name,age); } publicList findByNameOrAge(Stringname,Integerage){ returnuserRepository.findByNameOrAge(name,age); } }
五、控制器
1、UserController.java
packagecom.example.demo; importcom.example.demo.entity.User; importcom.example.demo.service.UserService; importorg.springframework.web.bind.annotation.RequestMapping; importorg.springframework.web.bind.annotation.RestController; importjavax.annotation.Resource; importjava.util.List; @RestController publicclassUserController{ @Resource UserServiceuserService; @RequestMapping("/save") publicStringsave(){ for(inti=1;i<=20;i++){ Useruser=newUser(); user.setName("a"+i); user.setAge(i); userService.save(user); } return"添加成功"; } @RequestMapping("/getUsers") publicListgetUsers(){ List users=userService.getUsers(); returnusers; } @RequestMapping("/findByName") publicList findByName(Stringname){ returnuserService.findByName(name); } @RequestMapping("/findByNameAndAge") publicList findByNameAndAge(Stringname,Integerage){ returnuserService.findByNameAndAge(name,age); } @RequestMapping("/findByNameOrAge") publicList findByNameOrAge(Stringname,Integerage){ returnuserService.findByNameOrAge(name,age); } }
启动服务器,浏览器访问:http://localhost:8080/save生成20条测试数据,访问http://localhost:8080/getUsers,页面显示如下:
[{"id":"8da6f5ad-b24c-4725-9c69-4d709369eac7","name":"a14","age":14},{"id":"b62b2028-4d41-41be-aeff-e2b56776dd87","name":"a10","age":10},{"id":"c8330a2a-902b-4db9-b262-65d182027eac","name":"a6","age":6},{"id":"cc7b5a91-0ca6-4577-891a-835a1cebef6f","name":"a11","age":11},{"id":"09f8f2e3-2cf8-48f7-a535-1897b7cc0f35","name":"a1","age":1},{"id":"3344413f-8128-42ad-8343-304005c87e5f","name":"a7","age":7},{"id":"db74f020-f3e3-4422-8013-c515b9d8551d","name":"a5","age":5},{"id":"7fc46621-ecaf-47c6-bae3-f2061104d802","name":"a2","age":2},{"id":"dcdcdda0-bab0-450a-b6e6-fdce410b01fd","name":"a8","age":8},{"id":"b456f4fd-158f-43e9-86cf-0340b809ffab","name":"a12","age":12},{"id":"4ffb6019-21b1-4880-8ec3-2703f561d028","name":"a15","age":15},{"id":"7e45d738-7a31-4b24-928e-a9da3583ef6d","name":"a4","age":4},{"id":"7992e502-4049-4d40-bc35-aab72adbe335","name":"a19","age":19},{"id":"3df7b2ac-6bb0-496d-91d2-05ac763e5f68","name":"a13","age":13},{"id":"7c94edba-f91e-42fe-b8b4-7c6a9ba82747","name":"a3","age":3},{"id":"39402099-17ba-4368-ac23-dd5e9fe1d8ae","name":"a17","age":17},{"id":"e49750d6-ce80-4764-87d3-1566d9263360","name":"a18","age":18},{"id":"499e1a9a-b947-4eec-8d37-d1cdf7ac1179","name":"a16","age":16},{"id":"04f0cb4e-c17b-4b4e-b135-e6c222aace21","name":"a9","age":9},{"id":"ac48ce35-5a38-48b8-90b9-6b999c3fd242","name":"a20","age":20}]
其它控制器方法略。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。