《Spring Framework实战》2:Spring快速入门

欢迎观看《Spring Framework实战》视频教程

Spring快速入门

目录

1. Java™开发套件(JDK)

2. 集成开发人员环境(IDE)

3. 安装Maven

4. Spring快速入门

4.1. 开始一个新的Spring Boot项目

4.2. 添加您的代码

4.3. 尝试

您会建立什么?

您将构建一个经典的“ Hello World!”。任何浏览器都可以连接到的端点。您甚至可以告诉它您的名字,它将以更友好的方式响应。

您需要什么?

  1. Java™开发套件(JDK)

我们建议使用BellSoft Liberica JDK版本17。

Java Download | Java 8, Java 11, Java 17, Java 21, Java 23 - OpenJDK Builds for Linux, Windows & macOS

JAVA_HOME=C:\Program Files\BellSoft\LibericaJDK-17\

%JAVA_HOME%\bin

  1. 集成开发人员环境(IDE)

流行的选择包括IntelliJ IDEA,Spring Tools,Visual Studio Code或Eclipse等等。

IntelliJ IDEA – 领先的 Java 和 Kotlin IDE

  1. 安装Maven

Download Apache Maven – Maven

MAVEN_HOME=D:\apache-maven-3.9.9

%MAVEN_HOME%\bin

  1. Spring快速入门
    1. 开始一个新的Spring Boot项目

使用start.spring.io创建一个“ web”项目。在“依赖关系”对话框中,搜索并添加“网络”依赖关系,如屏幕截图所示。点击“生成”按钮,下载压缩文件,然后将其解压缩到计算机上的文件夹中。

由start.spring.io创建的项目包含Spring Boot,该框架使Spring准备在您的应用程序中工作,而无需太多代码或配置。Spring Boot是启动Spring项目的最快,最受欢迎的方式。

    1. 添加您的代码

在IDE中打开项目,然后在DemoApplication.java文件src/main/java/com/example/demo夹中找到文件。现在,通过添加以下代码中所示的额外方法和注释来更改文件的内容。您可以复制并粘贴代码,也可以只键入它。

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class DemoApplication {


public static void main(String[] args) {

SpringApplication.run(DemoApplication.class, args);

}

@GetMapping("/hello")
public String hello(@RequestParam(value = "name", defaultValue = "World") String name) {

return String.format("Hello %s!", name);

}

}

这是在Spring Boot中创建简单的“ Hello World” Web服务所需的全部代码。

hello()我们添加的方法旨在采用名为的String参数name,然后将此参数与"Hello"代码中的单词组合。这意味着,如果您“Amy”在请求中将姓名设置为,则响应为“Hello Amy”。

该@RestController注解告诉Spring,这个代码描述应该可在网上的端点。该@GetMapping(“/hello”)告诉Spring使用我们的hello()方法来回答这个问题被发送到请求http://localhost:8080/hello的地址。最后,@RequestParam告诉Spring期望name请求中的值,但是如果不存在,默认情况下它将使用单词“ World”。

    1. 尝试

让我们构建并运行该程序。打开命令行(或终端),然后导航到项目文件所在的文件夹。我们可以通过发出以下命令来构建和运行该应用程序:

MacOS / Linux:

./mvnw spring-boot:run

Windows

mvnw spring-boot:run

或者

java -jar demo-0.0.1-SNAPSHOT.jar

您应该看到一些看起来非常类似于此的输出:

最后两行告诉我们Spring已经开始。Spring Boot的嵌入式Apache Tomcat服务器充当Web服务器,并在localhostport上侦听请求8080。打开浏览器,然后在顶部的地址栏中输入

http://localhost:8080/hello。您应该得到一个很好的友好响应,如下所示:

突击测验

如果添加?name=Amy到URL的末尾,应该怎么办?

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

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

相关文章

Kafka集群部署与安装

一、什么是Kafka Kafka是一个Pub-Sub的消息系统,无论是发布还是订阅,都须指定Topic。 Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者大规模的网站中的所有动作流数据 二、JMS:Java Message Service Java消息服…

利用Deeplearning4j进行 图像识别

目录 图像识别简介 神经网络 感知器 前馈神经网络 自动编码器 受限玻尔兹曼机 深度卷积网络 理解图像内容以及图像含义方面,计算机遇到了很大困难。本章先介绍计算机理解图像教育方面 遇到的难题,接着重点讲解一个基于深度学习的解决方法。我们会…

PTA DS 基础实验3-2.1 一元多项式求导

基础实验3-2.1 一元多项式求导 分数 20 全屏浏览 切换布局 作者 DS课程组 单位 浙江大学 设计函数求一元多项式的导数。 输入格式: 以指数递降方式输入多项式非零项系数和指数(绝对值均为不超过1000的整数)。数字间以空格分隔。 注意&#xff1a…

redis源码系列--(四)--redis cluster

本文主要记录redis cluster相关流程 2024/11/11 10:19 redis cluster命令文档:https://redis.io/docs/latest/commands/cluster-failover/ redis集群模式和哨兵模式是不同的模式,别搞混了 --chatgpt https://blog.csdn.net/zzti_erlie/article/detail…

vue elementUI Plus实现拖拽流程图,不引入插件,纯手写实现。

vue elementUI Plus实现拖拽流程图,不引入插件,纯手写实现。 1.设计思路:2.设计细节3.详细代码实现 1.设计思路: 左侧button列表是要拖拽的组件。中间是拖拽后的流程图。右侧是拖拽后的数据列表。 我们拖动左侧组件放入中间的流…

java基础学习(接口和抽象类的区别)

1.接口和抽象类的区别 它们都无法直接实例化 接口:使用 interface 关键字定义,接口中的所有方法默认是 public abstract,即使不写修饰符。接口不包含任何实现代码。抽象类:使用 abstract 关键字定义,可以包含抽象方法…

