继续浏览精彩内容
慕课网APP
程序员的梦工厂
打开
继续
感谢您的支持,我会继续努力的
赞赏金额会直接到老师账户
将二维码发送给自己后长按识别
微信支付
支付宝支付

Springboot入门教程:快速搭建第一个Web应用

largeQ
关注TA
已关注
手记 992
粉丝 93
获赞 586
概述

Spring Boot 是一个基于 Spring 框架的开源框架,旨在简化应用程序的开发和部署。通过提供默认配置和支持快速开发,Spring Boot 减少了手动配置的复杂性。开发者可以利用内置的实用功能和依赖管理工具,快速搭建独立的生产级 Web 应用。

1. Spring Boot 简介

1.1 什么是Spring Boot

Spring Boot 是一个基于 Spring 框架的开源框架,旨在简化基于 Spring 的应用程序的开发、测试和部署。它通过提供大量的默认配置和支持快速开发来提高开发效率。开发者无需手动配置复杂的 Spring 框架,可以更快地创建独立的、生产级别的应用。

1.2 Spring Boot 的优势

  1. 简化配置:Spring Boot 通过约定优于配置的原则,减少了大量繁琐的配置工作。例如,Spring Boot 通过自动配置(Auto-configuration)功能,自动为应用提供所需的基础配置。
  2. 独立的运行:Spring Boot 应用可以打包为独立的 jar 或 war 文件,包含所有依赖项和应用服务器(如 Tomcat、Jetty),可以直接运行。
  3. 快速开发:Spring Boot 提供了很多内置的实用功能,如 REST API 支持、数据访问支持(如 JPA 和 MyBatis)、缓存、邮件服务等,使得开发变得简单快捷。
  4. 一站式服务:集成了许多常用的库和框架,如 Spring MVC、Spring Data JPA、Spring Security 等,开发者只需要关注业务逻辑的编写。
  5. 强大的 Starter 依赖:提供了一系列的“Starter”依赖,简化了依赖管理和配置,例如 spring-boot-starter-web 可以快速搭建一个 Web 服务。

1.3 Spring Boot 的核心概念

  • Starter 依赖:通过这些依赖,可以快速添加所需的功能。例如,spring-boot-starter-web 提供了 Web 功能的支持,而 spring-boot-starter-data-jpa 提供了 JPA 的支持。
  • Auto-configuration:自动配置功能,Spring Boot 根据类路径中的特定依赖自动配置类,例如,如果类路径中有 spring-boot-starter-web 依赖,Spring Boot 将自动配置一个嵌入式的 Tomcat 服务器。
  • Command Line Interface (CLI):Spring Boot CLI 是一个命令行工具,可以用来运行、测试和构建 Spring Boot 应用。
  • Actuator:Spring Boot Actuator 提供了一系列的管理端点(Endpoint),用于监控和管理应用。
  • Properties 文件:使用 application.propertiesapplication.yml 文件来配置应用。
  • Spring Boot Main Class:每个 Spring Boot 应用都有一个主类,该主类通常包含 @SpringBootApplication 注解,启动应用只需调用 main 方法。
2. 开发环境搭建

2.1 Java 环境配置

首先,确保你的计算机上安装了 Java 开发工具包(JDK)。可以通过下载并安装最新版本的 JDK,或通过操作系统自带的包管理器来安装。以下是 Linux 系统下安装 JDK 的示例:

sudo apt-get update
sudo apt-get install openjdk-11-jdk

2.2 Maven 或 Gradle 的安装

Maven 和 Gradle 是两个流行的构建工具,用于管理项目的依赖关系和构建过程。这里以 Maven 为例进行说明。

  1. 下载并安装 Maven:可以从 Maven 的官方网站下载 Maven 的压缩包,解压后将 Maven 的 bin 目录添加到系统的 PATH 环境变量中。

  2. 验证安装:打开命令行工具,输入以下命令来验证 Maven 是否安装成功:
mvn -v

输出结果应包含 Maven 版本信息。

2.3 Spring Boot Starter 的使用

Spring Boot Starter 是 Spring Boot 提供的一系列依赖管理工具,可以快速添加所需的依赖。例如,spring-boot-starter-web 提供了构建 Web 应用所需的所有依赖。

下面是一个简单的 Maven pom.xml 文件示例,其中使用了 spring-boot-starter-web 依赖:

<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>demo</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.3.4.RELEASE</version>
    </parent>
    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
    </dependencies>
</project>
3. 创建 Spring Boot 项目

3.1 使用 Spring Boot Initializr 创建项目

Spring Boot Initializr 是一个在线工具,用于快速创建 Spring Boot 项目。访问以下 URL:

https://start.spring.io/

选择项目的基本信息,如项目语言、构建工具(Maven 或 Gradle),然后添加所需的依赖,如 Spring Web,点击 "Generate" 按钮下载压缩包,解压后即可开始开发。

3.2 导入 Spring Boot 项目到 IDE 中

