为了账号安全,请及时绑定邮箱和手机立即绑定

Springboot框架入门教程:轻松搭建第一个web应用

标签:
SpringBoot
概述

Spring Boot框架是由Pivotal团队提供的一款开源框架,旨在简化Spring应用的搭建与开发过程。它通过自动配置和约定优于配置的方式,帮助开发者快速搭建独立的、生产级别的应用,减少了大量配置工作。Spring Boot框架支持内置的web服务器、数据库连接等多种功能,使得开发者可以更加专注于业务逻辑的实现。

引入Spring Boot框架
简介Spring Boot

Spring Boot是由Pivotal团队提供的开源框架,旨在简化新Spring应用的初始搭建以及开发过程。它通过约定优于配置的方式,帮助开发者快速搭建独立的、生产级别的应用。Spring Boot的核心功能是简化Spring应用程序的配置过程,使得开发者可以更专注于业务逻辑的实现。

Spring Boot旨在提供一种快速、简易的方式来创建独立的、生产级别的基于Spring的应用程序。它为Spring开发者提供了默认配置,以减少配置的工作量和复杂性。Spring Boot的核心特性包括:

  • 内置的web服务器支持(如Tomcat、Jetty和Undertow)。
  • 自动配置支持,使得开发者不必编写大量配置代码。
  • 对第三方库的嵌入式依赖管理。
  • 生产就绪的特性,如健康检查、指标收集等。
  • 强大的日志框架集成,如Logback。
  • 集成测试支持,使得单元测试更为简便。
Spring Boot的优势

Spring Boot的好处在于它大大简化了新Spring应用的搭建过程,减少了开发者在配置上的工作量,使得开发者可以更专注于业务逻辑的实现。以下是Spring Boot的一些主要优势:

  1. 减少配置:Spring Boot提供了一种约定优于配置的方式,通过自动配置来减少开发者所需的配置工作。例如,它自动配置web服务器、数据库连接等,开发者只需关注业务逻辑即可。
  2. 快速启动:Spring Boot可以帮助开发者快速搭建一个全新的Spring项目,从项目创建到运行,整个过程非常快速。
  3. 生产就绪:Spring Boot内置了许多生产就绪的特性,如健康检查、指标收集等,使得开发者更容易构建生产级别的应用。
  4. 依赖管理:Spring Boot提供了内置的依赖管理,能够自动处理版本冲突,使得依赖管理更为简单。
  5. 内置的web服务器支持:Spring Boot支持内置的web服务器(如Tomcat、Jetty和Undertow),使得开发者可以更方便地构建web应用。
  6. 集成测试支持:Spring Boot提供了集成测试的支持,使得单元测试更容易编写和执行。
Spring Boot的适用场景

Spring Boot适用于需要快速搭建、简化配置的Spring应用。它特别适用于以下场景:

  1. 独立的web应用:Spring Boot内置了web服务器的支持,可以直接运行独立的web应用,无需额外的web容器。
  2. 微服务应用:Spring Boot适用于构建微服务应用,它提供了很多微服务相关的特性,如服务发现、熔断、负载均衡等。
  3. 快速原型开发:对于需要快速原型开发的应用,Spring Boot提供了快速搭建和配置的能力,使得开发者可以快速验证想法。
  4. API接口开发:Spring Boot内置了RESTful API的支持,适合用于开发API接口,如REST接口的创建和测试。
  5. 简单的批处理任务:对于简单的批处理任务,Spring Boot提供了快速构建和运行的能力,可以快速创建和执行批处理任务。
环境搭建
操作系统和开发工具准备

开发Spring Boot应用需要的操作系统环境和开发工具如下:

  • 操作系统:任何支持Java的系统,如Windows、Linux、macOS等。
  • Java环境:需要安装Java开发工具包(JDK),建议使用Java 8或更高版本。
  • 开发工具:推荐使用IntelliJ IDEA或Eclipse等IDE(集成开发环境),这些IDE提供了对Spring Boot的良好支持。以下是如何在不同操作系统上安装这些开发环境的简要步骤:

