Springboot项目实训--day1

目录

一、软件安装

二、软件的简单了解

三、基础知识应用

1、四个常用注释

2、尝试新建类

3、控制反转(IOC容器)

4、返回数据给浏览器

5、浏览器传回数据给服务器

易错点


一、软件安装

需要安装的软件是idea专业版,刚使用的时候可以使用30天,后面可以找方法去破解。

安装的步骤很多博主都讲过,这里就不再重复了。

IntelliJ IDEA 下载安装及配置使用超详细图文教程_idea下载安装配置教程-CSDN博客

二、软件的简单了解

在新建项目的时候,首先需要找到setting修改settings.xml这个文件的,默认路径在C盘,这里老师发了个文件,修改之后我放到了D:\moven_repository这个路径下,文件在上方显示。

该文件需要修改的内容如下:

然后修改setting中的:

修改完成之后,

三、基础知识应用

1、四个常用注释

java 复制代码
@RestController //用在类上面的,要求类在浏览器访问就用这个

@RequestMapping //在后面添加一个字符串,用作路径的前缀,从而使得路径不易重复

@Autowired //对象类型,自动装配

@Value //简单类型赋值

以下是对这四个注解(注释)的简单解释(来自文心一言):

  1. @RestController: 这是一个特殊的@Controller注解,用于表明该类是一个RESTful Web服务的控制器。它告诉Spring框架,此类中的方法返回的是领域对象,而不是视图,通常这些对象会被自动转换为JSON或XML格式的响应。
  2. @RequestMapping: 用于映射web请求(如HTTP GET, POST等)到特定的处理器函数、方法或类。你可以使用它来定义URL模式、HTTP方法、请求参数等。
  3. @Autowired: 这是Spring框架提供的依赖注入注解。它告诉Spring自动装配bean的依赖关系。当Spring发现@Autowired注解时,它会在应用上下文中查找一个匹配的bean,并将其注入到被注解的字段、构造函数或方法中。
  4. @Value: 用于注入值(如配置文件中的属性)到字段、方法参数或方法返回值。你可以使用它来读取如.properties.yml等配置文件中的属性值,并将其注入到Spring管理的bean中。

注意:@RequestMapping通常与@GetMapping@PostMapping等一起使用,或者直接放在方法上来定义具体的请求映射。而在类上使用@RequestMapping时,它通常用于为该类下的所有方法提供一个共同的路径前缀。

2、尝试新建类

新建类的时候,在命名时写test.demo1表示新建一个包test,然后在这个包下新建一个.java文件:

使用这种方法就不用专门去新建包,然后再写文件了。

新建完成之后,就可以在这个里面进行Java代码的编写了。

首先使用两个注释进行一个最简单的代码编写,编写之后再浏览器显示返回值:

java 复制代码
@RestController//有该注解,就可以让下面的类在浏览器访问
public class demo1 {

    @RequestMapping("/helloYa") //这里指定路径,自己定义就好
    public String hello(){
        return "hello Ya";//会将这个返回到浏览器中
    }
}

然后在地址栏中输入

java 复制代码
localhost:8080/helloYa  //默认端口8080,这里可能会有端口冲突,这里就需要解决一下端口冲突的问题

端口冲突的解决查看这篇文章(侵权联系删除):

WIN10 关闭占用某一端口号的进程_win10如何关闭指定端口的程序-CSDN博客

最终成功解决冲突之后,显示如下:

上面是直接在新建的类中进行操作,也可以引用其他的类,比如在这里我们新建一个Student类,并添加相应的方法和属性:

java 复制代码
package com.example.demo1.test;


public class student {
    private int id;
    private String name;
    private int age;

    public String test(){
        System.out.println("加油!");
        return "";
    }
//    public int getId() {
//        return id;
//    }
    public void setId(int id) {
        this.id = id;
    }
    public void setName(String name){
        this.name=name;
    }
    public void setage(int age){
        this.age=age;
    }

}

在demo1中使用@Autowired进行对象类型的自动匹配时,必须要先在所要引用的类中使用@Component注解。