将下载的项目解压后,可以导入到常用的 IDE 中进行开发。以下是导入到 IntelliJ IDEA 的步骤:

  1. 打开 IntelliJ IDEA,选择 File -> Open,选择解压后的项目文件夹。
  2. IDEA 会自动检测到项目类型,并提示导入 Maven 项目,按提示操作即可。

以下是一些通用的导入步骤:

  1. 打开 IDE 并选择 File -> New -> Project from Existing Sources
  2. 选择解压后的项目文件夹,进入下一步。
  3. 选择检测到的构建文件(如 pom.xml 或 build.gradle),按提示完成导入。

3.3 创建主类

创建主类用于启动 Spring Boot 应用。以下是 Application.java 文件示例:

package com.example.demo;

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);
    }
}
4. 编写第一个 Spring Boot 应用

4.1 创建 Controller

Controller 是 Web 应用中的一个关键组件,负责处理用户的请求并返回响应。下面是一个简单的 Controller 示例:

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

4.2 创建 REST API

REST API 是一种基于 HTTP 协议的架构风格,用于构建网络应用。Spring Boot 提供了便捷的注解来创建 REST API,如 @RestController@GetMapping

下面是一个简单的 REST API 示例:

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class ProductController {

    @Autowired
    private ProductService productService;

    @GetMapping("/products")
    public List<Product> getAllProducts() {
        return productService.getAllProducts();
    }
}

4.3 运行项目并测试

在 IDEA 中,找到 main 方法所在的类,运行 main 方法。或者,可以直接使用 Maven 命令行来运行项目:

mvn spring-boot:run

访问 http://localhost:8080/hello,如果看到 "Hello, Spring Boot!",则说明项目运行成功。

5. Spring Boot 配置文件详解

5.1 application.properties

application.properties 是 Spring Boot 应用的默认配置文件,主要用于配置应用的各种属性,如端口号、数据库连接等。

以下是 application.properties 的一些常见配置示例:

# 端口号
server.port=8080

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

# 日志配置
logging.level.root=INFO

5.2 application.yml

application.yml 是 Spring Boot 应用的另一种配置文件格式,与 properties 文件相比,它支持更复杂的配置,如使用嵌套属性。

以下是 application.yml 的一些常见配置示例:

server:
  port: 8080

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: password
    driver-class-name: com.mysql.jdbc.Driver

logging:
  level:
    root: INFO

5.3 配置文件的优先级

Spring Boot 配置文件的优先级如下:

  1. application.yml 中的配置
  2. application.properties 中的配置
  3. 命令行参数

例如,如果同时存在 application.ymlapplication.properties 文件,application.yml 中的配置会覆盖 application.properties 中的配置。

在实际开发中,可以通过环境变量覆盖配置文件中的设置,例如:

# application.properties
server.port=8081
# application.yml
server:
  port: 8082

在命令行中使用环境变量覆盖配置:

mvn spring-boot:run -Dserver.port=8083

通过这些配置,可以灵活地调整应用的运行环境和行为。

6. 实战:增加数据库支持

6.1 添加 Spring Boot Starter Data JPA 依赖

为了使用 JPA(Java Persistence API)进行数据库操作,需要在 pom.xml 中添加 spring-boot-starter-data-jpa 依赖:

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

6.2 配置数据库连接

application.propertiesapplication.yml 文件中配置数据库连接信息:

# application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=password
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
# application.yml
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/mydb
    username: root
    password: password
    driver-class-name: com.mysql.jdbc.Driver

6.3 编写简单的 CRUD 操作

6.3.1 创建实体类

创建一个简单的实体类 Product,并使用 @Entity 注解将其标记为 JPA 实体。

package com.example.demo;

import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;

@Entity
public class Product {

    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;

    private String name;
    private Double price;

    // 构造函数、getter 和 setter 方法
}

6.3.2 创建 Repository 接口

创建一个 Repository 接口,继承 JpaRepository,用于定义数据库操作方法。

package com.example.demo;

import org.springframework.data.jpa.repository.JpaRepository;

import java.util.List;

public interface ProductRepository extends JpaRepository<Product, Long> {
}

6.3.3 创建 Service 类

创建一个 Service 类,用于封装业务逻辑,例如 CRUD 操作。

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.List;

@Service
public class ProductService {

    @Autowired
    private ProductRepository productRepository;

    public List<Product> getAllProducts() {
        return productRepository.findAll();
    }
}

6.3.4 修改 Controller

修改 ProductController 以使用 Service 类中的方法。

package com.example.demo;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class ProductController {

    @Autowired
    private ProductService productService;

    @GetMapping("/products")
    public List<Product> getAllProducts() {
        return productService.getAllProducts();
    }
}

6.4 测试 CRUD 操作

在浏览器中访问 http://localhost:8080/products,如果看到数据库中的所有产品信息,则说明 CRUD 操作已经成功。

通过以上步骤,你已经成功地创建了一个支持数据库操作的 Spring Boot 应用。在实际开发中,可以根据需要扩展更多的功能,例如添加事务管理、异步支持等。

打开App,阅读手记
0人推荐
发表评论
随时随地看视频慕课网APP