在Windows上安装Java环境

  1. 访问Oracle官网或Adoptium官方下载页面,下载JDK 8或更高版本。
  2. 运行下载的安装程序,根据安装向导进行安装。
  3. 安装完成后,设置环境变量:
    • 打开“系统属性”窗口。
    • 点击“环境变量”按钮。
    • 在“系统变量”区域,新建或编辑JAVA_HOME环境变量,值设置为JDK安装路径。
    • 编辑Path环境变量,添加%JAVA_HOME%\bin

在Linux上安装Java环境

  1. 使用终端命令行执行以下操作:
    sudo apt update
    sudo apt install openjdk-11-jdk
  2. 验证安装是否成功:
    java -version

在macOS上安装Java环境

  1. 使用Homebrew安装JDK:
    brew install --cask adoptopenjdk
  2. 验证安装是否成功:
    java -version

安装IDE

  1. IntelliJ IDEA
    • 访问官网下载页面,选择社区版或专业版(取决于需要的功能)。
    • 安装完成后,启动IDE,首次启动时进行一些必要的配置,如选择安装语言、设置IDE外观等。
    • 在欢迎页面,点击“Configure” -> “Plugins”,确保安装了Spring插件。
  2. Eclipse
    • 访问官网下载页面,选择Eclipse IDE for Enterprise Java Developers或Spring Tools Suite。
    • 安装完成后,启动Eclipse,首次启动时进行一些必要的配置,如选择安装语言、设置IDE外观等。
    • 在Eclipse中安装Spring插件:点击“Help” -> “Eclipse Marketplace”,搜索“Spring Tools Suite”,选择并安装。
Maven/Gradle构建工具安装

Spring Boot项目通常使用Maven或Gradle进行构建。以下是安装和配置这些构建工具的步骤。

Maven安装

  1. 下载Maven
    • 访问Maven官网,选择下载选项,下载最新的稳定版本。
    • 解压下载的压缩包到指定目录。
  2. 设置环境变量
    • 打开“系统属性”窗口。
      .
  3. 验证安装
    • 打开终端或命令行工具,输入mvn -v,检查输出是否显示Maven版本信息。

Gradle安装

  1. 下载Gradle
    • 访问Gradle官网,选择下载选项,下载最新的稳定版本。
    • 解压下载的压缩包到指定目录。
  2. 设置环境变量
    • 打开“系统属性”窗口。
    • 点击“环境变量”按钮。
    • 在“系统变量”区域,新建或编辑GRADLE_HOME环境变量,值设置为Gradle安装路径。
    • 编辑Path环境变量,添加%GRADLE_HOME%\bin
  3. 验证安装
    • 打开终端或命令行工具,输入gradle -v,检查输出是否显示Gradle版本信息。
创建Spring Boot项目

Spring Boot项目的创建可以通过Spring Initializr、IDE插件或命令行工具完成。以下是使用Spring Initializr创建项目的步骤:

  1. 打开浏览器,访问Spring Initializr
  2. 在“Project”选项卡中,填写项目信息,如项目名称、语言(Java)、依赖(Web、Thymeleaf等)。
  3. 在“Packaging”选项卡中,选择项目打包方式(Jar或War)。
  4. 点击“Generate”按钮,下载项目压缩包。
  5. 解压压缩包,将项目文件夹导入IDE中。

使用Spring Initializr创建项目示例

假设要创建一个名为my-spring-boot-app的Spring Boot项目,选择以下配置:

  • Project: Maven Project
  • Language: Java
  • Dependencies: Web, Thymeleaf

生成的项目结构如下:

my-spring-boot-app/
├── pom.xml
├── src
    ├── main
    │   ├── java
    │   │   └── com.example.myapp
    │   │       └── MySpringBootApplication.java
    │   └── resources
    │       ├── application.properties
    │       └── static
    │       └── templates
    └── test
        └── java
            └── com.example.myapp
                └── MySpringBootApplicationTests.java
第一个Spring Boot应用
创建基本的Spring Boot项目结构

在上一节中,我们已经通过Spring Initializr创建了一个基本的Spring Boot项目。项目的基本结构如下:

my-spring-boot-app/
├── pom.xml
├── src
    ├── main
    │   ├── java
    │   │   └── com.example.myapp
    │   │       └── MySpringBootApplication.java
    │   └── resources
    │       ├── application.properties
    │       └── static
    │       └── templates
    └── test
        └── java
            └── com.example.myapp
                └── MySpringBootApplicationTests.java

