👏🏻 你好!欢迎访问「AI免费学习网」,0门教程,教程全部原创,计算机教程大全,全免费!

1 Spring Boot简介之什么是Spring Boot

引言

在现代Java应用程序开发中,Spring Boot已成为一种广泛使用的框架,它大大简化了基于Spring的应用程序的开发过程。在本篇中,我们将探讨Spring Boot的基本概念、背景及其重要性。

什么是Spring Boot?

Spring Boot是一个开源的Java框架,它基于Spring框架构建,用于简化Java应用程序的开发和部署过程。它的核心特点是支持“约定优于配置”的理念,从而大幅减少开发者所需的配置量,让开发者专注于业务逻辑的实现。

1. Spring Boot的起源

Spring Boot项目于2013年首次发布,其目标是消除开发者在启动新项目时所需繁琐的配置步骤。它允许开发者快速创建独立的、生产级别的基于Spring的应用程序,无需深入了解底层的各种配置细节。

2. Spring Boot的主要特征

虽然我们将在下一篇中详细讨论,同时了解Spring Boot的一些基本特征是有益的:

  • 自动配置Spring Boot能够根据项目的库和jar依赖自动推断配置,减少手动配置的步骤。
  • 独立运行:应用程序可以打包为一个可执行的JAR文件,用户可以通过命令行运行该JAR文件。
  • 生产就绪:提供了很多用于监控和管理应用的功能,可以在生产环境中轻松配置。
  • 简化依赖管理Spring Boot提供了一套默认的依赖关系,可以通过Spring Boot Starter来简化配置和引入相关依赖。

3. Spring Boot的基本结构

在使用Spring Boot开发应用程序时,项目通常会有以下基本结构:

1
2
3
4
5
6
7
8
9
10
11
my-spring-boot-app/
├── src/
│ ├── main/
│ │ ├── java/
│ │ │ └── com/
│ │ │ └── example/
│ │ │ └── myapp/
│ │ │ └── MySpringBootApplication.java
│ │ └── resources/
│ │ └── application.properties
└── pom.xml (对于Maven项目)

其中,MySpringBootApplication.java是应用程序的主类,也是项目的入口。

4. 创建第一个Spring Boot应用

为了更好地理解Spring Boot,我们来创建一个简单的RESTful API应用程序。

步骤1:创建一个Spring Boot项目

你可以使用Spring Initializr网站(https://start.spring.io/)生成项目。选择以下参数:

  • Project: Maven Project
  • Language: Java
  • Spring Boot: 2.7.x或以上
  • Dependencies: Spring Web

步骤2:编写代码

下载并解压生成的项目,然后打开MySpringBootApplication.java,并修改如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
package com.example.myapp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@SpringBootApplication
@RestController
public class MySpringBootApplication {

public static void main(String[] args) {
SpringApplication.run(MySpringBootApplication.class, args);
}

@GetMapping("/")
public String hello() {
return "Hello, Spring Boot!";
}
}

步骤3:运行应用

在项目目录中执行以下命令:

1
./mvnw spring-boot:run

访问 http://localhost:8080/,你应该能看到输出Hello, Spring Boot!

总结

Spring Boot通过简化配置和引导开发,帮助开发者快速上手Spring框架,它的自动化功能和友好的开发体验使其在Java开发社区广受欢迎。在下一篇中,我们将更深入探讨Spring Boot的特性,以及它如何为开发者带来更多便利和效率。请继续关注我们的系列教程,以便更全面地了解Spring Boot

分享转发

2 Spring Boot简介之Spring Boot的特性

在上一篇文章中,我们讨论了什么是Spring Boot,了解了它的基本概念和目标。接下来,我们将深入探讨Spring Boot的特性,这些特性使其成为现代Java开发中的一种流行选择。

1. 自动配置

Spring Boot的自动配置是它的一大核心特性。通过自动配置,Spring Boot可以根据项目的类路径、Bean定义和各种属性配置,自动设定Spring应用所需的配置。例如,如果你在项目中添加了Spring MVC相关的依赖,Spring Boot会自动配置所需的Bean,省去了手动配置的繁琐过程。

1
2
3
4
5
6
7
8
@RestController
public class HelloController {

@GetMapping("/hello")
public String hello() {
return "Hello, Spring Boot!";
}
}

在上面的示例中,只需要定义一个控制器,Spring Boot会自动配置HTTP请求的处理。

2. 独立运行

Spring Boot应用是独立的,不需要外部的Servlet容器。例如,你可以用内嵌的Tomcat、Jetty或Undertow来运行应用。只需要在pom.xml中添加相关的依赖,如下例:

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

然后,你可以通过运行主程序类来启动应用:

1
2
3
4
5
6
7
@SpringBootApplication
public class DemoApplication {

public static void main(String[] args) {
SpringApplication.run(DemoApplication.class, args);
}
}

只需简单的一行代码,应用便启动并可以服务于HTTP请求。

3. 起步依赖

Spring Boot通过起步依赖(Starter Dependencies)来简化开发过程。起步依赖是一种方便的高度集成的依赖管理方式,它组合了一组常用依赖,开发者只需添加一个依赖即可引入相关的所有功能模块。

例如,如果你想使用Spring Data JPA,只需添加如下依赖即可:

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

这种方式大大降低了开发者的负担,使得项目的配置和管理更为轻松。

4. 外部化配置

Spring Boot支持将配置外部化,这样可以将应用的属性文件、YAML文件、环境变量等配置分开管理。开发者可以使用application.propertiesapplication.yml文件来集中管理配置。

例如,可以在application.properties中配置数据库连接信息:

1
2
3
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password

这种形式的配置提供了很大的灵活性,允许在不同环境中使用不同的配置。

5. 生产级特性

Spring Boot集成了一些生产级的特性,如监控度量健康检查。通过Spring Boot Actuator模块,可以方便地监控应用的状态和性能。

只需添加依赖:

1
2
3
4
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>

然后,你可以通过HTTP请求来访问应用的健康状况:

1
GET /actuator/health

Spring Boot会返回应用的当前健康状况,方便运维人员进行监控。

6. 简化的构建和部署

Spring Boot提供了一种简单的构建和部署方式。结合Maven或Gradle,开发者可以快速打包并生成可执行的JAR文件,部署过程变得异常简单。

执行以下命令可以打包应用:

1
mvn clean package

打包后,你可以简单地通过以下命令运行生成的JAR文件:

1
java -jar target/demo-0.0.1-SNAPSHOT.jar

总结

在本节中,我们讨论了Spring Boot的几个重要特性,包括自动配置、独立运行、起步依赖、外部化配置、生产级特性及简化的构建和部署。这些特性使得Spring Boot在开发快速、高效且易于维护的Java应用时变得异常便利和强大。

在下一篇文章中,我们将重点讨论Spring Boot的优点,继续深入这个框架的魅力所在。

分享转发

3 Spring Boot简介之Spring Boot的优点

在上一篇中,我们讨论了Spring Boot的特性,包括自动配置、嵌入式服务器和起步依赖等内容。这些特性使得Spring Boot在开发现代应用时显得尤为强大。在这一部分,我们将探讨Spring Boot的优点,体会它为何在Java开发社区中如此受欢迎。

1. 简化配置

Spring Boot的一个主要优点就是简化配置。传统的Spring配置通常需要编写大量的配置文件(通常是XML格式),而Spring Boot通过注解和约定优于配置的原则,允许开发者几乎不需要复杂的配置就能够启动一个Spring应用。

例如,使用Spring Boot,您可以轻松实现RESTful API。只需添加一个简单的注解,即可创建控制器:

1
2
3
4
5
6
7
8
9
10
11
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

@GetMapping("/hello")
public String sayHello() {
return "Hello, Spring Boot!";
}
}

