SpringBoot简单体验(TODO)

article/2025/7/6 15:45:37

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 前端(TODO)

2.4 典型开发发布场景

(TODO)


http://www.hkcw.cn/article/XsDoIHBLjo.shtml

相关文章

事件驱动架构入门

主要参考资料&#xff1a; 软件架构-事件驱动架构: https://blog.csdn.net/liuxinghao/article/details/113923639 目录 简介事件队列事件日志事件收集器响应队列读事件 vs. 写事件 简介 事件驱动架构是一种系统或组件之间通过发送事件和响应事件彼此交互的架构风格。当某个事…

2024全国青少年信息素养大赛python复赛真题——计算握手次数

2024全国青少年信息素养大赛python复赛真题——计算握手次数 题目可点下面去处&#xff0c;支持在线编程&#xff0c;在线测评&#xff5e; 计算握手次数&#xff08;2024全国青少年信息素养大赛复赛真题&#xff09;_python_少儿编程题库学习中心-嗨信奥 题库收集了历届各白名…

[春秋云镜] CVE-2023-23752 writeup

首先奉上大佬的wp表示尊敬&#xff1a;&#xff08;很详细&#xff09;[ 漏洞复现篇 ] Joomla未授权访问Rest API漏洞(CVE-2023-23752)_joomla未授权访问漏洞(cve-2023-23752)-CSDN博客 知识点 Joomla版本为4.0.0 到 4.2.7 存在未授权访问漏洞 Joomla是一套全球知名的内容管理…

Trae Builder编程助手-基于Builder完成算法生成+api接口实现全流程

Trae插件下载链接 ​ 总结 使用过Builder后&#xff0c;我的感觉就是&#xff0c;可以通过嘴写代码&#xff01;&#xff01;雄起吧&#xff0c;我们程序员的口语交际能力。同时重点要先把自己的编码环境设置好&#xff0c;否则很麻烦 参考 安装过程单击Trae插件下载链接&…

python笔面试题汇总

1. 如何利用SciKit包训练一个简单的线性回归模型 利用linear_model.LinearRegression()函数 # Create linear regression object regr linear_model.LinearRegression() # Train the model using the training sets regr.fit(data_X_train, data_y_train) 2. 例举几个常用的…

pandas数据分析

数据读取 import pandas as pd df pd.read_csv(D:\my_app\python\python project\data\sample_data.csv) print(df)数据保存 import pandas as pd# 创建示例数据 data {Name: [Alice, Bob, Charlie, David, Eve],Age: [25, 30, 35, 28, 22],City: [Beijing, Shanghai, Guan…

力扣每日一题——找到离给定两个节点最近的节点

目录 题目链接&#xff1a;2359. 找到离给定两个节点最近的节点 - 力扣&#xff08;LeetCode&#xff09; 题目描述 解法一&#xff1a;双指针路径交汇法​ 基本思路 关键步骤 为什么这样可行呢我请问了&#xff1f; 举个例子 特殊情况 Java写法&#xff1a; C写法&a…

一种通用图片红色印章去除的工具设计

朋友今天下午需要处理个事情&#xff0c;问我有没有什么好的办法能够去除&#xff0c;核心问题是要去除图片上的印章。记得以前处理过类似的需求&#xff0c;photoshop操作比较简单&#xff0c;本质是做运算。这种处理方式有很多&#xff0c;比如现在流行的大模型&#xff0c;一…

Bean对象循环依赖

Spring 循环依赖是指 多个 Bean 对象之间形成相互依赖的闭环。 三级缓存解决循环依赖 缓存级别存储内容作用一级缓存完整的 Bean&#xff08;singletonObjects&#xff09;存放已初始化完成的 Bean二级缓存半成品 Bean&#xff08;earlySingletonObjects&#xff09;存放已实例…

文心快码参编国内首个软件开发智能体技术规范

近期&#xff0c;中国信息通信研究院&#xff08;简称“中国信通院”&#xff09;与中国工商银行、北京兴云数科技术有限公司、北京百度网讯科技有限公司牵头&#xff0c;联合农业银行、邮储银行、科大讯飞、腾讯、阿里、华为等二十余家头部企业&#xff0c;共同编制并正式发布…

【笔记】Windows 系统安装 Supabase CLI 完整指南(基于 Scoop)