java 复制代码
@Component //泛指组件,当组件不好归类的时候,我们可以使用这个注解进行标注,标识为一个Bean。 

注解之后,就进行@Autowired和@Value两个注解的使用

java 复制代码
package com.example.demo1.test;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class demo1 {
    
    @Autowired
    private student student;

    @Value("QSJ")
    private String name;

    @RequestMapping("/helloYa") //这里指定路径
    public String hello(){
        System.out.println(name);
        student.test();
        return "hello Ya";//会将这个返回到浏览器中
    }
}

在服务器的控制台显示:

在浏览器中显示:

上面简单使用了一下@Autowired和@Value两个注解,下面学习如何将服务器中写的数据传给浏览器。

3、控制反转(IOC容器)

在之前使用student类的时候需要自己new一个相应的对象,但是Spring会自动new一个对象,然后放到它的容器中,使用的时候直接用就可以了。

4、返回数据给浏览器

引用student对象,将该对象的某个值或者多个值从浏览器输出。

(1)显示某个值

java 复制代码
    @RequestMapping("/get1")
    public student get1(){
        student stu = new student();
        stu.setId(1997);
        stu.setName("QSJ");
        stu.setage(24);
        return stu;
    }

上面的这串代码没有错,错误的是student类的错误,需要添加上所有属性的get函数:

java 复制代码
package com.example.demo1.test;


import org.springframework.stereotype.Component;

@Component
public class student {
    private int id;
    private String name;
    private int age;

    public String test(){
        System.out.println("加油!");
        return "";
    }

    public int getId() {
        return id;
    }
    public void setId(int id) {
        this.id = id;
    }
    public String getName() {
        return name;
    }
    public void setName(String name){
        this.name=name;
    }
    public int getAge() {
        return age;
    }
    public void setAge(int age){
        this.age=age;
    }

}

最终显示结果如下:

(2)显示多个值

使用List容器和ArrayList容器:

java 复制代码
@RequestMapping("getAll1")
    public List<student> getAll(){
        student stu1 = new student();
        stu1.setId(1997);
        stu1.setName("QSJ1");
        stu1.setAge(24);

        student stu2 = new student();
        stu2.setId(1998);
        stu2.setName("QSJ2");
        stu2.setAge(25);

        student stu3 = new student();
        stu3.setId(1999);
        stu3.setName("QSJ3");
        stu3.setAge(26);

        List<student> list1 = new ArrayList<student>();
        list1.add(stu1);
        list1.add(stu2);
        list1.add(stu3);

        return list1;
    }

最终显示结果:

5、浏览器传回数据给服务器

忘记咋传的了。。。。

出错:

易错点

  1. 注解的首字母都是大写的,写了之后回车可以自动引用相应的包,若拼写错误或者没有引用包会出错;
  2. 虽然在定义类的时候,get相关的函数不会显示被应用,但是在set相关的函数中使用了this,所以get函数还是需要写的,否则在传给浏览器的时候不会显示任何内容;
  3. 再修改代码之后,需要重新运行代码才会在正确的情况下显示相应的内容;
相关推荐
suweijie7682 小时前
SpringCloudAlibaba | Sentinel从基础到进阶
java·大数据·sentinel
公贵买其鹿3 小时前
List深拷贝后,数据还是被串改
java
向前看-6 小时前
验证码机制
前端·后端
xlsw_6 小时前
java全栈day20--Web后端实战(Mybatis基础2)
java·开发语言·mybatis
神仙别闹7 小时前
基于java的改良版超级玛丽小游戏
java
黄油饼卷咖喱鸡就味增汤拌孜然羊肉炒饭8 小时前
SpringBoot如何实现缓存预热?
java·spring boot·spring·缓存·程序员
暮湫8 小时前
泛型(2)
java
超爱吃士力架8 小时前
邀请逻辑
java·linux·后端
南宫生8 小时前
力扣-图论-17【算法学习day.67】
java·学习·算法·leetcode·图论
转码的小石8 小时前
12/21java基础
java