在这个例子中,我们没有涉及复杂的配置,直接使用了@RestController注解,便完成了一个基本的REST API。

2. 自动化配置

另一大优点是自动化配置。Spring Boot通过@EnableAutoConfiguration注解,可以根据类路径中的库自动配置Spring应用所需要的各种资源。例如,如果你的项目中包含了Spring MVC,则Spring Boot会自动配置相关的Web服务器。

下面是如何启用自动配置的示例:

1
2
3
4
5
6
7
8
9
10
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class Application {

public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
}

只需添加@SpringBootApplication注解,您就可以将自动配置与组件扫描结合在一起,大幅减少了手动配置的工作量。

3. 起步依赖

Spring Boot提供了起步依赖(Starters)来简化构建配置。这些起步依赖将相关的库组合在一起,您只需在pom.xml文件中添加一个起步依赖,就能引入众多相关的依赖。

例如,如果您想简单地使用Spring Web和Spring JPA,可以这样添加起步依赖:

1
2
3
4
5
6
7
8
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

这样您的项目就可以使用Spring MVC和JPA,无需手动添加每个库的依赖。

4. 嵌入式服务器

Spring Boot允许您将应用打包成一个独立的可执行JAR文件,这其中包含了嵌入式Web服务器(如Tomcat或Jetty)。这意味着您不再需要单独部署应用到服务器上,可以通过简单地运行JAR文件启动应用:

1
java -jar your-app.jar

这样不仅减少了部署的复杂性,也提高了开发和测试的效率。

5. 社区支持与文档

最后,但同样重要的是,Spring Boot拥有强大的社区支持与文档。Spring Boot团队致力于提供高质量的文档,涵盖从基础安装到复杂配置的方方面面。官方网站提供了详细的指南、示例代码和API文档,使得开发者能够轻松上手。

总结

Spring Boot凭借其众多优点,如简化配置、自动化配置、起步依赖、嵌入式服务器以及强大的社区支持,使得Java Spring开发变得更加高效。在下一篇中,我们将进入环境搭建部分,具体讲解如何安装和配置JDK,以便为深入学习Spring Boot做好准备。

分享转发

4 JDK安装

在前一篇文章中,我们简单介绍了Spring Boot的优点,包括开发效率高、简化配置和强大的社区支持等。在开始我们的Spring Boot项目之前,首先需要做好环境的搭建。其中,最重要的一步便是安装Java开发工具包(JDK)。毕竟,Spring Boot是基于Java构建的,因此需要确保我们有正确的Java环境。

