Springboot框架入门教程
标签:
SpringBoot
概述
Spring Boot框架是一个基于Spring框架的简化开发工具,它通过约定优于配置的方式,帮助开发者快速搭建应用,减少配置工作。本文将详细介绍Spring Boot框架的主要特点、环境搭建、核心概念以及项目实践等内容,帮助读者快速掌握Spring Boot的开发技巧。
Spring Boot简介什么是Spring Boot
Spring Boot 是一个基于Spring框架开发的框架,旨在简化基于Spring的应用程序开发。它通过约定优于配置的方式来提供一系列默认设置,使得开发过程更加简洁和高效。Spring Boot 可以减少开发人员在配置Spring应用上的时间,让开发者能够更加专注于业务逻辑的实现。
Spring Boot的主要特点
- 无需配置XML文件:Spring Boot 通过约定优于配置的原则,大多数情况下不需要编写冗长的XML配置文件。
- 自动化配置:Spring Boot 可以自动配置Spring应用,只需在合适的场景下引入相应的依赖,即可实现快速开发。
- 内置静态web内容支持:Spring Boot 内置了支持静态web内容的功能,开发者可以将静态文件放在项目的
src/main/resources/static
目录下,方便部署。 - 内嵌的Tomcat/Jetty服务器:Spring Boot 提供内置的Tomcat或Jetty服务器,使得应用可以直接启动,无需单独安装和配置应用服务器。
- Spring MVC:Spring Boot 提供了对Spring MVC的支持,可以快速开发RESTful服务。
- 自动配置数据库连接:通过JDBC或JPA等技术,Spring Boot 可以自动配置数据库连接,简化了数据库的接入过程。
- 测试支持:Spring Boot 提供Spring MVC的单元测试支持,可以方便地进行单元测试和集成测试。
为什么选择Spring Boot
- 简化开发流程:Spring Boot 通过其自动化配置和约定优于配置的原则,简化了开发流程,减少了开发者配置的时间。
- 快速启动应用:Spring Boot 提供了丰富的内置支持,可以直接运行应用,无需单独配置应用服务器。
- 易于维护:Spring Boot 应用的配置简单,维护起来较为方便。
- 社区支持:Spring Boot 拥有强大的社区支持,可以在遇到问题时获得帮助。
- 微服务支持:Spring Boot 是微服务架构的优秀选择,可以快速搭建微服务架构,实现服务的拆分、部署和管理。
- 生态系统丰富:Spring Boot 与Spring Cloud等其他框架配合,构建了强大的生态系统,支持各种开发需求。
安装Java开发环境
-
安装Java JDK
- 首先,从Oracle官方网站下载最新版本的JDK安装包。
- 例如,下载JDK 11版本,安装包名称为
jdk-11.0.11_windows-x64_bin.exe
。 - 双击安装包,按照提示进行安装,安装完成后,配置环境变量,确保Java能被系统识别。
- 在命令行窗口中输入
java -version
来验证安装是否成功。 - 示例输出:
java version "11.0.11" 2021-02-22 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.11+8-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+8-LTS, mixed mode, sharing)
- 下载并配置JDK
- 下载JDK安装包后,解压到指定目录。
- 配置环境变量:在系统环境变量中增加
JAVA_HOME
,指向JDK的安装目录,并将%JAVA_HOME%\bin
添加到PATH
变量中。 - 验证安装:在命令行中输入
java -version
,确保输出正确。 - 示例输出:
java version "11.0.11" 2021-02-22 LTS Java(TM) SE Runtime Environment 18.9 (build 11.0.11+8-LTS) Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.11+8-LTS, mixed mode, sharing)
安装并配置IDE(如IntelliJ IDEA或Spring Tool Suite)
-
安装IntelliJ IDEA
- 下载IntelliJ IDEA的最新版本。
- 解压安装包,运行
idea.sh
或idea.exe
启动程序。 - 注册或使用试用版本,进入IDE。
- 在IDE中配置项目设置,确保Java SDK被正确识别。
- 通过
File -> Settings -> Build, Execution, Deployment -> Compiler
配置编译器,设置编译器的默认编译级别。 - 通过
File -> Settings -> Build, Execution, Deployment -> Build Tools -> Maven
配置Maven,设置Maven的Home目录。
- 安装并配置Spring Tool Suite
- 下载Spring Tool Suite的最新版本。
- 解压安装包,运行
sts.sh
或sts.exe
启动程序。 - 注册或使用试用版本,进入IDE。
- 在IDE中配置项目设置,确保Java SDK被正确识别。
- 通过
Window -> Preferences -> Java -> Installed JREs
配置Java SDK路径。 - 通过
Window -> Preferences -> Maven -> User Settings
配置Maven的Home目录,设置Maven本地存储库位置。 - 通过
Window -> Preferences -> Java -> Compiler
配置编译器,设置编译器的默认编译级别。
创建第一个Spring Boot项目
-
使用Spring Initializr创建项目
- 访问https://start.spring.io/
- 选择项目类型为
Maven
,语言为Java
,依赖选择Spring Web
。 - 点击
Generate
按钮下载生成的项目压缩包,解压后导入到IDE中。 - 在
pom.xml
文件中找到以下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
- 添加
Spring Boot
的父依赖,确保项目可以自动配置:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </parent>
-
使用IDE创建项目
- 打开IntelliJ IDEA或Spring Tool Suite,在菜单栏中选择
File -> New -> Project
。 - 选择
Spring Initializr
,配置项目类型为Maven
,语言为Java
,依赖选择Spring Web
。 - 点击
Next
并完成创建,IDE会自动生成项目结构。 - 在项目根目录下的
pom.xml
文件中,确保添加了以下依赖:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
- 同时添加
Spring Boot
的父依赖:<parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.3.4.RELEASE</version> </parent>
- 打开IntelliJ IDEA或Spring Tool Suite,在菜单栏中选择
-
编写启动类
- 在
src/main/java
目录下创建包com.example.demo
,并在该包下创建一个Java类DemoApplication
。 - 编写启动类,类中包含
main
方法,使用@SpringBootApplication
注解启动应用。 -
示例代码:
package com.example.demo; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
- 编译并运行项目,确保应用可以正常启动。
- 示例输出:
2023-01-20 11:00:00,000 INFO 12345 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 2.477 seconds (JVM running for 3.627)
- 在
自动配置
-
自动配置的原理
- Spring Boot 通过
@SpringBootApplication
注解自动配置Spring应用。该注解组合了@Configuration
、@EnableAutoConfiguration
和@ComponentScan
注解。 @EnableAutoConfiguration
注解允许Spring Boot自动配置项目。@ComponentScan
注解允许扫描指定包下的组件(例如@Controller
、@Service
等)。@SpringBootApplication
注解相当于组合了以上三个注解,简化了配置过程。
- Spring Boot 通过
- 配置文件优先级
- Spring Boot 会读取并合并
application.properties
和application.yml
文件中的配置项。 - 如果同时存在多个配置文件,Spring Boot 按照一定的优先级顺序读取配置,优先级从低到高为:
@Configuration
类中的配置application.properties
或application.yml
文件中的配置bootstrap.properties
或bootstrap.yml
文件中的配置
- Spring Boot 会读取并合并
起步依赖
-
起步依赖的定义
- 起步依赖是指一组相关联的依赖,它们共同完成某项具体的任务。
- 起步依赖通常会自动引入一些通用的库和配置。
- 例如,使用
spring-boot-starter-web
依赖来构建Web应用,会自动引入Tomcat服务器和Spring MVC的配置。
- 使用起步依赖
- 在
pom.xml
文件中添加起步依赖,例如:<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency>
- 这样,Spring Boot 就会自动配置Web应用所需的组件,无需手动配置Spring MVC或Tomcat。
- 在
配置文件(application.properties和application.yml)
-
配置文件的区别
application.properties
是一个简单的键值对配置文件,使用等号=
或冒号:
分隔键值。server.port=8080 spring.datasource.url=jdbc:mysql://localhost:3306/test
application.yml
则使用缩进和冒号来定义配置结构,适合更复杂的配置。server: port: 8080 spring: datasource: url: jdbc:mysql://localhost:3306/test
- 在代码中读取配置
- 在Java代码中,可以通过
@Value
注解来读取配置文件中的值:@Value("${server.port}") private int serverPort;
- 也可以使用
@ConfigurationProperties
注解将配置文件中的属性映射到POJO类中:@Configuration @ConfigurationProperties(prefix = "spring.datasource") public class DataSourceProperties { private String url; private String username; private String password; // Getter and Setter }
- 在Java代码中,可以通过
创建RESTful服务
-
定义控制器
- 创建一个新的Java类
UserController
,并使用@RestController
注解标记为REST控制器。 - 使用
@RequestMapping
注解定义URL路径。 -
示例代码:
package com.example.demo.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @GetMapping("/users") public String getUsers() { return "Hello Spring Boot!"; } @GetMapping("/users/{id}") public User getUserById(@PathVariable Long id) { return userRepository.findById(id).orElse(null); } }
- 创建一个新的Java类
- 运行应用
- 通过IDE的运行按钮启动Spring Boot应用,或者在命令行中运行
mvn spring-boot:run
。 - 访问
http://localhost:8080/users
,页面会显示Hello Spring Boot!
。
- 通过IDE的运行按钮启动Spring Boot应用,或者在命令行中运行
使用Spring Boot的内置服务器
-
内嵌的Tomcat服务器
- Spring Boot 内置了Tomcat服务器,可以自动配置并启动。
- 在IDE中直接运行
DemoApplication
类的main
方法,即可启动应用,无需单独配置Tomcat服务器。 - 示例代码:
@SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
- 内嵌的Jetty服务器
- Spring Boot 也支持Jetty服务器,只需在
pom.xml
文件中添加spring-boot-starter-jetty
依赖即可。 - 示例代码:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-jetty</artifactId> </dependency>
- Spring Boot 也支持Jetty服务器,只需在
集成数据库(如MySQL、H2)
-
集成MySQL数据库
- 在
pom.xml
文件中添加spring-boot-starter-data-jpa
和mysql-connector-java
依赖。 - 示例代码:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> </dependency>
- 在
application.properties
文件中配置数据库连接信息:spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=root spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
- 创建一个具体的实体类
User
,并使用@Entity
注解标记为持久化实体。 -
示例代码:
package com.example.demo.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 int age; // Getter and Setter }
- 创建一个持久化仓库
UserRepository
,继承JpaRepository
接口。 -
示例代码:
package com.example.demo.repository; import com.example.demo.entity.User; import org.springframework.data.jpa.repository.JpaRepository; public interface UserRepository extends JpaRepository<User, Long> { }
- 在
- 集成H2内存数据库
- 在
pom.xml
文件中添加spring-boot-starter-data-jpa
和spring-boot-starter-h2
依赖。 - 示例代码:
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-jpa</artifactId> </dependency> <dependency> <groupId>com.h2database</groupId> <artifactId>h2</artifactId> </dependency>
- 在
application.properties
文件中配置H2数据库连接信息:spring.datasource.url=jdbc:h2:mem:testdb spring.datasource.driverClassName=org.h2.Driver spring.datasource.username=sa spring.datasource.password=password spring.h2.console.enabled=true spring.h2.console.path=/h2-console
- 在
使用Spring Boot的单元测试
-
编写Spring Boot单元测试
- 创建一个测试类,例如
UserControllerTest
,并使用@SpringBootTest
注解标记为Spring Boot测试。 - 使用
@Autowired
注解注入控制器或其它需要测试的组件。 - 使用
MockMvc
进行HTTP请求模拟。 -
示例代码:
package com.example.demo.controller; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.autoconfigure.web.servlet.WebMvcTest; import org.springframework.test.web.servlet.MockMvc; import static org.springframework.test.web.servlet.request.MockMvcRequestBuilders.get; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.content; import static org.springframework.test.web.servlet.result.MockMvcResultMatchers.status; @WebMvcTest(UserController.class) public class UserControllerTest { @Autowired private MockMvc mockMvc; @Test public void shouldReturnDefaultMessage() throws Exception { mockMvc.perform(get("/users")) .andExpect(status().isOk()) .andExpect(content().string("Hello Spring Boot!")); } }
- 创建一个测试类,例如
-
编写Spring Boot集成测试
- 创建一个集成测试类,例如
ApplicationIntegrationTest
,并使用@SpringBootTest
注解标记为Spring Boot测试。 - 使用
@Autowired
注解注入需要测试的应用程序上下文或组件。 -
示例代码:
package com.example.demo; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.test.context.SpringBootTest; import org.springframework.test.context.jdbc.Sql; import org.springframework.test.context.jdbc.SqlConfig; @SpringBootTest public class ApplicationIntegrationTest { @Autowired private UserRepository userRepository; @Test @Sql(scripts = "/schema.sql", config = @SqlConfig(transactionMode = SqlConfig.TransactionMode.ISOLATED)) public void shouldInsertUser() { User user = new User(); user.setName("John"); user.setAge(30); userRepository.save(user); Long count = userRepository.count(); assert count == 1L; } }
- 创建一个集成测试类,例如
将Spring Boot应用打包成可执行的jar文件
-
打包为可执行jar
- 在
pom.xml
文件中,确保添加spring-boot-maven-plugin
依赖。 - 示例代码:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build>
- 执行
mvn clean package
命令,生成的jar文件位于target
目录下。 - 可以通过
java -jar target/demo-0.0.1-SNAPSHOT.jar
命令运行生成的jar文件。 - 示例输出:
2023-01-20 12:00:00,000 INFO 12345 --- [ main] com.example.demo.DemoApplication : Started DemoApplication in 2.477 seconds (JVM running for 3.627)
- 在
- 配置jar包的主类
- 在
pom.xml
文件中,可以配置spring-boot-maven-plugin
的mainClass
属性,指定项目的主类。 - 示例代码:
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> <mainClass>com.example.demo.DemoApplication</mainClass> </configuration> </plugin> </plugins> </build>
- 在
部署到Tomcat或直接运行jar文件
-
部署到Tomcat
- 将生成的jar文件复制到Tomcat的
webapps
目录下。 - 启动Tomcat,访问
http://localhost:8080/yourappname/users
。 - 示例输出:
Hello Spring Boot!
- 将生成的jar文件复制到Tomcat的
- 直接运行jar文件
- 使用
java -jar target/demo-0.0.1-SNAPSHOT.jar
命令启动应用。 - 访问
http://localhost:8080/users
,页面会显示Hello Spring Boot!
。 - 示例输出:
Hello Spring Boot!
- 使用
使用Docker容器化部署
-
创建Dockerfile
- 在项目根目录下创建
Dockerfile
文件,定义镜像的构建步骤。 - 示例代码:
FROM openjdk:8-jdk-alpine VOLUME /tmp COPY target/demo-0.0.1-SNAPSHOT.jar app.jar ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"]
- 在项目根目录下创建
-
构建Docker镜像
- 在命令行中执行
docker build -t springboot-demo .
命令,构建镜像。 - 示例输出:
Sending build context to Docker daemon 101.9MB Step 1/4 : FROM openjdk:8-jdk-alpine ---> 6587440c5a0f Step 2/4 : VOLUME /tmp ---> Using cache ---> 7a6e400364a2 Step 3/4 : COPY target/demo-0.0.1-SNAPSHOT.jar app.jar ---> dfc4b3265b69 Step 4/4 : ENTRYPOINT ["java","-Djava.security.egd=file:/dev/./urandom","-jar","/app.jar"] ---> Running in 4ce5b00b5d5f Removing intermediate container 4ce5b00b5d5f ---> 6e1d2c9b65f6 Successfully built 6e1d2c9b65f6 Successfully tagged springboot-demo:latest
- 在命令行中执行
- 运行Docker容器
- 使用
docker run -p 8080:8080 springboot-demo
命令启动容器。 - 访问
http://localhost:8080/users
,页面会显示Hello Spring Boot!
。 - 示例输出:
Hello Spring Boot!
- 使用
Spring Boot项目中最常见的问题
-
依赖版本冲突
- 由于项目中引入了多个依赖,可能会导致版本冲突。
- 解决方法:使用
mvn dependency:tree
命令查看依赖树,手动调整依赖版本,确保版本一致。 - 示例输出:
[INFO] com.example:demo:jar:0.0.1-SNAPSHOT [INFO] +- org.springframework.boot:spring-boot-starter-web:jar:2.3.4.RELEASE:compile [INFO] | +- org.springframework.boot:spring-boot-starter:jar:2.3.4.RELEASE:compile [INFO] | | +- org.springframework.boot:spring-boot:jar:2.3.4.RELEASE:compile [INFO] | | +- org.springframework.boot:spring-boot-starter-logging:jar:2.3.4.RELEASE:compile [INFO] | | | +- ch.qos.logback:logback-classic:jar:1.2.3:compile [INFO] | | | | \- ch.qos.logback:logback-core:jar:1.2.3:compile [INFO] | | | \- org.slf4j:jul-to-slf4j:jar:1.7.30:compile [INFO] | | \- org.yaml:snakeyaml:jar:1.25:runtime [INFO] | \- org.springframework.boot:spring-boot-starter-tomcat:jar:2.3.4.RELEASE:compile [INFO] | \- org.apache.tomcat.embed:tomcat-embed-core:jar:9.0.36:compile [INFO] | \- org.apache.tomcat.embed:tomcat-embed-el:jar:9.0.36:compile [INFO] | \- org.apache.tomcat.embed:tomcat-embed-websocket:jar:9.0.36:compile [INFO] +- org.springframework.boot:spring-boot-starter-data-jpa:jar:2.3.4.RELEASE:compile [INFO] | \- org.springframework.boot:spring-boot-starter-jdbc:jar:2.3.4.RELEASE:compile [INFO] | \- org.springframework:spring-jdbc:jar:5.2.8.RELEASE:compile [INFO] \- mysql:mysql-connector-java:jar:8.0.22:runtime
-
自动配置失效
- 由于某些原因,Spring Boot 的自动配置可能失效。
- 解决方法:检查
@SpringBootApplication
注解是否正确使用,确保没有遗漏@EnableAutoConfiguration
注解。 - 示例代码:
@SpringBootApplication public class DemoApplication { public static void main(String[] args) { SpringApplication.run(DemoApplication.class, args); } }
-
数据库连接失败
- 由于数据库连接配置错误,导致应用启动失败。
- 解决方法:检查
application.properties
或application.yml
文件中数据库连接信息是否正确。 - 示例代码:
spring.datasource.url=jdbc:mysql://localhost:3306/test spring.datasource.username=root spring.datasource.password=root
-
运行时异常
- 由于代码或配置错误,导致运行时出现异常。
- 解决方法:查看异常堆栈信息,定位问题原因,修复代码或配置。
- 示例输出:
2023-01-20 13:00:00,000 ERROR 12345 --- [ main] o.s.boot.SpringApplication : Application run failed org.springframework.beans.factory.UnsatisfiedDependencyException: Error creating bean with name 'userController': Unsatisfied dependency expressed through field 'userRepository'; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'com.example.demo.repository.UserRepository' available
- 解决方法:检查
UserController
类中的UserRepository
注入是否正确。 -
示例代码:
package com.example.demo.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; import com.example.demo.repository.UserRepository; @RestController public class UserController { @Autowired private UserRepository userRepository; @GetMapping("/users") public String getUsers() { // 业务逻辑 return "Hello Spring Boot!"; } }
一些解决方法和技巧
-
使用Spring Initializr创建项目
- 使用Spring Initializr在线工具创建项目,避免手动配置依赖和项目结构。
- 示例URL:https://start.spring.io/
-
查看日志输出
- 在控制台查看Spring Boot的日志输出,了解应用启动和运行情况。
- 使用
--debug
启动参数,可以输出更多调试信息。 - 示例代码:
java -jar target/demo-0.0.1-SNAPSHOT.jar --debug
- 使用IDE自带的调试功能
- 利用IDE的调试功能,设置断点,逐步执行代码,方便快速定位问题。
- 在IntelliJ IDEA中,可以使用
Run -> Debug 'DemoApplication'
命令启动应用。 - 在代码中设置断点,逐步执行代码,查看变量值。
如何调试Spring Boot应用
-
设置断点
- 在IDE中找到需要调试的代码行,右键点击代码行并选择
Toggle Breakpoint
设置断点。 - 或者直接点击代码行左侧的空白区域设置断点。
-
示例代码:
package com.example.demo.controller; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @GetMapping("/users") public String getUsers() { // 设置断点 return "Hello Spring Boot!"; } }
- 在IDE中找到需要调试的代码行,右键点击代码行并选择
-
启动调试模式
- 在IDE中点击
Run -> Debug 'DemoApplication'
,启动调试模式。 - 在命令行中运行
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005
,并在IDE中配置远程调试连接。 - 配置远程调试连接:
- 在IntelliJ IDEA中,依次点击
Run -> Debug -> Edit Configurations
。 - 点击
+
号,选择Remote
,配置Port
为5005
,点击OK
。
- 在IntelliJ IDEA中,依次点击
- 示例代码:
mvn spring-boot:run -Dspring-boot.run.jvmArguments="-agentlib:jdwp=transport=dt_socket,server=y,suspend=n,address=5005"
- 在IDE中点击
-
查看变量值
- 在断点处,IDE会暂停执行,显示当前行的所有变量的值。
- 可以查看变量值,分析程序状态。
- 示例输出:
- UserController: getUsers - userRepository: com.example.demo.repository.UserRepository@12345 - this: com.example.demo.controller.UserController@56789
-
单步执行
- 在断点处,点击
Step Over
按钮(或按F8
键),执行当前行代码。 - 点击
Step Into
按钮(或按F7
键),进入方法内部执行。 - 点击
Step Out
按钮(或按Shift + F8
键),跳出当前方法执行。 -
示例代码:
package com.example.demo.controller; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class UserController { @Autowired private UserRepository userRepository; @GetMapping("/users") public String getUsers() { // 设置断点 List<User> users = userRepository.findAll(); return "Hello Spring Boot!"; } }
- 在断点处,点击
点击查看更多内容
为 TA 点赞
评论
共同学习,写下你的评论
评论加载中...
作者其他优质文章
正在加载中
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