VSCode 配置 SpringBoot 开发

Spring Boot Extension Pack

Spring Boot Tools

Features

配置项 作用
"boot-java-vscode-only.test-jars": true 在构建或运行 Spring Boot 项目时,是否包含测试依赖(test jars)。当设置为 true 时,插件会将测试依赖(如 src/test 目录下的代码和依赖)包含在项目的构建和运行过程中
"boot-java.change-detection.on": false 当设置为 false 时,插件会禁用对项目文件的自动更改检测。这意味着,当你修改项目中的文件(如 Java 文件、配置文件等)时,插件不会自动触发重新构建、重新加载或重新启动 Spring Boot 应用程序
"boot-java.common.properties-metadata": "" 指定 Spring Boot 项目的配置文件元数据properties-metadata)的来源
aplication.yml 中写配置项为什么会有提示?就是因为有元数据文件
springboot 已经生成好了官方的元数据文件,像 server.port 等
如果自己定义了一个配置类绑定配置文件,在写配置的时候想也能提示各个配置项就需要引入依赖

org.springframework.boot
spring-boot-configuration-processor
true

这个依赖的作用就是生成元数据文件
这个配置项不用理会,1 官方配置已经生成好了,2 自定义配置引入这个依赖来生成,3 影响的是编写配置文件时进行提示,所以项目都没有任何元数据文件也不影响
"boot-java.cron.inlay-hints": true 是否显示 Cron 表达式的内联提示,设置为 true 会在编写 cron 的地方提示每个部分(如秒、分、小时)等,帮助开发者更方便编写
"boot-java.embedded-syntax-highlighting": true 配置文件高亮显示
"boot-java.highlight-codelens.on": true 是否启用 CodeLens 的功能
CodeLens:可以在代码中显示某个方法或属性等的使用次数、实现位置等
"boot-java.highlight-copilot-codelens.on": false 是否启用与 GitHub Copilot 相关的 CodeLens 功能
"boot-java.jpql": true JPQL 语法高亮显示(JPQL 是 JPA 的查询语句)
"boot-java.live-information.all-local-java-processes": false 实时信息会显示在 VS Code 的 Spring Boot Dashboard 面板中。这是一个专门用于管理和监控 Spring Boot 应用程序的工具窗口
如果为 false 只显示当前 SpringBoot 项目,true 表示系统所有 java 进程都显示
"boot-java.live-information.automatic-connection.on": false 也是配合 Spring Boot Dashboard 面板,是否自动连接以实时获取 SpringBoot 程序运行状态、内存使用等情况
"boot-java.live-information.fetch-data.max-retries": 10 也是配合 Spring Boot Dashboard 面板,当获取 Spring Boot 应用程序的实时信息失败时的最大重试次数
"boot-java.live-information.fetch-data.retry-delay-in-seconds": 3 也是配合 Spring Boot Dashboard 面板,每次重试间隔时间
"boot-java.modulith-project-tracking": true 是否启用对 Spring Modulith 的支持。Spring Modulith 是一种用于构建模块化 Spring Boot 应用程序的框架或方法论
src
├── main
│ ├── java
│ │ ├── com.example.module1
│ │ │ ├── Module1Application.java
│ │ │ └── Service1.java
│ │ ├── com.example.module2
│ │ │ ├── Module2Application.java
│ │ │ └── Service2.java
│ └── resources
└── test
"boot-java.modulith-project-tracking": true 时,插件会:
识别 module1module2 作为独立的模块
提供模块之间的导航和代码补全
检查模块之间的依赖关系是否符合设计规范
"boot-java.properties.completions.elide-prefix": false 配置文件候选项提示模式,当输入 server 时
如果 配置的为 false:
server.port
server.address
server.servlet.context-path
如果配置的为 true:
port
address
servlet.context-path
"boot-java.remote-apps": [] Spring Boot Dashboard 远程监控程序,配置上远程服务的地址,可以实时查看其运行状态、内存使用等情况
"boot-java.scan-java-test-sources.on": false 是否扫描和处理项目中的 Java 测试源代码(即 src/test/java 目录下的代码)
false:不提供代码补全、语法检测等
"boot-java.support-spring-xml-config.content-assist": true 否启用对 Spring XML 配置文件内容辅助(Content Assist)功能
比如 配置 Bean 里面的属性 initMethod、calss 等
仅对 Spring 的xml 配置文件内容进行辅助,比如 mybatis 等其他的 xml 文件不会
"boot-java.support-spring-xml-config.hyperlinks": true 是否在 Spring XML 配置文件中启用超链接导航功能
比如点击 Bean 的 calss 可以跳转到 这个类
"boot-java.support-spring-xml-config.on": false 是否开启 Spring XML 配置文件 的整体开关,要这个开启 boot-java.support-spring-xml-config.content-assistboot-java.support-spring-xml-config.hyperlinks才有效
"boot-java.support-spring-xml-config.scan-folders": "src/main" 指定 Spring XML 配置文件 位置
"boot-java.validation.java.reconcilers": true 是否启用 Java 文件的实时验证和修复功能
比如 Spring 的注解、bean 等是否使用和定义合法
"spring.tools.openWith": "integrated" spring 相关的文件(如 POM,yaml 等)打开方式
"integrated" 表示使用集成编辑器而非外部程序打开
"spring.tools.properties.replace-converted-file": false 在转换或编辑 application.properties 文件时,是否替换原始文件
比如把 properties 转换成 yaml 格式

