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

Springboot3入门:快速搭建你的第一个Spring Boot应用

三国纷争
关注TA
已关注
手记 445
粉丝 51
获赞 178
概述

本文介绍了Spring Boot 3入门的基础知识,包括环境搭建、项目创建和运行等步骤,帮助开发者快速上手Spring Boot 3入门。文章详细讲解了Spring Boot的核心概念和组件,如自动配置、Starter依赖管理以及配置文件的使用。此外,还提供了实战案例,演示如何构建RESTful API和进行数据库操作。

简介

Spring Boot是什么

Spring Boot 是一个基于Spring框架的微框架,旨在简化新Spring应用的初始搭建以及开发过程。它通过约定优于配置的方式,减少了配置量,使得开发人员能够快速上手并专注于业务逻辑的开发。Spring Boot 可以创建独立的、基于生产级的Spring应用,也可以与Spring Cloud一起使用,构建微服务架构。

Spring Boot 3的新特性

Spring Boot 3 使用 Java 17 作为默认的 Java 版本,这意味着项目在编译时需要使用 Java 17 或更高版本。此外,Spring Boot 3 还引入了对 Jakarta EE 9 的支持,这意味着 Spring Boot 应用可以使用 Jakarta EE 9 提供的依赖,而不是旧的 Java EE 依赖。这包括 Jakarta 容器依赖、Jakarta 安全依赖等多个部分。

学习目标与适用人群

本教程旨在帮助开发者快速掌握 Spring Boot 的基础知识和使用技巧,适用于有 Java 编程基础的开发者,特别是那些希望简化开发流程,快速搭建 Web 应用的开发者。

环境搭建

JDK安装与配置

  1. 下载并安装 JDK

    访问 Oracle 官方网站或其他可信的 JDK 发行源下载 JDK。安装 JDK 后,需要配置环境变量 JAVA_HOMEPATH 以确保 Java 工具在命令行中可用。

    export JAVA_HOME=/path/to/jdk
    export PATH=$JAVA_HOME/bin:$PATH
  2. 验证安装

    打开终端并输入 java -version,应显示安装的 Java 版本信息。

    java -version

Spring Boot 开发工具选择(如 IDEA)

IntelliJ IDEA

  1. 下载并安装 IntelliJ IDEA

    可以从 JetBrains 官方网站下载并安装 IntelliJ IDEA,选择 Community 或 Ultimate 版本。社区版免费且适合大多数开发需求。

  2. 创建新的 Spring Boot 项目

    打开 IntelliJ IDEA,选择 File -> New -> Project,在弹出的窗口中选择 Spring Initializr,然后按照提示完成项目创建。

  3. 导入项目

    将下载并解压后的项目导入 IntelliJ IDEA。

Maven 或 Gradle 的安装与配置

  1. 安装 Maven

    Maven 是一个项目管理和构建工具,它简化了构建、依赖管理和文档生成。下载并安装 Maven,通过以下步骤配置环境变量:

    export MAVEN_HOME=/path/to/maven
    export PATH=$MAVEN_HOME/bin:$PATH
  2. 验证安装

    打开终端并输入 mvn -v,应显示 Maven 版本信息。

    mvn -v
  3. 安装 Gradle

    Gradle 是一个构建工具,它通过声明式语法简化了构建过程。下载并安装 Gradle,同样配置环境变量:

    export GRADLE_HOME=/path/to/gradle
    export PATH=$GRADLE_HOME/bin:$PATH
  4. 验证安装

    打开终端并输入 gradle -v,应显示 Gradle 版本信息。

    gradle -v
创建第一个 Spring Boot 应用

使用 Spring Initializr 创建项目

  1. 访问 Spring Initializr 网站

    打开浏览器,访问 Spring Initializr 网站。

  2. 配置项目

    选择项目信息(如语言、Java 版本、依赖等)并生成项目。

  3. 下载并解压

    下载生成的项目压缩包并解压。

  4. 导入到 IDE

    将解压后的项目导入到 IntelliJ IDEA 或其他 IDE 中。

项目结构解析

