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會損失一些性能吧。。。