项目目录结构解释

  • pom.xml:Maven构建文件,定义了项目的依赖和构建配置。
  • src/main/java:存放项目的主要Java源代码。
  • src/main/resources:存放资源文件,如配置文件、模板文件等。
  • src/test/java:存放测试代码。

src/main/java目录下,创建一个新的Java类MySpringBootApplication.java,并将以下代码粘贴进去:

package com.example.myapp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

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

@SpringBootApplication注解解释

  • @SpringBootApplication是一个组合注解,包含了以下三个注解:
    • @Configuration:表示当前类是一个配置类。
    • @EnableAutoConfiguration:启用基于类路径中的已定义依赖自动配置。
    • @ComponentScan:扫描当前包及其子包中的组件。
编写第一个Spring Boot应用

src/main/java目录下,创建一个新的Java类HelloController.java,并将以下代码粘贴进去:

package com.example.myapp;

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, Spring Boot!";
    }
}

@RestController注解解释

  • @RestController是一个组合注解,相当于@Controller@ResponseBody
    • @Controller:表示当前类是一个控制器类。
    • @ResponseBody:表示该方法的返回值将直接写入HTTP响应体。

@GetMapping注解解释

  • @GetMapping是一个组合注解,相当于@RequestMapping(method = RequestMethod.GET)
    • @RequestMapping:映射HTTP请求到具体的处理器方法。
    • method:指定具体的HTTP请求方法。
运行和测试

启动Spring Boot应用

在IDE中,找到MySpringBootApplication类中的main方法,右键点击并选择“Run”来启动Spring Boot应用。

测试应用功能

打开浏览器,访问http://localhost:8080/hello,页面将显示“Hello, Spring Boot!”,这表示应用已经成功运行。

使用命令行启动应用

如果使用命令行启动应用,可以在项目根目录下执行以下命令:

mvn spring-boot:run

或者,也可以直接运行MySpringBootApplication类,如:

java -jar target/my-spring-boot-app.jar
Spring Boot配置管理
应用配置文件介绍

Spring Boot使用配置文件来管理应用的配置信息,常见的配置文件包括application.propertiesapplication.yml。默认情况下,Spring Boot优先读取application.properties文件,如果该文件不存在,则读取application.yml文件。

配置文件通常位于src/main/resources目录下。

application.properties示例

# 设置端口号
server.port=8080

# 设置应用上下文路径
server.servlet.context-path=/myapp

