SpringBoot新手入门-概述、安装及简单使用

本章节对应SpringBoot官方学习文档v3.2.1中第四章

1 SpringBoot概述

SpringBoot可帮助创建独立的、生产级的可运行的Spring应用程序。支持Spring平台和第三方库,可以轻松上手。大多数SpringBoot应用程序只需要很少的Spring配置。

可以使用SpringBoot创建 Java 应用程序,这些应用程序可以通过使用java -jar命令或更传统的war包部署的方式来启动。
SpringBoot的主要目标是:

  • 为所有 Spring开发提供更快、更广泛的入门体验。
  • 开箱即用,可使用自定义设置也可使用默认设置。
  • 提供一系列大型项目常用的非功能性特性(如嵌入式服务器、安全性、度量、健康检查和外部化配置)。
  • 绝对无需生成代码(在不使用本地图像时),也不需要 XML配置。

2 SpringBoot系统安装要求

本文学习SpringBoot使用的构建工具为Maven,服务器容器为Tomcat,官方文档还提供了Gradle、Jetty等工具的使用说明

NameVersion
JavaJDK17 or JDK 21
Spring Framework6.1.2 or later
SpringBoot3.2.1
Tomcat 10.16.0

Spring Boot应用程序可以使用GraalVM 22.3或更高版本转换为本机映像。可以使用本地构建工具Gradle/Maven插件或本地映像工具创建映像由GraalVM提供。您还可以使用本机映像Paketo构建包创建本机映像。
支持以下版本:

NameVersion
GraalVM Community22.3
Native Build Tools0.9.28

3 SpringBoot安装

SpringBoot使用时和使用标准Java类库相似,本文采用JDK17+Maven3.9.6+IDEA2023.3.2进行SpringBoot的学习
1、首先检查Java版本,Java版本建议为JDK17或21,JDK安装参见Java专栏:

java -version

2、安装Maven
前往阿帕奇官网,https://maven.apache.org/,下载apache-maven-3.9.6-bin.zip,
解压缩到本地指定文件夹即可
国内Maven需要调整指定源为阿里云,修改setting.xml文件

	<mirror>
      <!-- 指定镜像ID(可自定义名称) -->
      <id>Aliyun</id>
      <!-- 匹配中央仓库(不可修改)-->
      <mirrorOf>central</mirrorOf>
      <!-- 指定镜像名称(可自定义名称)  -->
      <name>Aliyun</name>
      <!-- 指定镜像路径(镜像地址) -->
      <url>http://maven.aliyun.com/nexus/content/groups/public</url>
    </mirror>

注意 3.9.6版本Maven默认开启禁止禁止http远端仓库,需将如下配置注释后,阿里云镜像才会生效

    <mirror>
      <id>maven-default-http-blocker</id>
      <mirrorOf>external:http:*</mirrorOf>
      <name>Pseudo repository to mirror external repositories initially using HTTP.</name>
      <url>http://0.0.0.0/</url>
      <blocked>true</blocked>
    </mirror>

3、安装IDEA
IDEA官网下载IDEA2023.3.2安装包,可下载社区版免费使用。
在IDEA的setting中配置Maven本地安装地址、默认配置文件地址和代码存储仓库地址,Maven即可正常使用。
在这里插入图片描述

4 运行第一个Demo示例工程

创建Spring项目的三种方法:

第一种方法——前往Spring官方网站生成

前往Spring官方网站https://start.spring.io/,选择对应语言,SpringBoot版本,依赖,点击生成,Spring官网会自动生成一个项目并下载到本地,解压缩后用IDE工具打开即可进行相应编程开发。
在这里插入图片描述

第二种——自行构建Spring项目

参照Spring官网文档,自行构建Spring项目,较为繁琐不推荐,但可以研究一下。
第一步,创建一个新的工程,在工程下创建pom.xml文件,文件中插如如下代码:

<?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>
<groupId>com.example</groupId>
<artifactId>myproject</artifactId>
<version>0.0.1-SNAPSHOT</version>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>3.2.1</version>
</parent>
<!-- Additional lines to be added here... -->
</project>

在这里插入图片描述
此时,构建了一个最基本的工程,可以尝试mvn -package命令进行打包测试。
第二步,Spring Boot提供了许多“启动器”,可以将jar添加到类路径中。“启动器”提供了在开发特定类型的应用程序时可能需要的依赖项。
大多数Spring Boot应用程序在POM的父部分使用spring-boot-starter-parent。
spring-boot-starter-parent是一个特殊的启动器,它提供有用的Maven默认值,还提供了一个依赖项管理部分,这样可以省略依赖的版本号。
因为我们正在开发一个web应用程序,所以我们添加了一个spring-boot-start -web依赖项。

<?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>
    <groupId>com.example</groupId>
    <artifactId>myproject</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>3.2.1</version>
    </parent>
    <!-- Additional lines to be added here... -->
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>