选择合适的JDK版本

在安装JDK之前,我们需要选择一个合适的版本。一般来说,Spring Boot支持JDK 8及其以上版本。推荐使用最新的LTS(长期支持)版本,例如,JDK 11或JDK 17。这些版本通常会有较好的性能和较长的支持周期。

下载JDK

  1. 访问Oracle官网或OpenJDK官网

    我们可以选择Oracle的JDK,也可以选择OpenJDK。这里以Oracle JDK为例,但OpenJDK的安装过程类似。

  2. 下载适合的平台

    在下载页面中,选择适合你操作系统的安装包。如果你是Windows用户,可以下载.exe文件;Linux用户可以下载.tar.gz文件;macOS用户可以选择.dmg文件进行安装。

安装JDK

Windows平台

  1. 运行安装程序
    双击下载的安装程序,按照向导指示完成安装步骤。

  2. 设置环境变量
    安装完成后,需要配置JAVA_HOMEPATH环境变量。右击“此电脑”->“属性”->“高级系统设置”->“环境变量”,在系统变量中添加或修改如下变量:

    • JAVA_HOME: 指向你的JDK安装目录,例如 C:\Program Files\Java\jdk-17.
    • Path: 在Path中添加 %JAVA_HOME%\bin

macOS/Linux平台

  1. 解压并安装
    在终端中,可以使用如下命令解压下载的文件:

    1
    tar -xvzf openjdk-17_linux-x64_bin.tar.gz

    然后,将解压后的文件移动到 /usr/local/ 目录下。

  2. 设置环境变量
    打开~/.bash_profile(或~/.bashrc),添加如下内容:

    1
    2
    export JAVA_HOME=/usr/local/jdk-17
    export PATH=$JAVA_HOME/bin:$PATH

    然后,运行以下命令使更改生效:

    1
    source ~/.bash_profile

验证JDK安装

完成JDK安装和环境变量配置后,可以用命令行验证安装是否成功。

在命令行中输入以下命令:

1
java -version

如果安装成功,你将看到类似如下的信息:

1
2
3
openjdk version "17.0.1" 2021-10-19
OpenJDK Runtime Environment (build 17.0.1+12-39)
OpenJDK 64-Bit Server VM (build 17.0.1+12-39, mixed mode, sharing)

结语

至此,我们已经成功安装了JDK,并配置好了环境变量,为接下来的Spring Boot开发打下了基础。在下一篇文章中,我们将继续进行环境搭建,重点讲解Maven和Gradle的安装与配置,这些都是Spring Boot项目不可或缺的构建工具。

希望大家在安装过程中遇到问题时,能够耐心解决,确保环境搭建顺利。准备好了吗?我们下篇见!

分享转发

5 环境搭建之Maven/Gradle安装

在前面的章节中,我们完成了JDK的安装,这是使用Spring Boot框架的基础。在本节中,我们将介绍如何在你的开发环境中安装和配置构建工具Maven和Gradle。构建工具是必不可少的,因为它们帮助我们管理项目的依赖、构建项目并发布应用。

Maven安装

1. 下载Maven

首先,你需要从Apache Maven的官方网站(download)下载最新版本的Maven:

选择一个合适的版本,比如apache-maven-3.8.6-bin.zip,并下载到你的工作目录。

2. 解压缩Maven

下载完成后,解压缩下载的zip文件到你希望安装的位置,比如 C:\Program Files\Apache\Maven(在Windows上)或者 /usr/local/apache-maven(在Linux或Mac上)。

3. 配置环境变量

为了能够在任何地方使用Maven命令,你需要配置系统的环境变量。

Windows

  1. 右击“计算机”,选择“属性”。

  2. 点击“高级系统设置”,然后选择“环境变量”。

  3. 在“系统变量”中,点击“新建”,添加以下信息:

    • 变量名:MAVEN_HOME
    • 变量值:C:\Program Files\Apache\Maven\apache-maven-3.8.6
  4. 找到Path变量,选择后点击“编辑”,添加以下路径:

    • %MAVEN_HOME%\bin

Linux/Mac

在终端中,编辑你的Shell配置文件(例如~/.bashrc~/.zshrc),添加以下内容:

1
2
export MAVEN_HOME=/usr/local/apache-maven/apache-maven-3.8.6
export PATH=$MAVEN_HOME/bin:$PATH

然后,执行以下命令使改动生效:

1
source ~/.bashrc

4. 验证安装

在终端(或命令提示符)中运行以下命令,以确保Maven顺利安装:

1
mvn -v

如果安装成功,你应该可以看到Maven的版本信息。

Gradle安装

1. 下载Gradle

和Maven类似,你需要从Gradle的官方网站(download)下载最新版本的Gradle:

选择适合的版本并下载,例如gradle-7.5-bin.zip

2. 解压缩Gradle

将下载的zip文件解压缩到一个你希望安装的路径,比如 C:\Program Files\Gradle\gradle-7.5(Windows上)或 /usr/local/gradle/gradle-7.5(Linux或Mac上)。

3. 配置环境变量

