這篇文章主要介紹了Spring Boot2發(fā)布與調(diào)用REST服務(wù)過(guò)程解析,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
創(chuàng)新互聯(lián)-專業(yè)網(wǎng)站定制、快速模板網(wǎng)站建設(shè)、高性價(jià)比平利網(wǎng)站開(kāi)發(fā)、企業(yè)建站全套包干低至880元,成熟完善的模板庫(kù),直接使用。一站式平利網(wǎng)站制作公司更省心,省錢(qián),快速模板網(wǎng)站建設(shè)找我們,業(yè)務(wù)覆蓋平利地區(qū)。費(fèi)用合理售后完善,10年實(shí)體公司更值得信賴。
redis是一個(gè)key-value數(shù)據(jù)庫(kù),支持存儲(chǔ)的value類型包括string(字符串)、list(鏈表)、set(集合)、zset(sorted set --有序集合)和hash(哈希類型)。在Java中,使用較為廣泛的客戶端有Redisson、Jedis。Spring Data Redis模塊默認(rèn)使用Jedis。
開(kāi)發(fā)環(huán)境:IntelliJ IDEA 2019.2.2
Spring Boot版本:2.1.8
一、項(xiàng)目構(gòu)建
1、新建一個(gè)名稱為demo的Spring Boot項(xiàng)目。
2、pom.xml
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-devtools</artifactId> </dependency>
3、application.yml
配置Redis的相關(guān)屬性。
spring: redis: port: 6379 password: 123456 host: localhost
二、實(shí)體類
1、User.java
映射Redis的數(shù)據(jù):
(1) 類使用@RedisHash注解表示User對(duì)象會(huì)以hash類型保存;
(2) 字段id使用@Id注解表示自動(dòng)生成guid;
(3) 字段使用@Indexed表示建立索引,在方法名查詢時(shí)需要設(shè)置此注解;
package com.example.demo.entity; import org.springframework.data.annotation.Id; import org.springframework.data.redis.core.RedisHash; import org.springframework.data.redis.core.index.Indexed; @RedisHash("user") public class User { @Id private String id; @Indexed private String name; @Indexed private Integer age; public String getId() { return id; } public void setId(String id) { this.id = id; } public String getName() { return name; } public void setName(String name) { this.name = name; } public Integer getAge() { return age; } public void setAge(Integer age) { this.age = age; } }
三、數(shù)據(jù)訪問(wèn)層
1、數(shù)據(jù)訪問(wèn)層 UserRepository.java
繼承CrudRepository可以不需要任何實(shí)現(xiàn),擁有基本的CRUD操作。也可以手動(dòng)添加代碼實(shí)現(xiàn)方法名查詢。
package com.example.demo.repository; import com.example.demo.entity.User; import org.springframework.data.repository.CrudRepository; import java.util.List; public interface UserRepository extends CrudRepository<User,String> { //方法名查詢:根據(jù)字段name查詢 List<User> findByName(String name); //方法名查詢:根據(jù)字段name和age的And查詢 List<User> findByNameAndAge(String name, Integer age); //方法名查詢:根據(jù)字段name和age的Or查詢 List<User> findByNameOrAge(String name, Integer age); }
四、業(yè)務(wù)層
1、UserRepository.java
package com.example.demo.service; import com.example.demo.entity.User; import com.example.demo.repository.UserRepository; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.util.ArrayList; import java.util.Iterator; import java.util.List; @Service public class UserService { @Autowired UserRepository userRepository; public List<User> getUsers(){ Iterable<User> users = userRepository.findAll(); List<User> datas = new ArrayList<User>(); for(Iterator<User> it = users.iterator(); it.hasNext();){ User u = it.next(); datas.add(u); } return datas; } public void save(User user) { userRepository.save(user); } public List<User> findByName(String name){ return userRepository.findByName(name); } public List<User> findByNameAndAge(String name, Integer age){ return userRepository.findByNameAndAge(name, age); } public List<User> findByNameOrAge(String name, Integer age){ return userRepository.findByNameOrAge(name, age); } }
五、控制器
1、UserController.java
package com.example.demo; import com.example.demo.entity.User; import com.example.demo.service.UserService; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import javax.annotation.Resource; import java.util.List; @RestController public class UserController { @Resource UserService userService; @RequestMapping("/save") public String save(){ for(int i=1;i<=20;i++){ User user = new User(); user.setName("a" + i); user.setAge(i); userService.save(user); } return "添加成功"; } @RequestMapping("/getUsers") public List<User> getUsers(){ List<User> users = userService.getUsers(); return users; } @RequestMapping("/findByName") public List<User> findByName(String name){ return userService.findByName(name); } @RequestMapping("/findByNameAndAge") public List<User> findByNameAndAge(String name, Integer age){ return userService.findByNameAndAge(name, age); } @RequestMapping("/findByNameOrAge") public List<User> findByNameOrAge(String name, Integer age){ return userService.findByNameOrAge(name, age); } }
啟動(dòng)服務(wù)器,瀏覽器訪問(wèn):http://localhost:8080/save 生成20條測(cè)試數(shù)據(jù),訪問(wèn)http://localhost:8080/getUsers,頁(yè)面顯示如下:
[{"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}]
其它控制器方法略。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持創(chuàng)新互聯(lián)。
本文題目:SpringBoot2和Redis例子實(shí)現(xiàn)過(guò)程解析
網(wǎng)頁(yè)鏈接:http://muchs.cn/article16/gepggg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供商城網(wǎng)站、網(wǎng)站內(nèi)鏈、品牌網(wǎng)站制作、ChatGPT、品牌網(wǎng)站建設(shè)、網(wǎng)頁(yè)設(shè)計(jì)公司
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)