4、springboot2.6集成Restful服务

一、前言

我们用redis做数据库 ,使用springboot2.6集成restful服务。
前提:配置好了redis

二、步骤

1、增加依赖

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

我现在完整的pom.xml文件,也是非常少的代码:

<?xml version="1.0" encoding="UTF-8"?>

<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
  <modelVersion>4.0.0</modelVersion>

  <groupId>com.tuyuan</groupId>
  <artifactId>springboot2edu</artifactId>
  <version>1.0-SNAPSHOT</version>

  <name>springboot2edu</name>
  <url>http://www.xiaoke365.cn</url>

  <parent>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-parent</artifactId>
    <version>2.6.3</version>
    <relativePath/> <!-- lookup parent from repository -->
  </parent>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <java.version>11</java.version>
  </properties>

  <dependencies>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
      <groupId>org.springframework.data</groupId>
      <artifactId>spring-data-redis</artifactId>
      <version>2.6.1</version>
    </dependency>
    <dependency>
      <groupId>redis.clients</groupId>
      <artifactId>jedis</artifactId>
    </dependency>
  </dependencies>

  <build>
    <plugins>
      <plugin>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-maven-plugin</artifactId>
      </plugin>
    </plugins>
  </build>
</project>

2、service类

先写好一个用户的service类,非常简单,实现了新增和查询:

package com.tuyuan.springboot2edu.user;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Service;

import java.util.Date;
import java.util.List;

@Service
public class UserService {

    @Autowired
    private RedisTemplate redisTemplate;

    final static String USER_TABLE= "USER_TABLE";
    public boolean saveUser(){

        for(int i =0;i<20;i++){
            User u  = new User();
            u.setAge(i);
            u.setBirtDate(new Date());
            u.setName("damao"+i);
            u.setSex(true);
            u.setPsw("123123");
            redisTemplate.opsForList().leftPush(USER_TABLE,u);
        }
        return true;
    }
    public List getUserAll(){
        return redisTemplate.opsForList().range(USER_TABLE,0,-1);
    }
}

  • 在这个类里把RedisTemplate 通过@Autowired注解引入进来。
  • 这个类要标记成@Service

3、controller层代码

package com.tuyuan.springboot2edu.user;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class UserController {

    public static final Logger log = LoggerFactory.getLogger(UserController.class);

    @Autowired
    UserService userService;

    @RequestMapping(value = "/add")
    public void userAdd(){
        System.out.println("this is user add controller...................");
        boolean b =userService.saveUser();
        System.out.println(b);

    }

    @RequestMapping(value = "/list")
    @ResponseBody
    public List<User> userListAll(){
       List userlistall = userService.getUserAll();
        return  userlistall;
    }
}

  • 类需要注解成@RestController
  • 方法上面增加注解@RequestMapping(value = “/add”) ,以公开出接口,供外部调用。
  • 方法上面增加@ResponseBody ,返回值即可自动生成json格式的数据。比如我们调用新增后,再调用:http://localhost:8081/list ,返回如下json数据:
    在这里插入图片描述

三、说明

1、关键注解

@Controller 标识一个类为控制器。

@RequestMapping URL的映射。

@ResponseBody 返回结果转换为JSON字符串。

@RequestBody 表示接收JSON格式字符串参数。

2、项目中一般没有严格执行restful风格

Restful标准是建议使用 HTTP 的 GET\POST\PUT\DELETE 来区分操作资源。而HTTP Method 本身就对外部不友好,是隐藏的方法,因此一般只使用get和post ,然后把动词加入到 url 中,简单易懂。

GET\POST\PUT\DELETE 的兼容性有待认证,首先是兼容老的系统,大部分 HTTP 应用是基于 GET/POST 来实现的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值