Windows

  1. 按照与Maven相同的步骤,打开“环境变量”配置。

  2. 新建一个系统变量:

    • 变量名:GRADLE_HOME
    • 变量值:C:\Program Files\Gradle\gradle-7.5
  3. Path变量中添加以下路径:

    • %GRADLE_HOME%\bin

Linux/Mac

在你的Shell配置文件中,添加以下内容:

1
2
export GRADLE_HOME=/usr/local/gradle/gradle-7.5
export PATH=$GRADLE_HOME/bin:$PATH

通过运行以下命令使改动生效:

1
source ~/.bashrc

4. 验证安装

使用如下命令确认Gradle已成功安装:

1
gradle -v

你应该能够看到Gradle的版本信息。

小示例:使用Maven构建Spring Boot项目

为了让你对Maven的使用有一个初步的了解,我们可以一起创建一个简单的Spring Boot项目。

  1. 在终端中,使用以下命令创建项目:
1
mvn archetype:generate -DgroupId=com.example -DartifactId=my-spring-boot-app -DarchetypeArtifactId=maven-archetype-quickstart -DinteractiveMode=false
  1. 进入项目目录:
1
cd my-spring-boot-app
  1. 添加Spring Boot依赖到pom.xml文件中:
1
2
3
4
5
6
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter</artifactId>
</dependency>
</dependencies>
  1. 打包项目:
1
mvn clean package

通过这些基本步骤,你可以快速搭建一个Spring Boot项目,后续将与IDE的集成一起讨论。

总结

在本节中,我们介绍了如何安装和配置Maven和Gradle,这是Spring Boot开发的重要组成部分。现在你已经建立了基础环境,接下来,我们将介绍如何安装集成开发环境(IDE),以便于你更高效地开发Spring Boot应用程序。

分享转发

6 环境搭建之IDE安装

在本篇文章中,我们将继续上篇关于Maven/Gradle安装的内容,深入探讨如何在开发环境中安装和配置一个强大的IDE(集成开发环境),以便为我们开发Spring Boot应用程序做准备。

选择合适的IDE

在Java开发中,有多种集成开发环境可以选择,最常用的包括:

  • IntelliJ IDEA
  • Eclipse
  • Spring Tool Suite (STS)

在这里,我们将以IntelliJ IDEA为例,介绍如何安装和配置IDE。不过,Eclipse和STS的安装步骤也是类似的,读者可以根据自己的需要进行选择。

安装IntelliJ IDEA

  1. 下载IntelliJ IDEA

    首先,访问官方页面下载IntelliJ IDEA。选择适合你的操作系统的版本。我们推荐使用Ultimate版,因为它支持更多的Java EE功能,但如果你只需要基本功能,Community版也是一个不错的选择。

  2. 安装IDE

    完成下载后,按照下列步骤安装IDE:

    • 双击下载的安装包。
    • 按照提示选择安装路径,并选择是否要创建桌面快捷方式。
    • 安装完成后,启动IntelliJ IDEA。
  3. 配置JDK

    启动IDE后,我们需要配置JDK(Java Development Kit)。确保你已经安装了JDK 8或更高版本。如果还没有安装JDK,请访问Oracle JDK下载页面进行下载和安装。

    在IntelliJ IDEA中,打开“File”菜单,选择“Project Structure”(或按 Ctrl + Alt + Shift + S),在“SDKs”部分点击“+”添加你安装的JDK路径。

  4. 安装Spring Boot插件

    为了获得更好的Spring Boot开发体验,我们可以安装Spring Boot相关的插件。通常情况下,IntelliJ IDEA的Ultimate版已经内置了Spring支持,但为了确保一切正常,你可以检查并安装最新的插件:

    • 打开“File”菜单 -> “Settings”(或在Mac上选择“Preferences”)。
    • 选择“Plugins”选项卡,搜索“Spring Boot”,并确保它已经安装。
  5. 创建一个新项目

    安装和配置完成后,我们可以创建一个新的Spring Boot项目。虽然我们将在下一篇文章中使用Spring Initializr创建项目,但在此,我们可以预先熟悉一下这个过程。选择“File” -> “New” -> “Project”,选择“Spring Initializr”,并确保你的JDK设置正确。

结语

通过完成以上步骤,你将成功安装并配置IntelliJ IDEA,以支持Spring Boot开发。接下来,我们将在下一篇文章中,使用Spring Initializr来创建我们的第一个Spring Boot应用程序。确保你已经安装好IDE,并完成了JDK的设置,我们将在实际项目中继续深入探讨Spring Boot的强大功能。

在使用IDE进行开发时,有效的使用快捷键和工具条选项,将能大大提高你的开发效率。在这过程中,不妨花时间熟悉IDE的界面和功能,为后续的开发打下坚实的基础。

敬请期待下一篇文章,内容将是关于如何使用Spring Initializr创建我们的第一个Spring Boot应用!

分享转发

7 使用Spring Initializr创建第一个Spring Boot应用

在上一篇中,我们讨论了环境搭建和IDE的安装。在本篇中,我们将深入学习如何使用Spring Initializr快速创建我们的第一个Spring Boot应用程序。通过这个过程,你将学会如何搭建项目的基础结构,并准备好进一步的开发。

