java 为什么@GetMapping不能像我预期的那样工作?

qgelzfjb  于 2023-02-02  发布在  Java
关注(0)|答案(1)|浏览(231)

我开始学习Spring,并一直在看Amigoscode的https://youtu.be/9SGDpanrc8U视频。我跟着他做了什么,但我的代码与他的不同,也许我错过了什么,但我花了两个小时试图找出什么不工作,什么都不工作。以下是代码

package com.example.demo;

import java.time.LocalDate;
import java.time.Month;
import java.util.List;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
import com.example.demo.Student.*;
@SpringBootApplication
@RestController
public class Demo2Application {

    public static void main(String[] args) {
        SpringApplication.run(Demo2Application.class, args);
    }
    
    @GetMapping
    public List<Student> hello() {
        return List.of(
                new Student(
                        1L,
                        "Mariam",
                        "Marim.jamal@gmail.com",
                        LocalDate.of(2000, Month.JANUARY, 5),
                        21
                    )
                );
                
    }
}

学生类

package com.example.demo.Student;

import java.time.LocalDate;

public class Student {
    private long id;
    private String name;
    private String email;
    private LocalDate dob;
    private Integer age;
    
    public Student(Long id, String name, String email, LocalDate dob, Integer age) {
        this.id = id;
        this.name = name;
        this.email = email;
        this.dob = dob;
        this.age = age;
    }
    
    public Student(String name, String email, LocalDate dob, Integer age) {
        this.name = name;
        this.email = email;
        this.dob = dob;
        this.age = age;
    }
    
    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 String getEmail() {
        return email;
    }
    
    public void setEmail(String email) {
        this.email = email;
    }
    
    public LocalDate getDob() {
        return dob;
    }
    
    public void setDob(LocalDate dob) {
        this.dob = dob;
    }
    
    public Integer getAge() {
        return age;
    }
    
    public void setAge(Integer age) {
        this.age = age;
    }
    
    @Override
    public String toString() {
        // TODO Auto-generated method stub
        return "Student{" +
                "id=" + id +
                ", name='" + name + "'" +
                ", email='" + email +"'" +
                ", dob=" + dob +
                ", age=" + age +
                "}";
    }
}

当他运行视频中的代码时,网站会加载一个列表,其中包含一个学生的详细信息。当我运行它时,它显示如下:
Whitelabel Error Page \n This application has no explicit mapping for /error, so you are seeing this as a fallback
我检查了堆栈溢出和其他网站的这个问题,大多数人说,这是因为控制器不处理什么做的情况下出错,但这不是这种情况。和其他人说,这是因为 Package 层次结构,我试图分裂Demo2Application成两个,一个为应用程序的一个为RestController,并把他们在层次结构的顺序,其中Demo2Application显示在RestController之前,仍然不起作用,所以我将拆分反转回视频显示的内容。
下面是我运行时的日志:
Log
真的很沮丧,会感激你给我的一切。

jljoyd4f

jljoyd4f1#

也许你可以给注解GetMapping赋值,比如@GetMapping("/query")。然后通过这个url http://localhost:8080/query来访问。

相关问题