Springboot项目实训--day1

目录

一、软件安装

二、软件的简单了解

三、基础知识应用

1、四个常用注释

2、尝试新建类

3、控制反转(IOC容器)

4、返回数据给浏览器

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

易错点


一、软件安装

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

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

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

二、软件的简单了解

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

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

然后修改setting中的:

修改完成之后,

三、基础知识应用

1、四个常用注释

@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代码的编写了。

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

@RestController//有该注解,就可以让下面的类在浏览器访问
public class demo1 {@RequestMapping("/helloYa") //这里指定路径,自己定义就好public String hello(){return "hello Ya";//会将这个返回到浏览器中}
}

然后在地址栏中输入

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

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

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

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

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

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注解。

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

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

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 {@Autowiredprivate 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)显示某个值

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

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

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容器:

@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. 再修改代码之后,需要重新运行代码才会在正确的情况下显示相应的内容;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/bicheng/38607.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

3dmax如何制作全景图?渲染100邀请码1a12

全景图很常见&#xff0c;制作起来也简单&#xff0c;这里我给大家稍微分享下。 1、创建相机 打开要渲染全景的场景文件&#xff0c;创建相机并调整好位置。 2、 设置分辨率 按F10打开渲染设置界面&#xff0c;选择相机视口&#xff0c;在公用里设置宽度和高度&#xff0c;…

HarmonyOS开发探索:自定义键盘-webview

场景描述 在特殊的H5场景下需要应用拉起自定义键盘进行输入。 场景一&#xff1a;使用jsBridge拉起自定义弹窗写自定义键盘&#xff0c;再通过jsBridge传参实现输入。 场景二&#xff1a;使用web的同层渲染将原生textInput组件渲染到页面上。 方案描述 通过注册一个js代理…

Vue-element 组件dialog右上角点击 X 清空表单校验信息

问题&#xff1a; 点击确定触发校验后&#xff0c;点击弹窗右上角的 X号关闭弹窗后再次打开弹窗&#xff0c;校验规则没有被清空 解决方法&#xff1a;

Asp.NET identity以及Owin

》》》Identity是集成到Owin框架中中 ● Microsoft.AspNet.Identity.Core&#xff1a;Identity的核心类库&#xff0c;实现了身份验证的核心功能&#xff0c;并提供了拓展接口。● Microsoft.AspNet.Identity.EntityFramework&#xff1a;Identity数据持久化的EF实现。   ● …

Soul探索未来智能互动模式,人机交互重塑社交元宇宙体验

在当今快速发展的科技领域中,人机交互已成为一个备受关注的话题。随着人工智能和机器学习技术的不断进步,人们与计算机和智能设备之间的互动方式正在发生翻天覆地的变化。这种交互不止局限于键盘和鼠标,更涵盖了语音识别、手势控制、虚拟现实等多种形式。人机交互的创新不仅提高…

七一建党节|热烈庆祝中国共产党成立103周年!

时光荏苒&#xff0c;岁月如梭。 在这热情似火的夏日&#xff0c; 我们迎来了中国共产党成立103周年的重要时刻。 这是一个值得全体中华儿女共同铭记和庆祝的日子&#xff0c; 也是激励我们不断前进的重要时刻。 103年&#xff0c; 风雨兼程&#xff0c;砥砺前行。 从嘉兴…

CesiumJS【Basic】- #038 绘制轮廓线(Primitive方式)

文章目录 绘制轮廓线(Primitive方式)1 目标2 代码2.1 main.ts绘制轮廓线(Primitive方式) 1 目标 使用Primitive方式绘制轮廓线 2 代码 2.1 main.ts var start = Cesium.Cartesian3.fromDegrees(-75.59777, 40.03883);v

DX-11A信号继电器 0.5A 柜内板前接线 约瑟JOSEF

DX-11,11A,11B,11C型信号继电器 DX-11信号继电器 DX-11B信号继电器 DX-11A信号继电器 DX-11C信号继电器 1 用途 该继电器用于直流操作的保护线路中&#xff0c;作为信号指示器。 2 结构和原理 该继电器具有电磁铁和带公共点的三付动合触点及一个信号牌&#xff0c;为电…

嵌入式Linux系统编程 — 5.6 Linux系统申请堆内存

目录 1 内存概念 1.1 什么是堆内存 1.2 内存分布 2 malloc、free在堆上分配与释放内存 2.1 malloc函数 2.2 free函数 2.3 示例程序 注意事项&#xff1a; 3 calloc分配内存 3.1 calloc函数介绍 3.2 示例程序 4 分配对齐内存 4.1 函数介绍 4.2 示例程序 1 内存概念…