什么是Spring Initializr?

Spring Initializr 是一个在线工具,专门用于生成Spring Boot项目的初始结构。它可以帮助我们快速配置项目的基本信息、依赖项以及构建工具。

使用Spring Initializr创建项目的步骤

  1. 访问Spring Initializr
    打开浏览器,访问以下网址:Spring Initializr

  2. 配置项目参数
    在页面上,你将看到多个配置选项。以下是你需要填写的主要参数:

    • Project: 选择构建工具,可以选择 MavenGradle。本教程以 Maven 为例。
    • Language: 选择程序语言 Java
    • Spring Boot: 选择版本,推荐选最新稳定版本。
    • Project Metadata: 填写项目信息的基本参数:
      • Group: 填写组织名,例如 com.example
      • Artifact: 项目名,例如 demo
      • Name: 项目显示名,추천和Artifact相同,例如 demo
      • Description: 为项目添加简短描述,比如 Demo project for Spring Boot
      • Package name: 默认与Group和Artifact组合相同,通常保持默认即可。
      • Packaging: 选择项目的打包形式,常选 Jar
      • Java: 选择你所用的JDK版本,例如 11
  3. 选择依赖项
    点击 “ADD DEPENDENCIES”,你将看到一个依赖列表。选择以下常用的依赖项:

    • Spring Web: 用于构建Web应用。
    • Spring Data JPA: 用于简化数据访问。
    • H2 Database: 使用内存数据库进行开发测试。
  4. 生成项目
    完成上述配置后,点击页面右下角的 “GENERATE” 按钮。系统将会生成一个.zip文件,你可以将其下载到本地。

  5. 解压并导入项目
    下载后,解压缩文件。打开你的IDE(如 IntelliJ IDEA 或 Eclipse),选择导入Maven项目,并按照提示完成导入。

项目结构

通过初始构建,你的项目目录结构大致如下:

1
2
3
4
5
6
7
8
9
10
11
demo
├── src
│ └── main
│ ├── java
│ │ └── com
│ │ └── example
│ │ └── demo
│ │ └── DemoApplication.java
│ └── resources
│ └── application.properties
└── pom.xml

重要文件说明

  • DemoApplication.java: 这是Spring Boot应用程序的入口类,包含main方法。
  • application.properties: 配置文件,用于设置应用程序的各种设置。
  • pom.xml: Maven配置文件,定义了项目的依赖、插件等。

案例: 创建一个简单的Hello World 控制器

现在,我们来创建一个简单的RESTful API,返回“Hello, World!”消息。

  1. 创建Controller类
    src/main/java/com/example/demo目录下,创建一个新的Java类 HelloController.java

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    package com.example.demo;

    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RestController;

    @RestController
    public class HelloController {
    @GetMapping("/hello")
    public String hello() {
    return "Hello, World!";
    }
    }
  2. 解释代码
    在上面的 HelloController 类中:

    • @RestController: 表示这是一个控制器,处理HTTP请求的类。
    • @GetMapping("/hello"): 指定当用户访问 /hello 路径时,调用 hello 方法。
    • hello() 方法返回一个简单的字符串“Hello, World!”。
  3. 运行应用程序
    看一下 DemoApplication.java 文件,你将看到如下代码:

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    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);
    }
    }

    运行 DemoApplication 类,启动Spring Boot应用,控制台上会显示应用正在运行的信息。

访问你的应用

在浏览器中输入地址 http://localhost:8080/hello,你应该会看到页面显示的内容为:

1
Hello, World!

总结

在本篇中,我们使用 Spring Initializr 创建了一个简单的Spring Boot应用,并实现了一个返回“Hello, World!”的控制器。这为我们后续的开发奠定了基础。在下一篇中,我们将深入探索如何运行Spring Boot应用,掌握更多的运行配置和调试技巧。

希望你喜欢这次的学习过程!请继续关注下一篇教程。

分享转发

8 运行第一个Spring Boot应用

在上一篇文章中,我们介绍了如何使用Spring Initializr创建一个简单的Spring Boot应用。在这一篇中,我们将学习如何运行我们刚刚创建的应用,并探索一些基本的运行机制。

1. 项目结构回顾

在我们使用Spring Initializr创建项目时,我们得到了一个标准的Spring Boot项目结构。让我们回顾一下这个项目的基本结构:

1
2
3
4
5
6
7
8
9
10
11
12
13
my-first-spring-boot-app
├── src
│ ├── main
│ │ ├── java
│ │ │ └── com
│ │ │ └── example
│ │ │ └── myfirstspringbootapp
│ │ │ └── MyFirstSpringBootApp.java
│ │ └── resources
│ │ ├── application.properties
│ │ └── static
│ │ └── templates
└── pom.xml

其中,MyFirstSpringBootApp.java是我们应用的入口文件,它包含了main方法。

2. 运行应用

2.1 使用IDE运行

最简单的方式是使用IDE(如IntelliJ IDEAEclipse)直接运行应用。确保你的IDE已经正确配置好MavenJava环境。

MyFirstSpringBootApp.java文件中,右键点击main方法并选择Run 'MyFirstSpringBootApp.main()'。你会看到控制台输出类似以下内容:

