SpringBoot1--简单体验

1 Helloworld

打开:https://start.spring.io/

选择maven配置。增加SpringWeb的依赖。

Generate之后解压,代码大致如下:

hp@DESKTOP-430500P:~/springboot2/demo$ tree
├── HELP.md
├── mvnw
├── mvnw.cmd
├── pom.xml
└── src
    ├── main
    │   ├── java
    │   │   └── com
    │   │       └── example
    │   │           └── demo
    │   │               └── DemoApplication.java
    │   └── resources
    │       ├── application.properties
    │       ├── static
    │       └── templates
    └── test
        └── java
            └── com
                └── example
                    └── demo
                        └── DemoApplicationTests.java

15 directories, 7 files
 


此时提供了main和pom.xml

DemoApplication.java

package com.example.demo;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;@SpringBootApplication
public class DemoApplication {public static void main(String[] args) {SpringApplication.run(DemoApplication.class, args);}}

POM.xml。这个是给maven用的。

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd"><modelVersion>4.0.0</modelVersion><parent><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-parent</artifactId><version>3.5.0</version><relativePath/> <!-- lookup parent from repository --></parent><groupId>com.example</groupId><artifactId>demo</artifactId><version>0.0.1-SNAPSHOT</version><name>demo</name><description>Demo project for Spring Boot</description><url/><licenses><license/></licenses><developers><developer/></developers><scm><connection/><developerConnection/><tag/><url/></scm><properties><java.version>17</java.version></properties><dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-test</artifactId><scope>test</scope></dependency></dependencies><build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins></build></project>

修改src中的Handler。src/main/java/com/example/demo/HelloController.java

package com.example.demo;import org.springframework.web.bind.annotation.*;@RestController
public class HelloController {@GetMapping("/hello")public String hello() {return "Hello from Spring Boot!";}
}

因为我的8080被thingsboard用了。所以换成8081。

在src/main/resources/application.properties中添加server.port=8081

安装JDK17和Maven

sudo apt update
sudo apt install openjdk-17-jdk maven -y

编译

mvn clean package

编译的时间那是相当漫长

运行

java -jar target/demo-0.0.1-SNAPSHOT.jar

之后访问8081就可以看到了。

这里也可以直接运行:

mvn spring-boot:run

2 一些理论

2.1 SpringBoot和Spring区别

Spring本质就是web服务框架。和Springboot是什么区别呢? 

维度Spring FrameworkSpring Boot
定位轻量级企业应用开发框架快速构建生产级 Spring 应用的脚手架
核心目标提供松耦合、模块化的企业级开发能力简化 Spring 应用的初始搭建和配置
复杂度高(需手动配置依赖和集成)低(约定优于配置,开箱即用)
适用阶段适合深度定制和复杂场景适合快速开发、微服务和标准化项目

SpringBoot就是对Spring的一个二次封装集成。

  • 通过 Starter 依赖 一键集成(如 spring-boot-starter-web 包含 Tomcat + Spring MVC + JSON 支持)。

  • 版本由 Spring Boot 父POM统一管理。

本质就是简化了Spring的繁琐的搭建,简化了配置文件,简化了集成(Tomcat等)。。

2.2 学习文档

官方文档:Spring Boot :: Spring Boot

中文文档:Spring Boot 中文文档

快速上手指南:Getting Started | Building an Application with Spring Boot

Spring Boot 官方项目生成器:https://start.spring.io 

一些重点内容:

  • 起步章节 Getting Started

  • 自动配置原理

  • 核心功能(Web、数据库、配置、测试)

  • 部署与运维(Actuator,Logging,Metrics)

  • Spring Boot 与 Spring Cloud 的衔接

常用部分

功能文档章节
端口配置application.propertiesserver.port
日志配置Logging(支持 Logback、Log4j2)
数据源配置Spring Data / JPA / JDBC
REST API 开发Spring Web(@RestController 等)
Actuator 健康监控Production-ready Features
打包运行Build tool support(Maven/Gradle)

2.3 和前端的集成

集成Angular 前端

单独写了一篇:Angularjs-Hello-CSDN博客