Spring Boot 项目的典型结构如下:

my-spring-boot-app/
│
├── src/
│   ├── main/
│   │   ├── java/
│   │   │   └── com/
│   │   │       └── example/
│   │   │           └── myapp/
│   │   │               ├── Application.java
│   │   │               └── controller/
│   │   │                   └── HelloController.java
│   │   └── resources/
│   │       ├── application.properties
│   │       ├── static/
│   │       ├── public/
│   │       └── templates/
│   └── test/
│       ├── java/
│       │   └── com/
│       │       └── example/
│       │           └── myapp/
│       │               └── MyApplicationTests.java
│       └── resources/
├── pom.xml
└── build.gradle

运行与测试

  1. 运行应用

    在 IDE 中找到并运行 Application.java 类中的 main 方法,启动 Spring Boot 应用。

    package com.example.myapp;
    
    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);
       }
    
    }
  2. 访问应用

    打开浏览器,访问 http://localhost:8080,应看到默认的欢迎页面。

Spring Boot 核心概念与组件

自动配置详解

Spring Boot 自动配置是其核心特性之一,它通过约定优于配置的方式,自动配置了许多常见的 Spring 配置。自动配置的实现主要依赖于 @SpringBootApplication 注解,该注解包含三个注解:@Configuration@EnableAutoConfiguration@ComponentScan@EnableAutoConfiguration 注解会根据类路径中的依赖自动配置 Spring 应用。

Starter 依赖管理

Spring Boot Starter 是一组预定义的依赖集合,旨在简化新 Spring Boot 应用的编译和部署。例如,spring-boot-starter-web 包含构建 Web 应用所需的所有依赖。这些 Starter 包使得开发者无需手动添加各种依赖,简化了项目配置。

配置文件使用(如 application.properties 和 application.yml)

Spring Boot 支持多种配置文件,包括 application.propertiesapplication.yml。通过这些配置文件,可以对应用进行细粒度的控制。

application.properties 示例

server.port=8080
spring.datasource.url=jdbc:mysql://localhost:3306/mydb
spring.datasource.username=root
spring.datasource.password=root

application.yml 示例

server:
  port: 8080
spring:
  datasource:
  url: jdbc:mysql://localhost:3306/mydb
  username: root
  password: root

Application.java 示例

package com.example.myapp;

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);
    }

}
实战案例:构建 RESTful API

创建简单的 RESTful 服务

  1. 创建控制器

    创建一个新的控制器 HelloController.java,实现 RESTful API 接口。

    package com.example.myapp.controller;
    
    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. 访问 API

    打开浏览器,访问 http://localhost:8080/hello,应看到返回的 "Hello, World!"

  3. 创建用户控制器

    创建一个新的控制器 UserController.java,实现 RESTful API 接口。

    package com.example.myapp.controller;
    
    import com.example.myapp.entity.User;
    import com.example.myapp.repository.UserRepository;
    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 UserController {
    
       @Autowired
       private UserRepository userRepository;
    
       @GetMapping("/users")
       public List<User> getAllUsers() {
           return userRepository.findAll();
       }
    
    }

使用 Spring Data JPA 进行数据库操作

  1. 添加依赖

    pom.xmlbuild.gradle 文件中添加 spring-boot-starter-data-jpa 依赖。

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-data-jpa</artifactId>
    </dependency>
  2. 配置数据库

    修改 application.propertiesapplication.yml 文件,配置数据库连接信息。

    spring.datasource.url=jdbc:mysql://localhost:3306/mydb
    spring.datasource.username=root
    spring.datasource.password=root
    spring.jpa.hibernate.ddl-auto=update
  3. 创建实体类

    创建一个简单的实体类 User.java,表示数据库中的用户表。

    package com.example.myapp.entity;
    
    import javax.persistence.Entity;
    import javax.persistence.GeneratedValue;
    import javax.persistence.GenerationType;
    import javax.persistence.Id;
    
    @Entity
    public class User {
    
       @Id
       @GeneratedValue(strategy = GenerationType.IDENTITY)
       private Long id;
       private String name;
       private String email;
    
       // Getters and Setters
    }
  4. 创建仓库接口

    创建一个仓库接口 UserRepository.java,继承 JpaRepository 接口。

    package com.example.myapp.repository;
    
    import com.example.myapp.entity.User;
    import org.springframework.data.jpa.repository.JpaRepository;
    
    public interface UserRepository extends JpaRepository<User, Long> {
    }
  5. 使用仓库接口

    在控制器中使用仓库接口执行数据库操作。

    package com.example.myapp.controller;
    
    import com.example.myapp.entity.User;
    import com.example.myapp.repository.UserRepository;
    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 UserController {
    
       @Autowired
       private UserRepository userRepository;
    
       @GetMapping("/users")
       public List<User> getAllUsers() {
           return userRepository.findAll();
       }
    
    }