OpenRewrite

配置项 作用
"boot-java.rewrite.recipe-filters": [
"org.openrewrite.java.spring.boot2.SpringBoot2JUnit4to5Migration",
"org.openrewrite.java.spring.boot3.SpringBoot3BestPractices",
"org.openrewrite.java.testing.junit5.JUnit5BestPractices",
"org.openrewrite.java.testing.junit5.JUnit4to5Migration",
"org.openrewrite.java.spring.boot2.UpgradeSpringBoot_2_7",
"org.openrewrite.java.spring.boot3.UpgradeSpringBoot_3_3",
"org.springframework.ide.vscode.rewrite.boot3.UpgradeSpringBoot_3_4",
"org.rewrite.java.security.",
"org.springframework.rewrite.test.
",
"rewrite.test.*"
]
用于控制 Rewrite 框架配方过滤器(Recipe Filters)。Rewrite 是一个用于代码重构和迁移的工具,Spring Boot Tools 插件集成了 Rewrite 框架,帮助开发者自动化代码重构任务
此选项用于指定 Rewrite 框架的配方过滤器,即哪些重构配方(Recipes)应该被启用或禁用。配方过滤器可以基于配方的名称、标签或其他属性进行配置
通过配置配方过滤器,你可以精确控制哪些重构配方应该被应用
只启用与 Spring Boot 升级相关的配方
禁用某些可能不适合当前项目的配方
"boot-java.rewrite.refactorings.on": true 是否启用 Spring Boot Java 代码重构 功能
true:启用代码重构功能。Spring Tools 会在开发过程中提供与代码重构相关的建议和自动化操作
false:禁用代码重构功能
"boot-java.rewrite.scan-files": [] 重构文件范围,为空表示所有被支持的文件都会扫描
比如 java、properties、yml、xml 等

Boot 2.x Best Practices & Optimizations

配置项 作用
"boot-java.validation.java.boot2": "AUTO" 用于控制对 Spring Boot 2.x 项目的**验证行为****,AUTO 表示自动识别
下面是具体的验证配置项
"spring-boot.ls.problem.boot2.DOMAIN_ID_FOR_REPOSITORY": "ERROR" 检查 Repository 接口中是否正确定义了域对象的 ID 字段。如果未定义,标记为错误。
"spring-boot.ls.problem.boot2.HTTP_SECURITY_AUTHORIZE_HTTP_REQUESTS": "WARNING" 检查 Spring Security 配置中是否使用了 authorizeHttpRequests 方法(Spring Security 5.5+ 的新特性)。如果未使用,标记为警告。
"spring-boot.ls.problem.boot2.JAVA_AUTOWIRED_CONSTRUCTOR": "WARNING" 检查是否在构造函数上正确使用了 @Autowired 注解。如果未使用或使用不当,标记为警告。
"spring-boot.ls.problem.boot2.JAVA_CONSTRUCTOR_PARAMETER_INJECTION": "IGNORE" 检查是否使用了构造函数参数注入(推荐的方式)。如果未使用,标记为忽略。
"spring-boot.ls.problem.boot2.JAVA_LAMBDA_DSL": "INFO" 检查是否使用了 Lambda DSL(例如 Spring Security 的 Lambda 配置)。如果未使用,标记为信息。
"spring-boot.ls.problem.boot2.JAVA_PRECISE_REQUEST_MAPPING": "HINT" 检查是否使用了精确的 @RequestMapping 注解(例如 @GetMapping@PostMapping 等)。如果未使用,标记为提示。
"spring-boot.ls.problem.boot2.JAVA_PUBLIC_BEAN_METHOD": "HINT" 检查 Bean 方法是否为 public(Spring 推荐的方式)。如果未使用,标记为提示。
"spring-boot.ls.problem.boot2.JAVA_REPOSITORY": "WARNING" 检查 Repository 接口是否正确实现。如果未正确实现,标记为警告。
"spring-boot.ls.problem.boot2.JAVA_TEST_SPRING_EXTENSION": "WARNING" 检查测试类是否使用了 @ExtendWith(SpringExtension.class)(JUnit 5 的推荐方式)。如果未使用,标记为警告。
"spring-boot.ls.problem.boot2.MISSING_CONFIGURATION_ANNOTATION": "WARNING" 检查配置类是否使用了 @Configuration 注解。如果未使用,标记为警告。
"spring-boot.ls.problem.boot2.WEB_ANNOTATION_NAMES": "HINT" 检查是否使用了正确的 Web 注解(例如 @RestController@Controller 等)。如果未使用,标记为提示。
"spring-boot.ls.problem.boot2.WEB_SECURITY_CONFIGURER_ADAPTER": "WARNING" 检查是否使用了 WebSecurityConfigurerAdapter(Spring Security 5.7+ 已弃用)。如果使用,标记为警告。