# 设置静态资源路径
spring.mvc.static-path-pattern=/resources/**

# 数据库连接配置
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root
spring.datasource.driver-class-name=com.mysql.jdbc.Driver

application.yml示例

server:
  port: 8080
servlet:
  context-path: /myapp
spring:
  mvc:
    static-path-pattern: /resources/**
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: root
    driver-class-name: com.mysql.jdbc.Driver
配置文件的使用

Spring Boot通过自动配置和环境变量支持,使得配置文件的使用非常简单。以下是一些常见的配置项:

  • Server配置
    • server.port:设置服务器端口(默认为8080)。
    • server.servlet.context-path:设置应用的上下文路径。
    • server.tomcat.uri-encoding:设置Tomcat的默认编码。
  • Spring MVC配置
    • spring.mvc.static-path-pattern:设置静态资源路径。
  • DataSource配置
    • spring.datasource.url:数据库连接URL。
    • spring.datasource.username:数据库用户名。
    • spring.datasource.password:数据库密码。
    • spring.datasource.driver-class-name:数据库驱动类名。
配置文件的外部化

Spring Boot支持配置文件的外部化,允许开发者通过命令行参数、环境变量、JNDI属性等多种方式来覆盖配置文件中的属性。

使用命令行参数覆盖配置

java -jar my-spring-boot-app.jar --server.port=8081

使用环境变量覆盖配置

export SERVER_PORT=8081

使用JNDI属性覆盖配置

jndi:
  propKey: propValue

使用外部配置文件覆盖配置

在配置文件中,可以引用外部配置文件。例如,在application.properties中添加以下内容:

spring.config.location=/path/to/config.properties

同样,也可以使用spring.profiles.active属性来激活不同的配置文件。例如:

spring.profiles.active=prod

src/main/resources目录下创建application-prod.properties文件,添加生产环境配置:

# 生产环境配置
logging.level.root=INFO
Spring Boot核心组件介绍
@SpringBootApplication注解

@SpringBootApplication是一个组合注解,用于标记主类。它包含了以下三个注解:

  • @Configuration:表示当前类是一个配置类。
  • @EnableAutoConfiguration:启用基于类路径中的已定义依赖自动配置。
  • @ComponentScan:扫描当前包及其子包中的组件。

示例代码

package com.example.myapp;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class MySpringBootApplication {
    public static void main(String[] args) {
        SpringApplication.run(MySpringBootApplication.class, args);
    }
}
自动配置

Spring Boot的自动配置是其一大特色,它会根据类路径中的已定义依赖,自动配置相应的组件。例如,如果项目中添加了数据库依赖,Spring Boot会自动配置数据库连接。

自动配置是通过@EnableAutoConfiguration注解实现的,它会读取META-INF/spring.factories文件中的配置,并根据类路径中的依赖进行自动配置。

示例代码

假设项目中添加了以下依赖:

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

Spring Boot会自动配置JPA和H2数据库,并根据application.properties中的配置信息自动配置相应的数据库连接。

启动器和依赖管理

Spring Boot通过“启动器”来简化项目的依赖管理。启动器是一组预定义的依赖集合,通常以-starter结尾。例如,spring-boot-starter-web包含了构建Web应用所需的最小依赖集合。

示例代码

pom.xml中添加以下依赖:

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

上述依赖包含了构建Web应用所需的依赖,如Spring MVC、Tomcat等。

Spring Boot应用部署
打包Spring Boot应用

Spring Boot支持将应用打包为可执行的JAR或WAR文件。以下是打包步骤:

打包为JAR文件

mvn package

打包完成后,可以在target目录下找到生成的JAR文件,例如my-spring-boot-app.jar

打包为WAR文件

mvn package

打包完成后,可以在target目录下找到生成的WAR文件,例如my-spring-boot-app.war

部署到应用服务器

将Spring Boot应用部署到应用服务器,可以使用内置的web服务器(如Tomcat、Jetty)或外部应用服务器(如Apache Tomcat)。

使用内置web服务器

Spring Boot内置了web服务器支持,可以直接运行my-spring-boot-app.jar文件:

java -jar target/my-spring-boot-app.jar

部署到外部应用服务器

将WAR文件部署到外部应用服务器,如Apache Tomcat,需要先安装Tomcat。

  1. 下载并安装Apache Tomcat。
  2. 将生成的WAR文件复制到webapps目录下。
  3. 启动Tomcat服务器。

示例代码

假设Tomcat安装在C:\apache-tomcat-9.0.56目录下,执行以下步骤:

  1. 复制my-spring-boot-app.war文件到C:\apache-tomcat-9.0.56\webapps目录下。
  2. 启动Tomcat服务器,可以通过命令行执行以下命令:
C:\apache-tomcat-9.0.56\bin\startup.bat
部署到云平台

将Spring Boot应用部署到云平台,可以使用云服务提供商提供的服务,如阿里云、腾讯云、AWS等。以下是部署到阿里云ECS的基本步骤:

  1. 在阿里云控制台创建ECS实例。
  2. 登录ECS实例,安装Java运行环境。
  3. 将应用打包为JAR或WAR文件,上传到ECS实例。
  4. 使用命令行启动应用:
java -jar my-spring-boot-app.jar

示例代码

假设ECS实例已安装Java环境,执行以下步骤:

  1. 上传my-spring-boot-app.jar文件到ECS实例。
  2. 启动应用:
java -jar my-spring-boot-app.jar

为确保应用在服务器重启时自动启动,可以使用系统服务管理工具(如systemd在Linux上)创建一个服务文件,将应用设置为系统服务。

使用systemd创建服务文件

  1. 创建一个服务文件,如/etc/systemd/system/myapp.service
[Unit]
Description=My Spring Boot Application
After=syslog.target

[Service]
User=root
ExecStart=/usr/bin/java -jar /path/to/my-spring-boot-app.jar
SuccessExitStatus=143
Restart=on-failure
RestartSec=10

[Install]
WantedBy=multi-user.target
  1. 重新加载systemd配置:
systemctl daemon-reload
  1. 启动并启用服务:
systemctl start myapp
systemctl enable myapp
点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
意见反馈 帮助中心 APP下载
官方微信

举报

0/150
提交
取消