# 使用 Spring Boot 2

> For the complete documentation index, see [llms.txt](https://simbot.forte.love/llms.txt).

> **TL;DR**
> 在 JVM 平台下使用 Spring Boot 2 配合 simbot 进行 兼容集成 。

> **Warning: 兼容入口**
> 如果没有明确的历史包袱，仍建议优先使用 [Spring Boot 3](start-use-spring-boot-3.html)。 本页对应的是 `simbot-core-spring-boot-starter-v2`， 主要用于兼容仍停留在 Spring Boot 2.x / Java 11 的项目。

> **Note: 更多信息**
> 有关集成 Spring Boot 的详细内容可前往 [Spring Boot](spring-boot.html) 进行参考。

## 安装

Procedure:

1. 准备Java

我们推荐您使用 Spring Boot 3.x。因此 Java 的版本至少为 Java17 。

> **Tip:**
> 如果你打算使用 Spring Boot 2.x， 请参阅下文有关 2.x 版本的兼容模块的说明， 其 Java 的版本至少为 Java11 。

2. 准备 Spring Boot 项目

前往 [start.spring.io](https://start.spring.io) 选择、创建一个 Spring Boot 项目下载。 当然，你也可以选择其他任意可行方式来创建项目，例如借助IDE。

更多参考:

* [如何构建你的第一个SpringBoot应用](https://docs.spring.io/spring-boot/tutorial/first-application/index.html)。

* [Spring Initializr](https://start.spring.io)

* [Spring Quickstart Guide](https://spring.io/quickstart/)

3. 添加 simbot starter 依赖

Spring Boot 3:

使用 Spring Boot 3，确保项目的JDK版本大于等于 JDK17。

Gradle(Kotlin DSL):

```KOTLIN
implementation("love.forte.simbot:simbot-core-spring-boot-starter:5.0.0-Alpha2")
```

Gradle(Groovy):

```GROOVY
implementation 'love.forte.simbot:simbot-core-spring-boot-starter:5.0.0-Alpha2'
```

Maven:

```XML
<dependency>
    <groupId>love.forte.simbot</groupId>
    <artifactId>simbot-core-spring-boot-starter</artifactId>
    <version>5.0.0-Alpha2</version>
</dependency>
```

Spring Boot 2:

> **Warning: 再考虑一下**
> 我们建议你优先考虑使用 Spring Boot 3。
>
>
>
> * 首先，Spring Boot 2.x 目前最后的一个版本 v2.7.x 已经在 2023-11-24 结束了 开放源码软件支持(OSS support) ，并会在 2026 年之前彻底结束支持。 (参考[Spring官方文档](https://spring.io/projects/spring-boot#support))
>
> * 如果阻碍你使用 Spring Boot 3 的仅仅是Java的版本， 你仍有其他办法通过较低版本的Java使用 Spring Boot 3， 这其中的详细内容可参考 Jetbrains 的这篇 [技术博客](https://blog.jetbrains.com/zh-hans/idea/2024/06/java-runtimes-insights-from-the-spring-boot-point-of-view/)。 引用其中的相关说明： > **Tip:** > 此外，Spring Boot 3.x 要求使用 Java 17 作为基线， 因此如果您想利用您最喜欢的框架的新主要版本的强大功能，升级 Java 版本至关重要。 > > > > 不过，如果现在不能升级，一些供应商（如 Oracle 和 BellSoft） 也提供了将 JVM 17 与 JDK 8 结合的解决方案（对于 JDK 11，BellSoft 也有类似的解决方案）。 这样会使您的应用程序认为它仍然运行在旧的 Java 版本上，但实际上它拥有一个较新的引擎。 对您来说，这意味着什么？ 无需升级 Java 或框架，也几乎无需进行代码更改，即可立即缩短延迟并提高吞吐量！
>
>
>
> `simbot-core-spring-boot-starter-v2` 是用来兼容 Spring Boot v2 的，Java版本最低仅需Java11。 但是此模块不保证未来会持续维护、更新，也不保证其稳定性。

Gradle(Kotlin DSL):

```KOTLIN
implementation("love.forte.simbot:simbot-core-spring-boot-starter-v2:5.0.0-Alpha2")
```

Gradle(Groovy):

```GROOVY
implementation 'love.forte.simbot:simbot-core-spring-boot-starter-v2:5.0.0-Alpha2'
```

Maven:

```XML
<dependency>
    <groupId>love.forte.simbot</groupId>
    <artifactId>simbot-core-spring-boot-starter-v2</artifactId>
    <version>5.0.0-Alpha2</version>
</dependency>
```

4. 添加组件及其要求的其他内容

simbot的组件是功能的主要提供者，是重要的核心概念之一。 你可以前往 [组件库](components-intro.html) 选择你所需要的组件并添加它们，而它们的手册通常都会有各自相应的快速开始或安装章节。

> **Note:**
> 大部分官方组件都会需要你添加 Ktor 引擎，注意观察阅读、不要漏掉喔~

你也可以使用任何可用的第三方组件，并参照它们各自的文档说明进行安装。

## 与 Spring Boot 3 的主要差异

* 依赖坐标为 `love.forte.simbot:simbot-core-spring-boot-starter-v2`

* `@EnableSimbot` 位于 `love.forte.simbot.spring2`

* 相关配置、处理器与应用实现主要位于 `love.forte.simbot.spring2.*`

* Java 基线为 11，而不是 17

## 使用

### 启用 simbot

Kotlin:

```KOTLIN
import love.forte.simbot.spring2.EnableSimbot

@EnableSimbot
@SpringBootApplication
class MyApplication

fun main(args: Array<String>) {
    runApplication<MyApplication>(*args)
}
```

Java:

```JAVA
import love.forte.simbot.spring2.EnableSimbot;

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

### 编写事件处理器

前往 [编写事件处理器](spring-boot.html#编写事件处理器) 了解更多。

### 安装组件以及组件配置

前往 [安装组件以及组件配置](spring-boot.html#安装组件以及组件配置) 了解更多。

### 注册Bot

前往 [注册 Bot](spring-boot.html#注册bot) 了解更多。

### 运行或打包

前往 [运行或打包](spring-boot.html#运行或打包) 了解更多。