1
2023-10-01 10:00:00.000  INFO 1234 --- [           main] c.example.myfirstspringbootapp.MyFirstSpringBootApp : Started MyFirstSpringBootApp in 1.234 seconds (JVM running for 1.456)

这表明我们的Spring Boot应用已经成功启动。

2.2 使用Maven命令运行

如果你更倾向于使用命令行,可以通过以下命令来运行应用:

1
mvn spring-boot:run

确保你在项目的根目录下运行此命令。你同样会看到类似的输出,确认应用已经启动。

2.3 运行打包成的Jar文件

首先,我们需要打包我们的应用。在项目根目录下执行以下命令:

1
mvn clean package

这将会在target目录下生成一个Jar文件,例如my-first-spring-boot-app-0.0.1-SNAPSHOT.jar。然后,你可以通过以下命令来运行这个Jar文件:

1
java -jar target/my-first-spring-boot-app-0.0.1-SNAPSHOT.jar

同样,你可以观察到控制台输出,确认应用启动成功。

3. 访问应用

默认情况下,Spring Boot应用会在8080端口上运行。你可以在浏览器中访问http://localhost:8080,如果没有定义任何控制器或者路由,你可能会看到一个404 Not Found的页面。

为了创建一个简单的REST控制器返回一些内容,我们可以创建一个新的Java类,例如HelloController.java,并放在相同的包下面:

1
2
3
4
5
6
7
8
9
10
11
12
13
package com.example.myfirstspringbootapp;

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HelloController {

@GetMapping("/hello")
public String sayHello() {
return "Hello, Spring Boot!";
}
}

添加完这个控制器后,重启应用,然后访问http://localhost:8080/hello,你应该会看到:

1
Hello, Spring Boot!

4. 结束语

至此,我们成功地运行了第一个Spring Boot应用,并创建了一个简单的REST API。通过IDEMaven我们可以方便地启动和运行应用,接下来,我们将在下一篇中深入探讨如何配置Spring Boot应用,特别是application.properties文件的相关内容。

希望这一篇的内容对你有帮助,如果你在实施过程中遇到任何问题,请随时提问!

分享转发

9 Spring Boot配置之application.properties配置

在上一篇教程中,我们创建了第一个Spring Boot应用并运行了它。今天,我们将深入探讨如何配置Spring Boot应用程序的application.properties文件,这是Spring Boot中最常用的配置方式之一。

什么是application.properties?

application.properties是Spring Boot应用程序的默认配置文件。它用于定义应用程序的各种配置属性,例如数据库连接、服务器端口、日志级别等。Spring Boot会在启动时自动加载这个文件中的配置。

application.properties的基本结构

application.properties文件使用key=value格式来定义属性。例如:

1
2
3
4
5
server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=123456
logging.level.root=INFO

常见配置项

  1. 服务器配置

    • server.port: 指定Spring Boot应用运行的端口,默认是8080
    • server.servlet.context-path: 设置上下文路径,例如/myapp
  2. 数据库配置

    • spring.datasource.url: 数据库连接URL。
    • spring.datasource.username: 数据库用户名。
    • spring.datasource.password: 数据库密码。
  3. 日志配置

    • logging.level.root: 设置日志级别,例如DEBUGINFOERROR等。
    • logging.file.name: 指定日志文件的名称。

示例:数据库配置

假设你正在创建一个简单的Web应用,并且需要连接MySQL数据库。以下是一个application.properties的示例配置:

1
2
3
4
5
6
7
8
9
10
11
12
13
# 设置服务器端口为8081
server.port=8081

# MySQL数据库配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=myuser
spring.datasource.password=mypassword

# 配置HikariCP连接池
spring.datasource.hikari.maximum-pool-size=10

# 设置日志级别为DEBUG
logging.level.root=DEBUG

配置属性的访问

在Spring Boot中,您可以通过@Value注解访问application.properties中的配置属性。例如,您可以在@RestController中获取端口号和数据库用户名:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class ConfigController {

@Value("${server.port}")
private String serverPort;

@Value("${spring.datasource.username}")
private String dbUsername;

@GetMapping("/config")
public String getConfig() {
return "Server Port: " + serverPort + ", Database User: " + dbUsername;
}
}

开发中的最佳实践

  1. 敏感信息处理: 不要把敏感信息(如数据库密码)硬编码到application.properties中。可以考虑使用环境变量或加密的配置存储方案。

  2. 环境隔离: 使用不同的application-{profile}.properties文件来为不同的环境(如开发、测试、生产)配置不同的属性。例如,可以创建application-dev.propertiesapplication-prod.properties,并通过spring.profiles.active设置活跃的配置文件。

  3. 注释: 适当地给每个配置项添加注释,增加可读性。

小结

在本篇中,我们详细探讨了如何使用application.properties文件来配置Spring Boot应用,包括基本的服务器、数据库和日志配置。同时,我们还演示了如何使用@Value注解来读取配置属性。下一篇教程中,我们将讨论Spring Boot配置文件的多种形式,包括如何使用YAML文件进行配置,敬请期待!

分享转发

