Spring Boot 学习(5)——开发流程:快速入门

       花了几天的时间,整出个 “hello spring boot”,并且把它从 2 搞到了 3。

       纸上得来终觉浅!自己实践出真知!现在再回头来囫囵一遍,加深下印象。回想下从前自觉某一编程语言大都如此,先找到简单示例照着画一遍,然后再找书过前面几章,剩下就是尝试上手,书本就成了工具书,需要哪块或是不知道哪块,对着翻目录解决之。讲真,前些年买的书从来没有一本从头看到底过。也就养成了急用先学、知其然不知其所以然的坏习惯。

       其实,之于当前社会,不都是如此么?能够深耕学问、专注研究的,都成了大神、大家,普罗大众只是沦为工具人而已。这也是社会选择的必然,任何一行一业,能站在顶端的只有少数一些人。所以,我也无须妄自菲薄,做好自己的事,做自己想做的事,此生足亦!何须与他人比长短呢……


       开发流程

       idea【工具可以任选,为方便学习理解此次选用了 intellij idea】,通过 mavne 或 spring initializr 创建工程,相较 spring initializr 创建起来更为便捷(使用 spring initializr 创建工程时可以选择开发时所依赖的环境,通常不用再配置 pom 文件),本例使用 maven 创建工程后手工配置。

       1、创建项目      

       在pom文件中配置如下:

       pom 文件详解参见:maven:pom文件详解_pom directory-CSDN博客

    <!--  所有springboot 项目都继承自 spring-boot-starter-parent --><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.2.4</version></parent>

       “<version>3.2.4</version>” 版本号根据项目实际进行配置。

       2、导入场景

       为 web 项目配置启动器

       pom 文件中配置如下:

    <dependencies><!--  web 开发的场景启动器  --><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency></dependencies>

       3、主程序

       新建一个类(在创建项目时没有生成示例代码)com.seraph.boot.MainApplication,编辑代码如下:

package com.seraph;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;// 声明这是一个 SpringBoot 应用
@SpringBootApplication
public class MainApplication {// main 方法,主程序入口public static void main(String[] args) {// springboot 应用启动代码SpringApplication.run(MainApplication.class, args);// 控制台输出System.out.println("Hello SrpingBoot3!");}
}

       先测试一下,结果如下:

控制台输出

 浏览器输出(因为没写任何业务代码响应请求)

       4、业务代码

        boot 上右击新建一个类 controller.HelloController(controller 默认包名)

       代码编写如下:

@RestController     // @Controller + ResponseBody
public class HelloController {// 响应 /hello 路径请求@RequestMapping("/hello")    // GetMapping + PostMappingpublic String hello() {return "hello, spring boot 3.0";}// 响应 / 默认路径请求@RequestMapping("/")public String index() {return "this is index page";}
}

       RestControl = Controll + ResponseBody

       RequestMapping = GetMapping + PostMapping

       5、测试

       输出结果如下:

默认路径

/hello 路径

       6、打包

	<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build>

       配置 SpringBoot 应用打包插件。

       打包。

       默认 jar 包生成在工程目录下 target 目录中。

       7、发布

       以 win 环境为例(假设已有 java 运行环境,且版本满足要求,已在系统环境变量中配置了路径),将生成的 jar 包放到某一目录中(路径中不得有空格、中文字符等)。打开命令提示行,进入 jar 包所在目录,输入:

java -jar boot3-01-demo-1.0-SNAPSHOT.jar

       格式:java -jar 包名

       如当前位置在 jar 包目录中,可只输入包名。否则应包名应包含全路径,如:

java -jar D:\wj\srping-boot-3\boot3-01-demo\target>java -jar boot3-01-demo-1.0-SNAPSHOT.jar

        运行结果如下:

       请求对应路径(“/” 和 “/hello”)浏览器返回结果如前图(5、测试)所示,即表示运行成功。

       至此,一个简单工程的开发(假装包含了发布)流程全部完成。

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

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

相关文章

stacking学习

KFlod 适用于用户回归类型数据划分 stratifiedKFlod 适用于分类数据划分 并且在实验中也发现&#xff0c;stratifiedKFlod.split(X_train,y_train)的y_train不可为连续数据&#xff0c;因此无法使用&#xff0c;只能用KFold models [GBDT(n_estimators100), RF(n_estimators1…

