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 Framework | Spring 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.properties → server.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会损失一些性能吧。。。