Boot 3.x Best Practices & Optimizations

配置项 作用
"boot-java.validation.java.boot3": "AUTO" 用于控制对 Spring Boot 3.x 项目的验证行为,AUTO 表示自动识别
下面是具体的验证配置项
"spring-boot.ls.problem.boot3.FACTORIES_KEY_NOT_SUPPORTED": "ERROR" 检查是否使用了 Spring Boot 3.x 中不再支持的 spring.factories 文件中的键。如果使用,标记为错误。
"spring-boot.ls.problem.boot3.JAVA_TYPE_NOT_SUPPORTED": "ERROR" 检查是否使用了 Spring Boot 3.x 中不再支持的 Java 类型(例如某些已弃用的类或方法)。如果使用,标记为错误。
"spring-boot.ls.problem.boot3.MODULITH_TYPE_REF_VIOLATION": "ERROR" 检查是否违反了 Spring Modulith 的类型引用规则(例如模块之间的非法依赖)。如果违反,标记为错误。

AOT Optimizations

配置项 作用
"boot-java.validation.java.spring-aot": "OFF" 是否启用 Spring AOT 相关的代码验证
当设置为 OFF 时,IDE 不会检查代码是否符合 AOT 编译要求,适用于不需要使用 Spring Native/AOT 的传统开发模式
"spring-boot.ls.problem.spring-aot.JAVA_BEAN_NOT_REGISTERED_IN_AOT": "WARNING" AOT 编译需要显式注册 Bean 类型
当检测到未通过 @RegisteredBean 注册的 Java Bean 时显示警告
"spring-boot.ls.problem.spring-aot.JAVA_BEAN_POST_PROCESSOR_IGNORED_IN_AOT": "WARNING" AOT 模式下某些动态处理会被限制
当检测到 Bean 后处理器在 AOT 阶段被忽略时显示警告
"spring-boot.ls.problem.spring-aot.JAVA_CONCRETE_BEAN_TYPE": "WARNING" AOT 需要明确的类型信息来生成原生镜像
当具体类 Bean 未明确指定类型时显示警告

Property Config Files

指定 .properties 的校验规则,不满足进行不同等级的提示

YAML Config Fiels

指定 .yaml 的校验规则,不满足进行不同等级的提示

SpEL Expressions

指定 SpEL 表达式的校验规则,不满足进行不同等级的提示

Versions and Support Ranges

Spring Boot 的版本支持的校验规则,不满足进行不同等级的提示

比如 Spring Boot 和 JAVA 的版本、比如 Spring Boot 有新版本可用(主要版本和次要版本)等

Data Queries

指定 数据查询规则集 的校验规则,不满足进行不同等级的提示

比如 HQL、JPQL、SQL 等

CRON Expressions

指定 cron 表达式的校验规则,不满足进行不同等级的提示

Language Server

  • spring-boot.ls.checkJVM:启用 JVM 环境检查,确保 JVM 设置符合要求。
  • spring-boot.ls.java.heap:设置 JVM 堆内存的大小,影响应用的内存管理和性能。
  • spring-boot.ls.java.home:指定 Java 安装路径,确保使用正确版本的 JDK。
  • spring-boot.ls.java.vmargs:指定 JVM 启动时的其他参数,用于调优或修改 JVM 行为。
  • spring-boot.ls.logfile:指定日志文件路径,将日志保存到文件中。

Spring Initializr Java Support

配置 Spring Boot 初始化的信息

默认 artifact(demo)、group(com.example)、java 版本、语言(Java、Cotlin、Groovy)、打包方式(jar、war)等

比较有用的就是 serviceUrl,可以配置为 https://start.aliyun.com/ 可以创建 jdk8 的项目,默认是 https://start.spring.io/ 最低 jdk17

Spring Boot Dashboard

这玩意默认就好了,应该不重要,需要的时候再看吧

posted @ 2025-02-23 15:18  CyrusHuang  阅读(1759)  评论(0)    收藏  举报