10 Spring Boot配置之配置文件的多种形式

在上一篇教程中,我们深入探讨了如何使用 application.properties 文件来配置 Spring Boot 应用。在本篇中,我们将研究 Spring Boot 支持的多种配置文件形式,帮助你更灵活地管理配置。

1. 使用 application.yml 文件

除了 application.properties 之外,Spring Boot 还支持使用 YAML 格式的配置文件,这种格式更为简洁且易于阅读。我们可以创建一个 application.yml 文件,内容示例如下:

1
2
3
4
5
6
7
server:
port: 8081
spring:
datasource:
url: jdbc:mysql://localhost:3306/mydb
username: root
password: password

1.1. YAML 属性

YAML 文件通过缩进来表示层级关系,相比于 application.properties,它可以让你更直观地管理复杂的属性。如果你想要覆盖 application.properties 中的配置,只需要在 application.yml 中进行修改即可。

2. 分环境配置

Spring Boot支持多种环境配置,你可以为不同的环境创建不同的配置文件。比如,针对开发、测试和生产环境,可以创建以下文件:

  • application-dev.yml
  • application-test.yml
  • application-prod.yml

当你启动应用时,可以通过 spring.profiles.active 属性指定当前使用的环境。例如,命令行启动:

1
java -jar yourapp.jar --spring.profiles.active=dev

这样,Spring Boot 会优先加载对应环境的配置文件。

3. 使用 application.propertiesapplication.yml 的优先级

在 Spring Boot 中,配置文件具有一定的加载优先级,这确保你可以灵活地复写配置。以下是优先级列表:

  1. application-{profile}.yml / application-{profile}.properties
  2. application.yml / application.properties
  3. application-{profile}.json / application-{profile}.xml
  4. application.json / application.xml

例如,若 application-dev.ymlapplication.yml 中都存在同一属性,应用启动时将以 application-dev.yml 中的值为准。

4. 使用 @Value 注解读取配置

在项目中,你可以通过 @Value 注解轻松读取配置中的属性。例如:

1
2
3
4
5
6
7
8
9
10
11
12
13
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Component;

@Component
public class AppConfig {

@Value("${server.port}")
private int serverPort;

public void printConfig() {
System.out.println("Server is running on port: " + serverPort);
}
}

在构造 AppConfig 组件时,Spring Boot 会自动将配置文件中的 server.port 值注入到 serverPort 字段中。

5. 外部配置文件

除了在 src/main/resources 中配置文件外,Spring Boot 还支持将配置文件放在外部路径。你可以通过以下方式指定外部配置文件:

1
java -jar yourapp.jar --spring.config.location=file:/path/to/config/

这样,Spring Boot 在启动时会加载指定路径下的配置文件。

6. 总结

在本节中,我们探讨了 Spring Boot 支持的多种配置文件格式及其优先级、环境配置以及如何在代码中使用这些配置。通过合理利用这些配置方式,你可以使你的 Spring Boot 应用更加灵活和易于管理。

接下来,我们将进入下一个主题:Spring Boot依赖管理之Maven依赖管理,了解如何使用 Maven 管理 Spring Boot 应用的依赖关系。

分享转发

11 Spring Boot依赖管理之Maven依赖管理

在上一篇文章中,我们探讨了Spring Boot的配置文件的多种形式,了解了如何通过application.propertiesapplication.yml进行配置。在本篇文章中,我们将深入了解Spring Boot中的依赖管理,特别是使用Maven进行依赖管理。

什么是Maven?

Maven是一个项目管理和构建工具,它被广泛用于Java项目中。它通过pom.xml文件来管理项目的依赖、构建过程和项目本身的信息。对于使用Spring Boot的项目,Maven提供了一种简便的方式来管理所有必要的依赖。

Spring Boot的Maven依赖管理

Spring Boot项目中,管理依赖的核心是设置正确的依赖项,并确保这些依赖项是兼容的。Spring Boot提供了一个强大的功能,让我们可以非常简单地引入所需的依赖库。

创建一个Maven项目

如果你还没有创建Maven项目,可以在你的IDE(如IntelliJ IDEAEclipse)中选择创建一个新的Maven项目。

修改pom.xml

在项目的根目录下找到pom.xml文件,以下是一个基本的Spring Boot项目的pom.xml文件示例:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
<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 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>

<groupId>com.example</groupId>
<artifactId>spring-boot-demo</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>

<name>spring-boot-demo</name>
<description>Demo project for Spring Boot</description>

<properties>
<java.version>17</java.version>
<spring.boot.version>3.0.0</spring.boot.version>
</properties>

<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-dependencies</artifactId>
<version>${spring.boot.version}</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>

<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>

<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>

<dependency>
<groupId>com.h2database</groupId>
<artifactId>h2</artifactId>
<scope>runtime</scope>
</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>