2.4 典型开发发布场景

 接到需求->修改代码->测试->生成正式jar包->替换jar包->重启服务

也可以docker build和docker run用docker来发布。不过感觉docker会损失一些性能吧。。。

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

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

相关文章

MATLAB 中调整超参数的系统性方法

在深度学习中&#xff0c;超参数调整是提升模型性能的关键环节。以下是 MATLAB 中调整超参数的系统性方法&#xff0c;涵盖核心参数、优化策略及实战案例&#xff1a; 一、关键超参数及其影响 超参数作用典型范围学习率 (Learning Rate)控制参数更新步长&#xff0c;影响收敛…

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…

(二)stm32使用4g模块(移远ec800k)连接mqtt

下面代码是随手写的&#xff0c;没有严谨测试仅供参考测试 uint8_t msgBuf[200]{"msg from mcu"}; uint8_t txBuf[250]{0}; uint16_t msgid0; uint16_t mqttTaskState0; uint16_t t100msCount0; uint8_t sendFlag10; uint8_t sendFlag20; void t100msTask1(void) { …

哈希表入门:用 C 语言实现简单哈希表(开放寻址法解决冲突)

目录 一、引言 二、代码结构与核心概念解析 1. 数据结构定义 2. 初始化函数 initList 3. 哈希函数 hash 4. 插入函数 put&#xff08;核心逻辑&#xff09; 开放寻址法详解&#xff1a; 三、主函数验证与运行结果 1. 测试逻辑 2. 运行结果分析 四、完整代码 五、优…

Windows下运行Redis并设置为开机自启的服务

下载Redis-Windows 点击redis-windows-7.4.0下载链接下载Redis 解压之后得到如下文件 右键install_redis.cmd文件&#xff0c;选择在记事本中编辑。 将这里改为redis.windows.conf后保存&#xff0c;退出记事本&#xff0c;右键后选择以管理员身份运行。 在任务管理器中能够…

2025年ESWA SCI1区TOP,改进成吉思汗鲨鱼算法MGKSO+肝癌疾病预测,深度解析+性能实测

目录 1.摘要2.成吉思汗鲨鱼优化算法GKSO原理3.MGKSO4.结果展示5.参考文献6.代码获取7.算法辅导应用定制读者交流 1.摘要 本文针对肝癌&#xff08;HCC&#xff09;早期诊断难题&#xff0c;提出了一种基于改进成吉思汗鲨鱼优化算法&#xff08;MGKSO&#xff09;的计算机辅助诊…

李沐-动手学深度学习:RNN

1.RNN从零开始实现 import math import torch from torch import nn from torch.nn import functional as F from d2l import torch as d2l#8.3.4节 #batch_size&#xff1a;每个小批量中子序列样本的数目&#xff0c;num_steps&#xff1a;每个子序列中预定义的时间步数 #loa…

【C++ Qt】多元素控件(ListWidget、TableWidget、TreeWidget)

每日激励&#xff1a;“不设限和自我肯定的心态&#xff1a;I can do all things。 — Stephen Curry” 绪论​&#xff1a; 本章将通过代码示例详细介绍了Qt中QListWidget、QTableWidget和QTreeWidget三种多元素控件的使用方法与核心功能&#xff0c;涵盖列表的增删操作、表格…

基于TI DSP控制的光伏逆变器最大功率跟踪mppt

基于TI DSP&#xff08;如TMS320F28335&#xff09;控制的光伏逆变器最大功率跟踪&#xff08;MPPT&#xff09;程序通常涉及以下几个关键部分&#xff1a;硬件电路设计、MPPT算法实现、以及DSP的编程。以下是基于TI DSP的光伏逆变器MPPT程序的一个示例&#xff0c;主要采用扰动…

Python实现P-PSO优化算法优化卷积神经网络CNN回归模型项目实战

说明&#xff1a;这是一个机器学习实战项目&#xff08;附带数据代码文档&#xff09;&#xff0c;如需数据代码文档可以直接到文章最后关注获取。 1.项目背景 随着人工智能和深度学习技术的快速发展&#xff0c;卷积神经网络&#xff08;CNN&#xff09;在图像分类、目标检测…