推荐下载:Windows11 23H2专业工作站版!高效办公首选!

今天系统之家小编给需要高性能计算能力、高级安全功能和专业级应用程序支持的用户推荐一款操作系统&#xff0c;那就是Windows11 23H2专业工作站版系统&#xff0c;该系统经过优化&#xff0c;具有更强的数据处理能力和更高的安全性&#xff0c;还具有出色的兼容性&#xff0c;…

论文笔记:MobilityGPT: Enhanced Human MobilityModeling with a GPT mode

1 intro 1.1 背景 尽管对人类移动轨迹数据集的需求不断增加&#xff0c;但其访问和分发仍面临诸多挑战 首先&#xff0c;这些数据集通常由私人公司或政府机构收集&#xff0c;因此可能因泄露个人敏感生活模式而引发隐私问题其次&#xff0c;公司拥有的数据集可能会暴露专有商…

PAI3D: Painting Adaptive Instance-Prior for 3D Object Detection论文讲解

PAI3D: Painting Adaptive Instance-Prior for 3D Object Detection论文讲解 1. 引言2. PAI3D框架2.1 Instance Painter2.2 Adaptive Projection Refiner2.3 Fine-granular Detection Head 3. 实验结果3.1 消融实验 1. 引言 3D目标检测对于自动驾驶来说是一个非常重要的模块&a…

如何现代的编译和安装内核

前言&#xff1a;本文是在阅读书目时找到了一篇非常高质量的文章。的原文是英文&#xff0c;现在我自己手头翻译了一下&#xff0c;发布到这里。 原文连接&#xff1a;How to compile a Linux kernel in the 21st century | Opensource.com 目录 更新内核的现代方法 安装内…

C++知识点总结全系列 (05):IO 类的详细总结和分析

1、基类 istream 和 ostream (1)istream A.What 输入流的抽象类&#xff0c;是所有输入流类的基类 B.Why&#xff08;输入流的作用&#xff09; 用于从数据源&#xff08;如文件、标准输入设备等&#xff09;读取数据 (2)ostream A.What 输出流的抽象类&#xff0c;是所有输…

grpc学习golang版( 六、服务器流式传输 )

系列文章目录 第一章 grpc基本概念与安装 第二章 grpc入门示例 第三章 proto文件数据类型 第四章 多服务示例 第五章 多proto文件示例 第六章 服务器流式传输 第七章 客户端流式传输 第八章 双向流示例 文章目录 一、前言二、定义proto文件三、拷贝任意文件进项目四、编写serve…

复制完若依后,idea没有maven窗口

右击项目 添加框架 添加maven框架就可以了

大数据开发中的数据倾斜问题

数据倾斜是大数据开发中常见的性能瓶颈&#xff0c;了解其原因并采取有效的解决方案对系统性能至关重要。本文将从数据倾斜的影响、解决方法及示例代码等方面进行详细讨论。 目录 1. 数据倾斜的影响2. 解决数据倾斜的方法调整分区键预聚合倾斜处理逻辑 3. 进一步解决数据倾斜的…

vue3.0 + vant实现下拉刷新上拉加载

在vue中使用vant组件库有个van-pull-refresh下拉组件&#xff0c;配合van-list列表组件实现页面的下拉刷新和上拉加载&#xff0c;原理简单&#xff0c;适用场景在列表页面内容展示。 下拉刷新 PullRefresh 实现下拉刷新的效果。 PullRefresh组件中的searchRefreshing属性&…

51单片机嵌入式开发:STC89C52环境配置到点亮LED

STC89C52环境配置到点亮LED 1 环境配置1.1 硬件环境1.2 编译环境1.3 烧录环境 2 工程配置2.1 工程框架2.2 工程创建2.3 参数配置 3 点亮一个LED3.1 原理图解读3.2 代码配置3.3 演示 4 总结 1 环境配置 1.1 硬件环境 硬件环境采用“华晴电子”的MINIEL-89C开发板&#xff0c;这…

安卓app开发-基础-本地环境安装android studio且配置参数

安卓app开发-基础-本地环境安装android studio且配置参数&#xff01;今天为大家介绍一下&#xff0c;如何在自己本地电脑安装android ,studio和启动一个简单的java版本的项目。 第一步&#xff0c;去下面的地址&#xff0c;下载一个安装文件。 地址&#xff1a;AndroidDevToo…