【vue3-pbstar-books】大学生前端期末作业(vue3、element-plus、ts、pinia、vite、json-server)

一、项目要求 二、项目介绍 vue3-pbstar-books是一个图书主题的pc端网站&#xff0c;该项目有首页、全部书籍页、书籍分类页、书籍详情页和关于页五个页面。该方案结合了 Vue3、Element-Plus、TypeScript、Pinia 和 Vite 等先进技术&#xff0c;实现高效的页面布局、状态管理和…

Spring之AOP的详细讲解

目录 一.SpringAOP是什么&#xff1f; 1.1理论知识点 1.2简单的AOP例子 二.SpringAOP的核心概念 2.1切点(Pointcut) 2.2通知&#xff08;Advice&#xff09; 2.3切⾯(Aspect) 2.4通知类型 2.5切⾯优先级 Order 2.6切点表达式 2.6.1 execution表达式 2.6.2annotati…

dfs回溯 -- Leetcode46. 全排列

题目链接&#xff1a;46. 全排列 题目描述 给定一个不含重复数字的数组 nums &#xff0c;返回其 所有可能的全排列 。你可以 按任意顺序 返回答案。 示例 1&#xff1a; 输入&#xff1a;nums [1,2,3] 输出&#xff1a;[[1,2,3],[1,3,2],[2,1,3],[2,3,1],[3,1,2],[3,2,1]]示…

天地人和•大道不孤——卢禹舜中国画作品展在重庆美术馆隆重开幕

2024年4月12日&#xff0c;由中国国家画院、重庆市文化和旅游发展委员会主办&#xff0c;重庆美术馆&#xff08;重庆画院、重庆国画院&#xff09;、北京八荒锦绣美术馆、中国国际文化交流基金会卢禹舜艺术基金承办的“天地人和•大道不孤——卢禹舜中国画作品展”开幕式在重庆…

jmeter实验 模拟:从CSV数据到加密请求到解密返回数据再到跨越线程组访问解密后的数据

注意,本实验所说的加密只是模拟加密解密,您需要届时写自己的加解密算法或者引用含有加密算法的相关jar包才行. 思路: 线程组1: 1.从CSV文件读取原始数据 2.将读取到的数据用BeanShell预习处理器进行加密 3.HTTP提取器使用加密后的数据发起请求 4.使用BeanShell后置处理器…

OceanBase—操作实践

文档结构 1、概念简介2、核心设计3、操作实践3.3、数据同步 官方文档&#xff1a;https://www.oceanbase.com/docs/oceanbase-database-cn 1、概念简介 版本分为社区版和企业版&#xff0c;其中企业版兼容MySQL 和Oracle数据库语法&#xff1b; 2、核心设计 存储层 复制层 …

底层文件操作的各种函数(二)------printf,fprintf,sprintf,scanf,fscanf,sscanf的对比以及文件缓冲区

偷得几日清闲&#xff0c;又因一瞬之间对蹉跎时间的愧疚&#xff0c;由此而来到CSDN这个高手云集和新手求学的平台来也写上那么一篇博客。虽然自己的博客那么久不温不热&#xff0c;但坚持写作&#xff0c;巩固自己就好。今天要讲的是续接上一篇文章的补充与继续吧。上期文章&a…

MQ:延迟队列

6.1场景&#xff1a; 1.定时发布文章 2.秒杀之后&#xff0c;给30分钟时间进行支付&#xff0c;如果30分钟后&#xff0c;没有支付&#xff0c;订单取消。 3.预约餐厅&#xff0c;提前半个小时发短信通知用户。 A -> 13:00 17:00 16:30 延迟时间&#xff1a; 7*30 * 60 *…

PG事务、事务隔离级别、并发控制

事物与并发控制 ################################## 事物是关系型数据库中非常重要的概念。 并发通常能带来更大的吞吐量、资源利用率和更好的性能。 当多个事物并发执行时,即使每个单独的事物都正确的执行,数据库的一致性可能被破坏。为了控制并发事物之间的相互影响,解…