计算机视觉入门:OpenCV与YOLO目标检测

计算机视觉入门&#xff1a;OpenCV与YOLO目标检测 系统化学习人工智能网站&#xff08;收藏&#xff09;&#xff1a;https://www.captainbed.cn/flu 文章目录 计算机视觉入门&#xff1a;OpenCV与YOLO目标检测摘要引言技术原理对比1. OpenCV&#xff1a;传统图像处理与机器学…

【PCB工艺】绘制原理图 + PCB设计大纲:最小核心板STM32F103ZET6

绘制原理图和PCB布线之间的联系,在绘制原理图的时候,考虑到后续的PCB设计+嵌入式软件代码的业务逻辑,需要在绘制原理图之初涉及到 硬件设计流程的前期规划。在嵌入式系统开发中,原理图设计是整个项目的基础,直接影响到后续的: PCB 布线效率和质量 ☆☆☆重点嵌入式软件的…

Centos系统搭建主备DNS服务

目录 一、主DNS服务器配置 1.安装 BIND 软件包 2.配置主配置文件 3.创建正向区域文件 4.创建区域数据文件 5.检查配置语法并重启服务 二、从DNS服务配置 1.安装 BIND 软件包 2.配置主配置文件 3.创建缓存目录 4.启动并设置开机自启 一、主DNS服务器配置 1.安装 BIN…

LeetCode[513]找树左下角的值

思路&#xff1a; 找树左下角的值&#xff0c;有可能这个值不是左叶子节点&#xff0c;可能是右叶子节点&#xff0c;但怎么说这个值都是叶子节点&#xff0c;首先这道题用层序遍历的思路比如什么队列和BSF的递归都可以做&#xff0c;但我比较喜欢用纯递归来搞&#xff0c;因为…

ubuntu20.04.5--arm64版上使用node集成java

ubuntu20.04.5arm上使用node集成java #ssh&#xff0c;可选 sudo apt update sudo apt install openssh-server sudo systemctl status ssh sudo systemctl enable ssh sudo systemctl enable --now ssh #防火墙相关&#xff0c;可选 sudo ufw allow ssh sudo ufw allow 22…

更新 Docker 容器中的某一个文件

&#x1f504; 如何更新 Docker 容器中的某一个文件 以下是几种在 Docker 中更新单个文件的常用方法&#xff0c;适用于不同场景。 ✅ 方法一&#xff1a;使用 docker cp 拷贝文件到容器中&#xff08;最简单&#xff09; &#x1f9f0; 命令格式&#xff1a; docker cp <…

JavaEE->多线程:定时器

定时器 约定一个时间&#xff0c;时间到了&#xff0c;执行某个代码逻辑&#xff08;进行网络通信时常见&#xff09; 客户端给服务器发送请求 之后就需要等待 服务器的响应&#xff0c;客户端不可能无限的等&#xff0c;需要一个最大的期限。这里“等待的最大时间”可以用定时…

html基础01:前端基础知识学习

html基础01&#xff1a;前端基础知识学习 1.个人建立打造 -- 之前知识的小总结1.1个人简历展示1.2简历信息填写页面 1.个人建立打造 – 之前知识的小总结 1.1个人简历展示 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8&qu…

uniapp 键盘顶起页面问题

关于uniapp中键盘顶起页面的问题。这是一个在移动应用开发中常见的问题&#xff0c;特别是当输入框位于页面底部时&#xff0c;键盘弹出会顶起整个页面&#xff0c;导致页面布局错乱。 pages.json 文件内&#xff0c;在需要处理软键盘的页面添加 softinputMode 配置&#xff1…

使用 React Native 开发鸿蒙运动健康类应用的​​高频易错点总结​​

&#x1f6a8; ​​一、环境配置与工程初始化​​ ​​1. Node.js 版本冲突​​ ​​现象​​&#xff1a;DevEco Studio 报错 Unsupported Node version&#xff08;鸿蒙 RN 依赖 Node ≥18&#xff09;。​​解决​​&#xff1a; nvm install 18.16.0 # 强制锁定版本 ech…