DC系列之DC-8渗透测试

DC-8 靶机渗透测试实战 靶机下载地址: https://download.vulnhub.com/dc/DC-8.zip(下载速度慢可以用迅雷下载) 一、实验环境 实验环境: kali2024:192.168.234.145(nat模式) 靶机环境DC-7&#…

自定义有序Map

package cn.ziqirj.common.utils;import lombok.Getter; import lombok.Setter;import java.util.ArrayList; import java.util.List;/*** 模拟Map集合&#xff0c;key不可重复&#xff0c;按插入顺序排序* author zhangji** param <T>*/ public class CustomOrderlyMap&…

matlab中高精度计算函数vpa与非厄米矩阵本征值的求解

clear;clc;close all tic %并行设置% delete(gcp(nocreate));%关闭之前的并行 cparcluster(local); c.NumWorkers50;%手动设置线程数(否则默认最大线程为12) parpool(c, c.NumWorkers); %并行设置%w1; u2.5;N30;valstozeros(2*N2,100); v10linspace(-3,3,100).;parfor jj1:leng…

机器人领域的一些仿真器

模拟工具和环境对于开发、测试和验证可变形物体操作策略至关重要。这些工具提供了一个受控的虚拟环境&#xff0c;用于评估各种算法和模型的性能&#xff0c;并生成用于训练和测试数据驱动模型的合成数据。 Bullet Physics Library 用于可变形物体模拟的一个流行的物理引擎是 B…

【玩转23种Java设计模式】行为型模式篇:备忘录模式

软件设计模式&#xff08;Design pattern&#xff09;&#xff0c;又称设计模式&#xff0c;是一套被反复使用、多数人知晓的、经过分类编目的、代码设计经验的总结。使用设计模式是为了可重用代码、让代码更容易被他人理解、保证代码可靠性、程序的重用性。 汇总目录链接&…

GraphRAG vs 传统 RAG:如何通过知识图谱提升 AI 检索能力

相比传统 RAG 仅能独立检索文本片段的局限性&#xff0c;GraphRAG通过构建实体关系图谱实现了信息间的连接&#xff0c;让 AI 能更完整地理解和检索复杂的关联信息&#xff0c;从而生成更准确和连贯的回答 问题背景: 想象有一本详细记录某人(X)成就的传记,每个章节都描述了他的…

【小制作】米家模拟手指点击

代码功能解释 这段代码是一个基于Arduino平台的控制程序&#xff0c;主要功能包括&#xff1a; 初始化&#xff1a;设置引脚模式、初始化编码器、舵机和EEPROM。按键检测&#xff1a;处理按钮的单击、双击和长按事件&#xff0c;并根据事件执行相应操作。编码器更新&#xff…

23. 【.NET 8 实战--孢子记账--从单体到微服务】--记账模块--预算

在每个月发工资后很多人会对未来一个月的花销进行大致的计划&#xff0c;这个行为叫做预算。那么在这篇文章中我们将一起开发预算服务。 一、需求 预算需求就是简单的增删改查&#xff0c;虽然比较简单&#xff0c;但是也有几点需要注意。 编号需求说明1新增预算1. 针对每种…

Pentaho Kettle迁移至Oracle的空字符串和NULL的问题处理,大坑!

一、问题说明 在使用 Kettle 将 DB2 数据迁移到 Oracle 的过程中&#xff0c;出现了 DB2 中为空字符串的字段&#xff0c;在插入到 Oracle 过程中实际插入的为 NULL &#xff0c;导致触发了非空校验而迁移失败 空字符串 ‘’ &#xff0c;即长度为0的字符串 搜索该问题后得知…

2025-01-04 Unity插件 YodaSheet1 —— 插件介绍

文章目录 1 介绍2 工作原理2.1 ScriptableObject -> YadeSheetData2.2 YadeDatabase 存储多个 YadeSheetData 3 用途4 缺点5 推荐 1 介绍 ​ Yade 提供类似于 Excel 或者 Google Sheets 的表格编辑器&#xff0c;可以轻松地在 Unity 编辑器中 编辑&#xff0c;搜索&#xf…

51单片机——LED模块

LED模块中有8盏灯&#xff0c;从左到右为D1&#xff0c;D2&#xff0c;...&#xff0c;D8 8盏灯以二进制存储在单片机中&#xff0c;它们共同组成一个二进制 0 0 0 0 0 0 0 0 ---------------------------------------------- D8 D7 D6 D5 D…

VScode 格式化代码空格记录

点击 -> “文件” -> “首选项" -> “设置” -> 按下图操作&#xff1a; 怎么格式化代码空格&#xff0c;先看下&#xff1a; 保存代码后&#xff0c;这代码自动格式化发&#xff0c;如下图&#xff1a; 你可以试试看就即可

苹果系统MacOS下ObjectC建立的App程序访问opencv加载图片程序

前言 苹果系统下使用opencv感觉还是有些不太方便&#xff0c;总是感觉有点受到限制。本博客描述的是在MacOS下建立App程序然后调用opencv显示图片时出现的一些问题并最后解决的一个过程。 一、程序的建立 选择程序的类型&#xff1a; 选择界面模式和编程语言&#xff1a; 其余…

LeetCode--复原IP地址(面试手撕算法高频题)

题目描述:有效 IP 地址 正好由四个整数&#xff08;每个整数位于 0 到 255 之间组成&#xff0c;且不能含有前导 0&#xff09;&#xff0c;整数之间用 . 分隔。 例如&#xff1a;"0.1.2.201" 和 "192.168.1.1" 是 有效 IP 地址&#xff0c;但是 "0.…