Реализовать простой интерфейс с помощью SpringBoot

Spring Boot задняя часть
Реализовать простой интерфейс с помощью SpringBoot

В предыдущей статье уже было представленоОсновной процесс использования SpringBoot, в этой статье в основном представлена ​​реализация простого интерфейса с проектом SpringBoot, настроенным в этой статье.

Окончательный каталог проекта выглядит следующим образом:

1. Структура каталогов проекта

Это простая структура каталогов, предназначенная только для справки, которая в основном разделена на четыре категории:

  • repository

Унаследованный от JpaRepository, который в основном инкапсулирует действие sql по работе с базой данных, вы можете настроить метод для работы с базой данных или настроить оператор sql для работы с базой данных. репозиторий — мессенджер Jpa и непосредственный оператор базы данных;

  • controller

Перед классом следует обратить внимание на класс интерфейса запроса, класс запроса/ответа и т. д.;

  • service

Обработать экземпляр модели и синхронизировать экземпляр модели с базой данных через репозиторий;

  • model

Экземпляр данных, Entity соответствует таблице в базе данных.

Наконец, есть класс ..Application, который генерируется системой по умолчанию и не нуждается в обработке.

2. Реализация каждого класса

Реализовать два интерфейса типов GET и POST: /список дел /todo/listДобавить

  • TodoController
package com.dcxz.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;


@RestController
public class TodoController {

    @Autowired
    TodoService todoService;
    
    @RequestMapping(value = "/todo/list", method = RequestMethod.GET)
    public TodoResponse getTodoList(@RequestParam long id) {

        Todo todo = todoService.getTodoData(id);

        TodoResponse response = new TodoResponse();
        response.setName(todo.getName());
        //response.setMember(100);
        //response.setCount(20);
        return response;
    }


    @RequestMapping(value = "/todo/listAdd", method = RequestMethod.POST)
    public String addTodoList(@RequestBody AddTodoRequest request) {

        String name = request.getName();
        if (name == null) { throw new RuntimeException("参数错误"); }

        todoService.addTodoData(name);

        return "success!";
    }
}
  • тело запроса и тело ответа
/// AddTodoRequest
package com.dcxz.demo;

public class AddTodoRequest {

    private String name;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }
}


/// TodoResponse
package com.dcxz.demo;

import java.util.Set;

public class TodoResponse {

    private String name;
    private int count;
    private int member;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getCount() {
        return count;
    }

    public void setCount(int count) {
        this.count = count;
    }

    public int getMember() {
        return member;
    }

    public void setMember(int member) {
        this.member = member;
    }
}
  • service
package com.dcxz.demo;


import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Date;

@Service
public class TodoService {

    @Autowired
    TodoRepository todoRepository;

    public void addTodoData(String name) {

        Todo todo = new Todo();
        todo.setName(name);
        todo.setCreateTime(new Date());

        todoRepository.save(todo);
    }


    public Todo getTodoData(long id) {

        Todo todo = todoRepository.findById(id).get();
        return todo;
    }
}
  • Todo
package com.dcxz.demo;


import javax.persistence.*;
import java.util.Date;

@Entity
@Table(name = "s_todo")
public class Todo {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private long id;

    private String name;

    @Column(name = "create_time")
    private Date createTime;


    public long getId() { return id; }
    public void setId(long id) { this.id = id; }

    public String getName() { return name; }
    public void setName(String name) { this.name = name; }

    public Date getCreateTime() { return createTime; }
    public void setCreateTime(Date createTime) { this.createTime = createTime; }
}
  • repository
package com.dcxz.demo;

import org.springframework.data.jpa.repository.JpaRepository;

public interface TodoRepository extends JpaRepository<Todo, Long> {
}

3. Вызов интерфейса

Вы можете проверить, нормальный ли интерфейс, вызвав два написанных выше интерфейса через браузер и PostMan. При звонке проверяйте правильность установки IP-адреса, порта, имени интерфейса и параметров.