#工作记录 前言 在进行开源项目 Suna 部署过程中&#xff0c;执行设置向导时遭遇报错&#xff1a;❌ Supabase CLI is not installed. 根据官方文档指引&#xff0c;需通过 Windows 包管理工具Scoop安装 Supabase CLI。 安装步骤记录 步骤 1&#xff1a;确保 Scoop 已正确安…

深圳南山沙河社区联合心美行动举办“青少年天赋提升”助青春成长

2025年5月29日——在六一国际儿童节到来之际&#xff0c;深圳市南山区沙河街社区联合北京红十字基金会了凡积善之家心美行动志愿团&#xff0c;共同举办“青少年能力天赋提升”主题公益讲座。活动特邀心美行动发起人、中韩医学文化特使、国际高级心理咨询师陈艳林女士担任主讲嘉…

allWebPlugin中间件VLC专用版之截图功能介绍

背景 VLC控件原有接口具有视频截图方法&#xff0c;即video对象的takeSnapshot方法&#xff0c;但是该方法返回的是一个IPicture对象&#xff0c;不适合在谷歌等现代浏览器上使用。因此&#xff0c;本人增加一个新的视频截图方法takeSnapshot2B64方法&#xff0c;直接将视频截图…

深度解析MCP协议

全面解读MCP协议&#xff1a;从技术原理到实践应用 ©作者|Monalisa 来源|神州问学 什么是MCP协议 MCP&#xff08;ModelContextProtocol&#xff09;是Anthropic在2024年11月推出的开放协议&#xff0c;旨在标准化大型语言模型与外部数据源、工具之间的交互方式。简单来…

Qt5.14.2编译的MySQL5.7.25对应64位驱动文件下载:项目核心功能/场景

Qt5.14.2编译的MySQL5.7.25对应64位驱动文件下载&#xff1a;项目核心功能/场景 【下载地址】Qt5.14.2编译的MySQL5.7.25对应64位驱动文件下载 此项目为开发者提供了Qt5.14.2编译环境下&#xff0c;MySQL5.7.25版本的64位驱动文件&#xff0c;包含libqsqlmysql.a、qsqlmysql.dl…

一文完成 Docker 部署Canel 并配置ES与MySQL 的数据同步

Docker 部署Canel 并且配置ES与MySQL 的数据同步 前期配置 开启MySQL binlog日志 [mysqld] log-binmysql-bin # 开启 binlog binlog-formatROW # 选择 ROW 模式 server_id1 # 配置 MySQL replaction 需要定义&#xff0c;不要和 canal 的 slaveId 重复创建 Canal 用户并授权…

mysql的锁-->一篇读懂所有锁机制

目录 mysql的锁 概述&#xff1a;根据mysql锁的大类型可以分为 我们先来讲一下范围最大的全局锁 使用 为什么要使用全局锁&#xff1f; 使用全局锁进行备份的缺点 表级锁 表锁 1.共享读表锁的语法 2.排斥写表锁 元数据锁 意向锁 什么是意向锁 怎么产生意向锁 意向…

免费送源码:Java+C+++MySQL C++学生信息管理系统的设计与实现 计算机毕业设计原创定制

目 录 1 绪论 1 1.1选题背景 1 1.2课题研究意义 1 1.3论文结构与章节安排 1 2 相关技术介绍 3 2.1 C语言 3 2.2 Mysql数据库 3 3 系统分析 3 3.1 可行性分析 3 3.1.1 技术可行性分析 3 3.1.2 经济可行性分析 3 3.1.3 法律可行性分析 3 3.2 系统功能分析 3 3.2.1…

达梦DTS数据迁移工具生产篇(MySQL->DM8)

本文章使用的DTS工具为 2024年9月18日的版本&#xff0c;使用的目的端DM8数据库版本为2023年12月的版本&#xff0c;注意数据库版本和DTS版本之间跨度不要太大&#xff0c;以免出现各种兼容性的报错。若发现版本差距过大时&#xff0c;请联系达梦技术服务工程师处理。 1. 迁移…

MySQL 数据库备份与还原

作者&#xff1a;IvanCodes 日期&#xff1a;2025年5月18日 专栏&#xff1a;MySQL教程 思维导图 备份 (Backup) 与 冗余 (Redundancy) 的核心区别: &#x1f3af; 备份是指创建数据的副本并将其存储在不同位置或介质&#xff0c;主要目的是在发生数据丢失、损坏或逻辑错误时进…