在上述pom.xml中,我们完成了以下几个步骤:

  1. 设置基本信息:如groupIdartifactIdversion等。
  2. 定义Java版本:通过properties标签,我们定义Java的版本。
  3. 依赖管理
    • 使用dependencyManagement引入spring-boot-dependencies,这使得我们可以使用Spring官方提供的依赖版本,而无需单独管理每个依赖的版本。
  4. 添加依赖
    • 添加spring-boot-starter-web用于构建Web应用。
    • 添加spring-boot-starter-data-jpa以支持JPA和数据库操作。
    • 添加h2数据库用于开发时的嵌入式数据库。
    • 添加spring-boot-starter-test用于单元测试。

依赖作用域

Maven中,管理依赖时可以指定不同的作用域:

  • compile(默认作用域):常规依赖,会被包括在编译和运行时。
  • provided:依赖在编译时可用,但在运行时不包含,例如Servlet API
  • runtime:在运行时可用但在编译时不可用。
  • test:在测试时可用,但在其他情况下不可用。

例如,在我们上述的pom.xml中,H2数据库被指定为runtime作用域,因为它不需要在编译时可用,只在运行时需要。

更新依赖

在进行依赖管理时,保持依赖的更新是非常重要的。你可以使用IDE的内置功能或者命令行工具来更新依赖。使用Maven时,你可以运行以下命令来更新依赖:

1
mvn clean install

小结

在本篇文章中,我们详细讨论了如何在Spring Boot项目中使用Maven进行依赖管理。我们创建了一个简单的pom.xml文件,其中包含了基本的依赖项、依赖管理以及依赖作用域的设定。依赖管理是构建Spring Boot应用程序的基础,而理解如何配置它将为后续扩展应用程序打下良好的基础。

在下一篇文章中,我们将探讨如何使用Gradle进行Spring Boot的依赖管理,敬请期待!

分享转发

12 Spring Boot依赖管理之Gradle依赖管理

在上一篇教程中,我们介绍了如何使用 Maven 进行 Spring Boot 的依赖管理。本文将重点讲解如何使用 Gradle 来管理 Spring Boot 项目的依赖,为大家提供一个全面的视角。

什么是 Gradle?

Gradle 是一款强大的构建自动化工具,它能够以简洁的 DSL(领域特定语言)描述项目构建。相比于 Maven,Gradle 提供了更灵活的构建配置能力,并且支持增量构建,使得构建速度更快。

创建 Spring Boot 项目

首先,我们可以使用 Spring Initializr 来快速生成一个适合的项目结构。在创建项目时,请选择 Gradle 作为构建工具,并选择所需的依赖项,如 Spring WebSpring Data JPA 等。

Gradle 依赖管理

一旦项目创建完成,您将看到一个名为 build.gradle 的文件,这个文件是 Gradle 的构建配置文件。我们可以在其中添加项目依赖项。以下是一个示例的 build.gradle 文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
plugins {
id 'org.springframework.boot' version '2.5.4'
id 'io.spring.dependency-management' version '1.0.11.RELEASE'
id 'java'
}

group = 'com.example'
version = '0.0.1-SNAPSHOT'
sourceCompatibility = '11'

repositories {
mavenCentral()
}

dependencies {
implementation 'org.springframework.boot:spring-boot-starter'
implementation 'org.springframework.boot:spring-boot-starter-web'
implementation 'org.springframework.boot:spring-boot-starter-data-jpa'
runtimeOnly 'mysql:mysql-connector-java'
testImplementation 'org.springframework.boot:spring-boot-starter-test'
}

在这个文件中,我们可以看到几个重要的部分:

  • plugins: 加载 Spring Boot 插件和依赖管理插件。
  • repositories: 指定依赖库的来源,mavenCentral() 表示使用 Maven 中央仓库。
  • dependencies: 定义项目依赖。implementation 表示编译时的依赖,而 runtimeOnly 表示运行时的依赖。

添加自定义依赖

想象一下,如果我们想要在项目中添加一个新的库,比如 Lombok,只需在 dependencies 部分添加如下代码:

1
2
implementation 'org.projectlombok:lombok'
annotationProcessor 'org.projectlombok:lombok'

这会使 Lombok 在编译时可用,从而减少样板代码的编写。

依赖的作用范围

在 Gradle 中,有几个关键的作用范围,每一个都有其用途:

  • implementation: 指定常规依赖,使用此依赖的项目不会传递给其下游项目。
  • api: 指定 API 依赖,使用此依赖的项目会被传递给下游项目。
  • runtimeOnly: 指定在运行时需要的依赖,但在编译时不需要。
  • testImplementation: 指定测试专用的依赖,仅在测试时使用。

使用 Gradle 构建项目

在添加了依赖之后,我们可以使用 Gradle 命令进行构建。例如,您可以使用以下命令来构建项目:

1
./gradlew build

或者,使用以下命令来运行 Spring Boot 应用:

1
./gradlew bootRun

小结

本文讨论了如何在使用 Spring Boot 的项目中,通过 Gradle 管理依赖。通过 build.gradle 文件中对依赖的定义,我们能够轻松地管理和更新项目所需的库。在接下来的教程中,我们将开始构建 RESTful API,理解其定义和使用方法。

就像我们上次提到的,MavenGradle 都是流行的构建工具,它们各有优缺点,选择取决于项目的需求。在下一篇文章中,我们将深度探讨 RESTful API 的概念,继续我们的 Spring Boot 冒险。

分享转发