专栏开篇 | 虚拟直播软件的技术架构与应用场景分析

系列文章 技术探索 特征点检测 如何在前端项目中使用opencv.js | opencv.js入门如何使用tensorflow.js实现面部特征点检测tensorflow.js 如何从 public 路径加载人脸特征点检测模型tensorflow.js 如何使用opencv.js通过面部特征点估算脸部姿态并绘制示意图tensorflow.js 使用…

GB/T 28181标准中的错误码,国标28181中可能出现的SIP协议相关的错误码及其含义

目录 一、GB/T 28181标准介绍 &#xff08;一&#xff09;概述 &#xff08;二&#xff09;关键内容和特点 1. 系统架构&#xff1a; 2. 设备接入&#xff1a; 3. 网络通信&#xff1a; 4. 业务功能&#xff1a; 5. 安全保护&#xff1a; 6. 平台管理&#xff1a; &a…

【C语言】字符串函数和内存函数及其模拟实现

文章目录 前言 一、常见字符串库函数1.strlen函数2.长度不受限制的字符串函数2.1 strcpy2.2 strcat2.3 strcmp 3.长度受限制的字符串函数3.1 strncpy3.2 strncat3.3 strncmp 二、字符串查找函数strstrstrtok 三、strerror函数四、内存操作函数1.memcpy2.memmove3.memcmp 五、字…

力扣刷题 二叉树层序遍历相关题目II

NO.116 填充每个节点的下一个右侧节点指针 给定一个 完美二叉树 &#xff0c;其所有叶子节点都在同一层&#xff0c;每个父节点都有两个子节点。二叉树定义如下&#xff1a; struct Node {int val;Node *left;Node *right;Node *next; } 填充它的每个 next 指针&#xff0c;…

jieba分词的应用

使用jieba分词的目的主要是将连续的中文文本切分成独立的词汇单元&#xff0c;以便进行后续的文本分析和处理。jieba分词是中文文本处理中的一个重要步骤&#xff0c;特别适用于中文等没有明显词汇边界的语言。 jieba分词的应用场景非常广泛&#xff0c;包括但不限于以下几个方…

iOS开发如何更改xcode中的Apple ID

在Xcode中更改Apple ID是一项常见的任务&#xff0c;尤其是当你需要切换到另一个开发者账号或者团队时。下面是一个简单的步骤指南&#xff0c;帮助你更改Xcode中的Apple ID&#xff1a; 步骤一&#xff1a;退出当前的Apple ID 1.打开Xcode应用程序。 2.在菜单栏中&#xff0c;…

外贸公司应该怎么选择企业邮箱?哪个企业邮箱最好?

外贸公司业务的特殊性需要他们频繁进行跨国的沟通交流&#xff0c;那么外贸公司应该如何选择适合的企业邮箱呢&#xff1f;首先&#xff0c;传输邮件的稳定安全是前提&#xff0c;另外由于沟通多是国外客户&#xff0c;邮件的翻译也成为外贸公司企业邮箱的刚需。小编今天就详细…

冒泡排序算法实现步骤

算法实现的过程&#xff1a; 1. 定义问题&#xff1a; - 算法是用来解决某一特定计算问题的方法步骤。例如&#xff0c;对于排序问题&#xff0c;我们需要一个算法对一组无序的整数进行排序。 2. 设计算法&#xff1a; - 冒泡排序是一种基础的排序算法。它的设计思路是…

Android 应用启动过程

Android应用的完全启动过程 用户点击应用图标后&#xff0c;Android应用的完全启动过程包括以下步骤&#xff1a; 启动器图标点击&#xff1a;用户点击应用程序的图标&#xff0c;触发启动器&#xff08;Launcher&#xff09;加载应用程序的入口Activity。 启动器加载&#x…

代码随想录训练营18day-二叉树7

一、530.二叉搜索树的最小绝对差 利用二叉搜索树的有序性&#xff0c;每一层遍历时候&#xff0c;最小差一定是在相邻的两个节点间产生的&#xff0c;因此做递归的时候&#xff0c;记录一个pre和cur节点&#xff0c;用来比较差值&#xff0c;迭代更新时候&#xff0c;记录最小…