我已经很长时间没有做任何编程相关的事情了(5天),现在我很愚蠢
代码
inMemoryStudentServiceImpl.java
package com.justdeax.coursepractice.Student;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
@AllArgsConstructor
public class inMemoryStudentServiceImpl implements StudentService {
private final StudentDao repo;
@Override
public List<Student> findAll() {
return repo.findAll();
}
@Override
public Student saveStudent(Student student) {
return repo.saveStudent(student);
}
@Override
public Student findByEmail(String email) {
return repo.findByEmail(email);
}
@Override
public Student updateStudent(Student student) {
return repo.updateStudent(student);
}
@Override
public void deleteStudent(String email) {
repo.deleteStudent(email);
}
}
字符串
StudentController.java
package com.justdeax.coursepractice.Student;
import lombok.NonNull;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.util.List;
@RestController
@RequestMapping("/api/v1/students")
@RequiredArgsConstructor
public class StudentController {
@NonNull
private final StudentService services;
@GetMapping
public List<Student> findAll() {
return services.findAll();
}
@PostMapping("save_student")
public Student saveStudent(Student student) {
return services.saveStudent(student);
}
@GetMapping("/{email}")
public Student findByEmail(@PathVariable String email) {
return services.findByEmail(email);
}
@PutMapping("update_student")
public Student updateStudent(Student student) {
return services.updateStudent(student);
}
@DeleteMapping("delete_student/{email}")
public void deleteStudent(@PathVariable String email) {
services.deleteStudent(email);
}
}
型
StudentService.java
package com.justdeax.coursepractice.Student;
import java.util.List;
public interface StudentService {
List<Student> findAll();
Student saveStudent(Student student);
Student findByEmail(String email);
Student updateStudent(Student student);
void deleteStudent(String email);
}
型
Student.java
package com.justdeax.coursepractice.Student;
import lombok.*;
import java.time.LocalDate;
@Data
@Builder
public class Student {
private String firstName;
private String lastName;
private Integer age;
private LocalDate dataOfBirth;
private String email;
}
型
StudentDao.java
package com.justdeax.coursepractice.Student;
import org.springframework.stereotype.Repository;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.IntStream;
@Repository
public class StudentDao {
private final List<Student> STUDENTS = new ArrayList<>();
public List<Student> findAll() {
return STUDENTS;
}
public Student saveStudent(Student student) {
STUDENTS.add(student);
return student;
}
public Student findByEmail(String email) {
return STUDENTS.stream()
.filter(e -> e.getEmail().equals(email))
.findFirst()
.orElse(null);
}
public Student updateStudent(Student student) {
var studentIndex = IntStream.range(0, STUDENTS.size())
.filter(i -> STUDENTS.get(i).getEmail().equals(student.getEmail()))
.findFirst()
.orElse(-1);
if (studentIndex > -1) {
STUDENTS.set(studentIndex, student);
return student;
}
return null;
}
public void deleteStudent(String email) {
var student = findByEmail(email);
if (student != null) STUDENTS.remove(student);
}
}
型
使用次数:
- Lombok岛
- Sping Boot Starter Web
- Spring Boot 起动器测试
你的名字:
POST请求时:localhost:8080/API/v1/students/保存_student这个json是这样写的:
{
"firstName": "abc",
"lastName": "def",
"age": "99",
"dataOfBirth": "1000-10-10",
"email": "[email protected]"
}
型
在这个请求之后,响应输出为相同的json,但到处都是null,为什么?
{
"firstName": null,
"lastName": null,
"age": null,
"dataOfBirth": null,
"email": null
}
型
1条答案
按热度按时间1bqhqjot1#
我认为当你收到一个包含JSON数据的POST请求时,你需要在
saveStudent
方法中注解@RequestBody
注解,让Spring知道传入的JSON应该被转换成一个Student对象。字符串