当前位置: 首页 > article >正文

SpringBoot简单体验

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.lryc.cn/news/2396038.html

相关文章:

  • 【系统架构设计师】2025年上半年真题论文回忆版: 论系统负载均衡设计方法(包括解题思路和参考素材)
  • 2025年通用 Linux 服务器操作系统该如何选择?
  • Azure devops 系统之五-部署ASP.NET web app
  • Hadoop是什么
  • 学习路之PHP--easyswoole_panel安装使用
  • 结合 AI 编程,让前端开发更简单:趋势、方法与实践
  • 【拓扑排序】P6560 [SBCOI2020] 时光的流逝|普及+
  • SSRF 接收器
  • 【设计模式】责任链
  • unix/linux source 命令,其高级使用
  • 邮件验证码存储推荐方式
  • Allegro 输出生产数据详解
  • FastAPI MCP 快速入门教程
  • uni-app学习笔记二十一--pages.json中tabBar设置底部菜单项和图标
  • 【Redis】基本命令
  • 爬虫工具链的详细分类解析
  • 鸿蒙编译ffmpeg库
  • 哈希:闭散列的开放定址法
  • Unity-QFramework框架学习-MVC、Command、Event、Utility、System、BindableProperty
  • FPGA实现CNN卷积层:高效窗口生成模块设计与验证
  • LeetCode 3068.最大节点价值之和:脑筋急转弯+动态规划(O(1)空间)
  • 2.2HarmonyOS NEXT高性能开发技术:编译优化、内存管理与并发编程实践
  • BLIP-2
  • 【Go-6】数据结构与集合
  • 支持向量机(SVM)例题
  • SQL中各个子句的执行顺序
  • PHP下实现RSA的加密,解密,加签和验签
  • 本地部署消息代理软件 RabbitMQ 并实现外部访问( Windows 版本 )
  • 每日c/c++题 备战蓝桥杯(P2240 【深基12.例1】部分背包问题)
  • Java异步编程:CompletionStage接口详解