添加 Swagger 文档生成

  1. 添加 Swagger 依赖

    pom.xmlbuild.gradle 文件中添加 Swagger 依赖。

    <dependency>
       <groupId>io.springfox</groupId>
       <artifactId>springfox-swagger2</artifactId>
       <version>3.0.0</version>
    </dependency>
    <dependency>
       <groupId>io.springfox</groupId>
       <artifactId>springfox-swagger-ui</artifactId>
       <version>3.0.0</version>
    </dependency>
  2. 配置 Swagger

    创建一个配置类 SwaggerConfig.java,配置 Swagger。

    package com.example.myapp.config;
    
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    import springfox.documentation.builders.PathSelectors;
    import springfox.documentation.builders.RequestHandlerSelectors;
    import springfox.documentation.spi.DocumentationType;
    import springfox.documentation.spring.web.plugins.Docket;
    import springfox.documentation.swagger2.annotations.EnableSwagger2;
    
    @Configuration
    @EnableSwagger2
    public class SwaggerConfig {
    
       @Bean
       public Docket api() {
           return new Docket(DocumentationType.SWAGGER_2)
               .select()
               .apis(RequestHandlerSelectors.any())
               .paths(PathSelectors.any())
               .build();
       }
    
    }
  3. 访问 Swagger UI

    访问 http://localhost:8080/swagger-ui.html,查看生成的 Swagger 文档。

常见问题与调试

常见错误与解决方法

  1. 无法启动应用

    • 问题:启动时报错 java.lang.NoClassDefFoundError
      • 解决方法:检查 pom.xmlbuild.gradle 文件中的依赖是否正确引入,确保版本一致。
    • 问题:启动时报错 org.springframework.beans.factory.BeanCreationException
      • 解决方法:检查配置文件中的属性是否正确配置,确保数据库连接信息正确。
  2. 日志配置与调试技巧

    • 配置 Logback

      修改 logback-spring.xml 文件,配置日志级别和输出格式。

      <configuration>
       <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
           <encoder>
               <pattern>%d{yyyy-MM-dd HH:mm:ss} %-5level %logger{36} - %msg%n</pattern>
           </encoder>
       </appender>
       <root level="info">
           <appender-ref ref="STDOUT" />
       </root>
      </configuration>
    • 调试技巧

      使用断点、日志、堆栈跟踪等工具进行调试,确保代码逻辑正确。

性能优化建议

  1. 使用缓存

    利用 Spring Cache 注解对频繁访问的数据进行缓存。

    package com.example.myapp.service;
    
    import org.springframework.cache.annotation.Cacheable;
    import org.springframework.stereotype.Service;
    
    @Service
    public class UserService {
    
       @Cacheable("users")
       public User getUserById(Long id) {
           // 数据库查询逻辑
       }
    
    }
  2. 启用 Spring Boot Actuator

    添加 spring-boot-starter-actuator 依赖,启用生产就绪端点,监控应用状态。

    <dependency>
       <groupId>org.springframework.boot</groupId>
       <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
  3. 监控和调优

    使用 Prometheus、Grafana 等工具进行性能监控和调优,确保应用在生产环境中的稳定性和性能。

通过以上内容,开发者可以快速掌握 Spring Boot 的基础知识和使用技巧,构建高性能和可维护的 Web 应用。

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