• 1. Spring Boot 3 入门学习教程之开发第一个 Spring Boot 应用程序


    0. 前言

    Spring Boot 简化了Java企业级应用的开发, 最近更是迎来了第一个3.0.0 正式版本。

    1. Spring Boot 介绍

    Spring Boot 可帮助我们创建可以运行的独立的、生产级的基于 Spring 的应用程序。

    Spring 官方团队对Spring平台和开源的第三方库做了工业级的简化设计,可以让我们更简单的使用这些第三方库。

    • 大多数 Spring Boot 应用程序需要很少的 Spring 配置。
    • 我们可以使用 Spring Boot 创建可以通过使用java -jar或更传统的 war 部署启动的 Java 应用程序。
    • Spring 官方团队还提供了一个运行“spring scripts”的命令行工具。
    • Spring 官方团队的主要目标是:
      • 为所有 Spring 开发提供速度极快且可广泛访问的入门体验。
      • 开箱即用,但随着需求开始偏离默认值,请迅速摆脱困境。
      • 提供一系列大型项目通用的非功能特性(例如嵌入式服务器、安全性、指标、健康检查和外部化配置)。
      • 绝对没有代码生成,也不需要 XML 配置。

    2. 系统要求

    Spring Boot 3.0.0 需要 Java 17,并且兼容 Java 19(包括 Java 19 )。

    还需要Spring Framework 6.0.2或更高版本。

    Build ToolVersion
    Maven3.5+
    Gradle7.x (7.5 or later)

    2.1 Servlet容器

    除此之外,SpringBoot 也兼容任何Servlet 5.0+ 以上的容器

    2.2 GraalVM Native Image(GraalVM 原生镜像)

    我们可以使用 GraalVM 22.3 或更高版本将 Spring Boot 应用程序转换为本机镜像。

    我们还可以使用native-maven-plugin/ native-gradle-plugin插件或GraalVM 提供的native-image工具来创建镜像。

    我们还可以使用paketo-buildpacks提供的native-image 创建原生镜像。

    支持如下版本:

    3. 安装Spring Boot 开发环境

    3.1 安装JDK

    Spring Boot 3.0.0 需要 Java 17,并且兼容 Java 19(包括 Java 19 )。

    注意:

    • Oracke JDK 是官方维护的JDK版本,最后一个免费商用版本是 2019年1月15日发布的Oracle JDK 8u201和8u202
    • 其他都是付费版本或规定时间内免费,如果希望用Oracle 付费JDK,可访问 Oracle JDK 官方下载
    • 如果寻求其他替代解决方案, 具体的安装方法和其他下载链接参考: Java JDK 下载以及Oracle JDK替代解决方案

    验证是否安装成功,可以输入如下命令确认:

    java -version
    
    • 1

    执行成功后会返回如下类似的内容:

    openjdk version "17.0.4.1" 2022-08-12 LTS
    OpenJDK Runtime Environment (build 17.0.4.1+1-LTS)
    OpenJDK 64-Bit Server VM (build 17.0.4.1+1-LTS, mixed mode, sharing)
    
    • 1
    • 2
    • 3

    3.2 安装Spring Boot构建工具

    3.2.1 方式一:安装Maven

    • Spring Boot 与 Apache Maven 3.3 或更高版本兼容。
    • 如果你还没有安装 Maven,可以按照maven.apache.org上的说明进行操作。
    • 如果是Mac OSX系统,可输入如下命令通过brew包管理器安装
    brew install maven
    
    • 1
    • 如果是Ubuntu 系统,可输入如下命令通过apt 包管理器安装:
    sudo apt-get install maven
    
    • 1

    安装成功后可输入如下命令验证是否安装成功:

    mvn -v
    
    • 1

    执行成功后会返回类似如下的内容:

    Apache Maven 3.8.5 (3599d3414f046de2324203b78ddcf9b5e4388aa0)
    Maven home: usr/Users/developer/tools/maven/3.8.5
    Java version: 17.0.4.1, vendor: BellSoft, runtime: /Users/developer/sdkman/candidates/java/17.0.4.1-librca
    
    • 1
    • 2
    • 3
    • 使用 Spring Boot Maven 插件,请在项目的pom.xmlplugins节点中添加如下插件:
    <plugin>
         <groupId>org.springframework.bootgroupId>
         <artifactId>spring-boot-maven-pluginartifactId>
     plugin>
    
    • 1
    • 2
    • 3
    • 4

    spring-boot-maven-plugin插件的作用是将当前项目打包成可执行jar

    如果使用release或版本,您还需要添加适当的pluginRepository元素,如以下清单所示:

    <pluginRepositories>
        <pluginRepository>
            <id>spring-snapshotsid>
            <url>https://repo.spring.io/snapshoturl>
        pluginRepository>
        <pluginRepository>
            <id>spring-milestonesid>
            <url>https://repo.spring.io/milestoneurl>
        pluginRepository>
    pluginRepositories>
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10

    3.2.2 方式二:安装Gradle

    Spring Boot 与 Gradle 7.x(7.5 或更高版本)兼容。

    如果你还没有安装 Gradle,可以按照gradle.org上的说明进行操作。

    Gradle下载安装配置以及与Maven用法对比

    下面是一个使用Spring Boot Gradle 插件打包成可执行jar的示例:

    build.gradle

    plugins {
      id 'java'
      id 'org.springframework.boot' version '3.0.0'
      id 'io.spring.dependency-management' version '1.1.0'
    }
    
    group = 'com.example'
    version = '0.0.1-SNAPSHOT'
    sourceCompatibility = '17'
    
    repositories {
      mavenCentral()
    }
    
    dependencies {
      implementation 'org.springframework.boot:spring-boot-starter'
      testImplementation 'org.springframework.boot:spring-boot-starter-test'
    }
    
    tasks.named('test') {
      useJUnitPlatform()
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 安装Spring Boot CLI
      一般情况,我们不需要安装Spring Boot CLI只有当不通过IDE运行,而是通过脚本来部署,测试或运行Spring Boot时候才需要。
    • Spring Boot CLI(命令行界面)是一个命令行工具,可用于使用 Spring 快速制作可执行Jar
    • Spring Boot CLI允许我们运行Groovy脚本,这意味着我们可以拥有熟悉的类似 Java 的语法,而没有那么多模版代码。
    • 我们不需要使用 CLI 来使用 Spring Boot, 但这是在没有 IDE 的情况下启动 Spring 应用程序的快速方法
    • 手动安装Spring Boot CLI

    3.3 选择你的开发IDE

    Spring Boot 不需要任何特殊工具集成,因此我们可以使用任何 IDE 或文本编辑器。

    4. 开发第一个Spring Boot 应用程序

    4.1 创建我们的第一个Spring Boot 应用程序

    1. Spring 官方团队提供了一个在线的项目构建生成器可以用来快速创建我们的项目:https://start.spring.io/

    在这里插入图片描述
    2. 选择web模块,然后点击GENERATE 生成按钮,就会将项目下载下来。
    在这里插入图片描述

    注意:
    实际上使用的时候,Intellij idea 已经自带集成了start.sprign.io ,因此可以直接在IDE中获取即可。
    关于更多详细介绍,请参考Spring Boot 2 中的讲解 Spring Boot 2.x 最佳实践之构建 Hello World web 应用程序

    3.我们在项目的根目录创建一个叫做api的文件夹
    在这里插入图片描述
    4. 然后新建一个HomeEndPoint.java文件,作为我们的接口端点,也就是controller

    package com.xingyun.springbootwithhelloworldwebsample.api;
    
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RestController;
    
    /***
     * @author qingfeng.zhao
     * @date 2022/11/26
     * @apiNote
     */
    @RestController
    public class HomeEndPoint {
    
        @RequestMapping("/")
        public String home(){
            return "Hello World!";
        }
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    1. 点击运行按钮
      在这里插入图片描述
      当出现如下内容,说明程序启动完成:
      在这里插入图片描述

    2. 浏览器打开:http://127.0.0.1:8080

    然后我们可以看到网页上已经输出了我们写的第一行代码
    在这里插入图片描述

    代码的意思很简单,告诉Spring 这是一个控制器,当访问/ 请求的时候,返回“Hello World!”.

    恭喜你,你已经学会使用Spring Boot 开发第一个最简单的web应用程序了。

    4.2 源码下载

    git clone -b spring-boot-3.0.0-release https://github.com/spring-boot-code-sample/spring-boot-with-hello-world-web-sample/tree/spring-boot-3.0.0-release
    
    • 1

    在这里插入图片描述

    注意:

    • 以后会按照这个方式进行迭代,分支以spring boot 版本命名
    • 切换分支请使用-b 参数指定要下载的分支,默认main分支是最新版本

    3 寻求帮助

    如果在学习Spring Boot 3. 的过程中遇到困惑或问题可以通过如下途径解决:

  • 相关阅读:
    CAMX模型大气臭氧来源解析模拟与臭氧成因分析实践技术应用
    你也可以很硬核「GitHub 热点速览 v.22.13」
    Spring Boot DevTools,实现自动应用重启、自动刷新浏览器以及静态资源热加载等功能
    在 centos7 上安装Docker
    (七)笔记.net core学习之反射、加载dll、读取moudle、类、方法、特性
    Lfu缓存在Rust中的实现及源码解析
    前台页面从数据库中获取下拉框值
    SpringSecurity详解
    【从零开始学习 SystemVerilog】3.1.3、SystemVerilog 控制流—— for 循环
    物通博联5G工业智能网关赋能智能制造,打造智能工厂
  • 原文地址:https://blog.csdn.net/hadues/article/details/128056208