在这里插入图片描述
可以使用 mvn dependency:tree命令查看当前依赖结构,如上图,发现相关启动项以及Tomcat已加载成功。
第三步,在项目工程下创建目录src/main/java,这是默认情况下Maven编译源代码的目录。添加文件MyApplication.java,文件内容如下:

package com.example;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@SpringBootApplication
public class MyApplication {
@RequestMapping("/")
String home() {
return "Hello World!";
}
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}

目录结构如图:在这里插入图片描述
为方便理解该段Demo代码,现从以下几点进行分析:
1、@RestController和@SpringBootApplication注解
MyApplication类上的第一个注解是@RestController。这被称为构造型注解。它为阅读代码的人提供了提示,并为Spring提供了一些特定的提示。在本例中,我们的类是一个web @Controller,所以Spring在处理传入的web请求时会考虑它。
@RequestMapping注解提供了“路由”信息。它告诉Spring,任何带有/路径的HTTP请求都应该映射到home方法。@RestController注解告诉Spring将结果字符串直接返回给调用者
注:@RestController和@RequestMapping注解是Spring MVC注解(它们不是Spring Boot特有的)。请参阅Spring参考文档中的MVC部分了解更多细节。
2、@SpringBootApplication注解
第二个类级别的注解是@SpringBootApplication。这个注解被称为元注解,它结合了@SpringBootConfiguration, @EnableAutoConfiguration和@ComponentScan。其中,我们最感兴趣的注解是@EnableAutoConfiguration。@EnableAutoConfiguration告诉Spring Boot根据你添加的jar依赖来“猜测”你想要如何配置Spring。由于Spring -boot-starter-web添加了Tomcat和Spring MVC,因此自动配置假设您正在开发web应用程序并设置Spring。
自动配置被设计成可以很好地与“启动器”一起工作,但这两个概念并没有直接联系在一起。您可以自由地选择启动器之外的jar依赖项。Spring Boot仍然会尽力自动配置您的应用程序。
3、main方法
应用程序的最后一部分是main方法。这是一个标准方法,它遵循应用程序入口点的Java约定。我们的main方法通过调用run委托给Spring Boot的SpringApplication类。SpringApplication引导我们的应用程序,启动Spring,然后启动自动配置的Tomcat web服务器。我们需要将MyApplication.class作为参数传递给run方法,以告诉SpringApplication哪个是Spring的主要组件。还传递args数组以公开任何命令行参数。
第四步、运行Demo示例
此时,您的应用程序应该可以工作了。由于使用了spring-boot-starter-parent,因此可以使用一个有用的运行目标来启动应用程序。输入mvn spring-boot:run从根项目目录启动应用程序。您应该看到类似以下的输出:
在这里插入图片描述
如果您打开web浏览器到localhost:8080,您应该看到以下输出:
在这里插入图片描述
第五步、要优雅地退出应用程序,请按ctrl-c。
第六步,创建可执行Jar包
我们通过创建一个可以在生产环境中运行的完全自包含的可执行jar文件来完成这个示例。可执行jar(有时称为“uber jar”或“fat jar”)是包含编译后的类以及代码运行所需的所有jar依赖项的归档文件。
注:Java没有提供标准的方式来加载嵌套的jar文件(jar包本身就是jar文件的集合)。如果您希望分发一个自包含的应用程序,这可能会有问题。为了解决这个问题,许多开发人员使用“uber”jar。一个uber jar包了所有的类从应用程序的所有依赖项到单个存档。这种方法的问题是很难看到应用程序中有哪些库。同时如果在多个jar中使用相同的文件名(但具有不同的内容),则会出现问题。
Spring Boot采用了一种不同的方法,它允许您直接嵌套jar。
要创建一个可执行的jar,我们需要将spring-boot-maven-plugin添加到pom.xml中。为此,
在dependencies部分下面插入以下几行:

<build>
    <plugins>
        <plugin>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-maven-plugin</artifactId>
        </plugin>
    </plugins>
</build>

注:spring-boot-starter-parent POM包含要绑定的配置重新包装的目标。如果不使用父POM,则需要声明它配置自己。有关详细信息,请参阅插件文档。
保存pom.xml并从命令行运行mvn package命令,如下所示:
在这里插入图片描述
如果查看目标目录,应该会看到myproject-0.0.1-SNAPSHOT.jar。文件应该是大约18 MB大小。如果你想看一下jar包内部,你可以使用jar tvf,如下所示:
在这里插入图片描述
您还应该在原始目标目录中看到一个名为myproject-0.0.1-SNAPSHOT.jar的小得多的文件。这是Maven在Spring Boot重新打包之前创建的原始jar文件。
要运行该应用程序,请使用java -jar命令,如下所示:
在这里插入图片描述
记得使用ctrl-c退出程序。

第三种——IDE自带项目构建

打开IDEA,创建一个Maven项目,选择JAVA和Maven点击创建
在这里插入图片描述
IDEA会自动创建一个Maven项目,后续类似之前Spring相关配置进行配置即可,免去目录结构,pom文件格式书写等前置程序。
在这里插入图片描述

  • 26
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值