Spring Boot 入门指南

249 阅读4分钟

什么是 Spring Boot

Spring Boot 是一个用于创建基于 Spring 框架的独立应用程序的框架。它可以帮助开发者快速搭建一个基于 Spring 框架的应用程序,并提供了自动配置、约定优于配置等特性,使开发者可以更加专注于业务开发而不是配置。

Spring Boot 的优势

Spring Boot 的优势主要包括以下几点:

  • 快速搭建:Spring Boot 提供了大量的自动配置,可以帮助开发者快速搭建一个基于 Spring 框架的应用程序。
  • 约定优于配置:Spring Boot 采用约定优于配置的方式,大大减少了配置文件的数量和复杂度。
  • 微服务支持:Spring Boot 对微服务提供了良好的支持,可以轻松搭建分布式应用程序。
  • 多种数据源支持:Spring Boot 支持多种数据源,包括 JDBC、NoSQL、JPA 等。
  • 易于部署:Spring Boot 应用程序可以打包成 jar 包或 war 包,方便部署和运行。

Spring Boot 的搭建

环境要求

  • JDK 1.8 或以上
  • Maven 3.2 或以上

创建项目

首先,我们需要创建一个 Spring Boot 项目。可以通过 Spring Initializr 快速创建一个 Spring Boot 项目。在浏览器中访问 start.spring.io/,选择项目的基本信息,… Generate 按钮即可生成一个 Spring Boot 项目的基础结构。

添加依赖

在 pom.xml 文件中添加以下依赖:

<dependencies>
    <!-- Spring Boot Starter Web -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
</dependencies>

这个依赖是用于添加 Web 相关的支持,包括 Spring MVC、Tomcat 等。

编写代码

在 src/main/java 目录下创建一个 HelloController 类,代码如下:

@RestController
public class HelloController {
    @RequestMapping("/")
    public String index() {
        return "Hello, World!";
    }
}

这个类使用了 @RestController 注解,表示这是一个控制器类。@RequestMapping 注解表示这个方法对应的请求路径是 /,返回的字符串是 "Hello, World!"。

运行程序

在命令行中进入项目根目录,执行以下命令:

mvn spring-boot:run

这个命令会启动一个内嵌的 Tomcat 服务器,并运行我们编写的程序。在浏览器中访问 http://localhost:8080/,即可看到 "Hello, World!" 字符串。

Spring Boot 的自动配置

Spring Boot 的自动配置是其最大的特点之一。它可以根据项目的依赖自动配置应用程序的各种功能,如数据源、Web、安全等。下面我们来看一下 Spring Boot 的自动配置是如何工作的。

自动配置原理

Spring Boot 的自动配置原理主要包括以下几个步骤:

  1. Spring Boot 会根据 classpath 下的 jar 包中的 META-INF/spring.factories 文件加载自动配置类。
  2. 自动配置类通过 @Conditional 注解判断是否需要配置该功能。
  3. 如果需要配置该功能,则根据配置文件中的属性值进行自动配置。
  4. 如果需要自定义配置,则可以在配置文件中进行相应的配置。

自动配置实例

下面我们以 Spring Boot 的数据源自动配置为例,来看一下自动配置是如何工作的。

首先,我们需要在 pom.xml 文件中添加依赖:

<dependencies>
    <!-- Spring Boot Starter JDBC -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-jdbc</artifactId>
    </dependency>
    <!-- H2 Database -->
    <dependency>
        <groupId>com.h2database</groupId>
        <artifactId>h2</artifactId>
    </dependency>
</dependencies>

这个依赖是用于添加 JDBC 相关的支持,包括 Spring JDBC、H2 数据库等。

然后,在 application.properties 文件中添加以下配置:

spring.datasource.url=jdbc:h2:mem:testdb
spring.datasource.driver-class-name=org.h2.Driver
spring.datasource.username=sa
spring.datasource.password=

这个配置是用于配置数据源相关的属性,包括数据库 URL、驱动类、用户名、密码等。

最后,在代码中使用 @Autowired 注解注入 DataSource 对象:

@RestController
public class HelloController {
    @Autowired
    private DataSource dataSource;

    @RequestMapping("/")
    public String index() {
        return "Hello, World!";
    }

    @RequestMapping("/test")
    public String test() throws SQLException {
        Connection conn = dataSource.getConnection();
        Statement stmt = conn.createStatement();
        ResultSet rs = stmt.executeQuery("SELECT 1");
        rs.next();
        int result = rs.getInt(1);
        return "Result: " + result;
    }
}

这个代码中使用了 @Autowired 注解注入了 DataSource 对象,并在 /test 接口中使用该对象进行了查询操作。

现在,我们可以运行程序,并访问 http://localhost:8080/test,即可看到查询结果。

总结

Spring Boot 是一个快速搭建基于 Spring 框架的应用程序的框架,它提供了自动配置、约定优于配置等特性,使开发者可以更加专注于业务开发而不是配置。本文介绍了 Spring Boot 的优势、搭建、自动配置等方面的内容,并通过实例演示了 Spring Boot 的自动配置原理和使用方法。希望本文能够帮助读者更好地理解和使用 Spring Boot。