提交 e6627a59 编写于 作者: 官方直播's avatar 官方直播

Merge branch 'master' into 'master'

Master

See merge request dev-cloud/spring!9
......@@ -11,11 +11,11 @@
| [Spring 快速入门指南](https://dev-cloud.gitcode.host/spring/quickstart.html) | 冯丙见 | <ul><li> [ ] </li></ul> |
| [安装系统要求](https://dev-cloud.gitcode.host/spring/system-requirements.html) | 崔志康 | <ul><li> [ ] </li></ul> |
| [安装Spring Boot](https://dev-cloud.gitcode.host/spring/installing.html) | 崔志康 | <ul><li> [ ] </li></ul> |
| [安装脚手架](https://dev-cloud.gitcode.host/spring/initializr.html) | 王晗 | <ul><li> [ ] </li></ul> |
| [在 VS Code 中开始使用 Java](https://dev-cloud.gitcode.host/spring/vscode_java.html) | 王晗 | <ul><li> [ ] </li></ul> |
| [安装脚手架](https://dev-cloud.gitcode.host/spring/initializr.html) | 王晗 | <ul><li> [x] </li></ul> |
| [在 VS Code 中开始使用 Java](https://dev-cloud.gitcode.host/spring/vscode_java.html) | 王晗 | <ul><li> [x] </li></ul> |
| [使用 IntelliJ IDEA 编写入门指南](https://dev-cloud.gitcode.host/spring/intellij_idea.html) | 王捷 | <ul><li> [ ] </li></ul> |
| [开发你的第一个 Spring Boot 应用程序](https://dev-cloud.gitcode.host/spring/getting-started_first-application.html) | 王捷 | <ul><li> [ ] </li></ul> |
| [构建 RESTful Web 服务](https://dev-cloud.gitcode.host/spring/rest-service.html#%E4%BD%A0%E5%B0%86%E5%BB%BA%E9%80%A0%E4%BB%80%E4%B9%88) | 王晗 | <ul><li> [ ] </li></ul> |
| [构建 RESTful Web 服务](https://dev-cloud.gitcode.host/spring/rest-service.html#%E4%BD%A0%E5%B0%86%E5%BB%BA%E9%80%A0%E4%BB%80%E4%B9%88) | 王晗 | <ul><li> [x] </li></ul> |
| [使用 RESTful Web 服务](https://dev-cloud.gitcode.host/spring/consuming-rest.html#%E4%BD%A0%E5%B0%86%E5%BB%BA%E9%80%A0%E4%BB%80%E4%B9%88) | 王捷 | <ul><li> [ ] </li></ul> |
## 参与贡献流程
......
# 脚手架
![2022-03-01-18-11-18](./initializr/2022-03-01-18-11-18.png)
**[通过配置,生成spring demo项目](https://start.spring.io/)**
![2022-03-01-18-11-18](./initializr/2022-03-03-13-33.png)
原文链接: https://start.spring.io/
# 构建 RESTful Web 服务
本指南将引导您完成使用 Spring 创建“Hello, World”RESTful Web 服务的过程
本指南将引导您完成使用 Spring 创建“Hello, World” RESTful Web项目
## 你将建造什么
## 你将开发什么
您将构建一个接受 HTTP GET 请求的服务`http://localhost:8080/greeting`
您将开发一个HTTP服务,可以接收如下GET 请求:`http://localhost:8080/greeting`
它将以问候语的 JSON 表示形式进行响应,如以下清单所示:
它将以JSON格式返回值响应请求,如以下清单所示:
```
{"id":1,"content":"Hello, World!"}
```
您可以在查询字符串中使用可选`name`参数自定义问候语,如以下清单所示:
您可以在请求链接中使用`name`参数发送请求,如以下清单所示:
```
http://localhost:8080/greeting?name=User
```
`name`参数值覆盖默认值`World`并反映在响应中,如以下清单所示:
请求返回报文中,`name`参数值将覆盖默认值`World`,如下所示:
```
{"id":1,"content":"Hello, User!"}
......@@ -27,35 +27,35 @@ http://localhost:8080/greeting?name=User
## 你需要什么
- 约15分钟
- 最喜欢的文本编辑器或 IDE
- 最喜欢的文本编辑器或IDE
- [JDK 1.8](http://www.oracle.com/technetwork/java/javase/downloads/index.html)或更高版本
- [Gradle 4+](http://www.gradle.org/downloads)[Maven 3.2+](https://maven.apache.org/download.cgi)
- 您还可以将代码直接导入 IDE:
- [弹簧工具套件 (STS)](https://spring.io/guides/gs/sts)
- [Spring 工具套件 (STS)](https://spring.io/guides/gs/sts)
- [IntelliJ IDEA](https://spring.io/guides/gs/intellij-idea/)
## 如何完成本指南
像大多数 Spring[入门指南](https://spring.io/guides)一样,您可以从头开始并完成每个步骤,也可以绕过您已经熟悉的基本设置步骤。无论哪种方式,您最终都会得到工作代码。
像大多数 Spring[入门指南](https://spring.io/guides)一样,您可以从头开始并完成每个步骤,也可以绕过您已经熟悉的基本设置步骤。无论哪种方式,您最终都会获得可用的代码。
**从头开始**,请继续[从 Spring Initializr 开始](https://spring.io/guides/gs/rest-service/#scratch)
**从头开始**,请跳转到[从 Spring Initializr 开始](https://spring.io/guides/gs/rest-service/#scratch)
**跳过基础知识**,请执行以下操作:
- [下载](https://github.com/spring-guides/gs-rest-service/archive/main.zip)并解压缩本指南的源存储库,或使用[Git](https://spring.io/understanding/Git)克隆它`git clone https://github.com/spring-guides/gs-rest-service.git`
- 光盘进入`gs-rest-service/initial`
- [下载](https://github.com/spring-guides/gs-rest-service/archive/main.zip)并解压缩本指南的源存储库,或使用[Git](https://spring.io/understanding/Git) Clone`git clone https://github.com/spring-guides/gs-rest-service.git`
- cd into `gs-rest-service/initial`
- 继续[创建资源表示类](https://spring.io/guides/gs/rest-service/#initial)
**完成后**,您可以对照中的代码检查结果`gs-rest-service/complete`
**完成后**,您可以从如下目录查看结果代码 `gs-rest-service/complete`
## 从 Spring Initializr 开始
您可以使用这个[预先初始化的项目](https://start.spring.io/#!type=maven-project&language=java&platformVersion=2.5.5&packaging=jar&jvmVersion=11&groupId=com.example&artifactId=rest-service&name=rest-service&description=Demo project for Spring Boot&packageName=com.example.rest-service&dependencies=web)并单击 Generate 下载 ZIP 文件。此项目配置为适合本教程中的示例。
您可以使用这个[预先初始化的项目](https://start.spring.io/#!type=maven-project&language=java&platformVersion=2.5.5&packaging=jar&jvmVersion=11&groupId=com.example&artifactId=rest-service&name=rest-service&description=Demo project for Spring Boot&packageName=com.example.rest-service&dependencies=web)并单击 Generate 下载 ZIP 文件。此项目配置兼容本教程中的示例。
手动初始化项目:
1. 导航到[https://start.spring.io](https://start.spring.io/)。该服务提取应用程序所需的所有依赖项,并为您完成大部分设置。
2. 选择 Gradle 或 Maven 以及您要使用的语言。本指南假定您选择了 Java。
2. 选择 Gradle 或 Maven 以及您要使用的开发语言。本指南假定您选择了 Java。
3. 单击**Dependencies**并选择**Spring Web**
4. 单击**生成**
5. 下载生成的 ZIP 文件,该文件是根据您的选择配置的 Web 应用程序的存档。
......@@ -72,9 +72,9 @@ http://localhost:8080/greeting?name=User
现在您已经设置了项目和构建系统,您可以创建您的 Web 服务。
从考虑服务交互开始这个过程。
首先考虑服务交互流程。
该服务将处理对 的`GET`请求`/greeting`,可以选择`name`在查询字符串中使用参数。该`GET`请求应`200 OK`在表示问候的正文中返回带有 JSON 的响应。它应该类似于以下输出
该服务将处理访问`/greeting``GET`请求,请求可选参数 `name`。该`GET`请求在返回`200 OK`的情况下,JSON返回值如下
```
{
......@@ -83,9 +83,9 @@ http://localhost:8080/greeting?name=User
}
```
`id`字段是问候语的唯一标识符,是问候语`content`的文本表示。
`id`字段是返回内容的唯一标识符,是返回内容`content`的文本表示。
要对问候表示建模,请创建一个资源表示类。为此,请提供一个普通的旧 Java 对象,其中包含用于`id``content`数据的字段、构造函数和访问器,如以下清单(来自`src/main/java/com/example/restservice/Greeting.java`)所示:
要对返回内容建模,请创建一个资源表示类。为此,需要创建一个普通的Java 对象,其中包含`id``content`两个数据字段、构造函数和访问器,如以下(来自`src/main/java/com/example/restservice/Greeting.java`)所示:
```
package com.example.restservice;
......@@ -110,11 +110,11 @@ public class Greeting {
}
```
此应用程序使用[Jackson JSON](https://github.com/FasterXML/jackson)将类型的实例自动编组`Greeting`为 JSON。网络启动器默认包含 Jackson。
此应用程序使用[Jackson JSON](https://github.com/FasterXML/jackson),将实例`Greeting`转换为JSON。web启动器默认包含Jackson。
## 创建资源控制器
在 Spring 构建 RESTful Web 服务的方法中,HTTP 请求由控制器处理。这些组件由[`@RestController`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RestController.html)注释标识,`GreetingController`下面的清单 (from )通过返回类的新实例来`src/main/java/com/example/restservice/GreetingController.java`处理`GET`请求:`/greeting``Greeting`
在 Spring 构建的 RESTful Web 服务中,HTTP 请求由控制器处理。这些组件由[`@RestController`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RestController.html)注释标识,如下 `GreetingController`实例(参看 `src/main/java/com/example/restservice/GreetingController.java`)处理`GET`请求:`/greeting`
```
package com.example.restservice;
......@@ -138,29 +138,31 @@ public class GreetingController {
}
```
这个控制器简洁明了,但引擎盖下有很多事情要做。我们一步一步分解。
这个控制器简洁明了,但底层有很多事情要做。我们一步一步分解。
`@GetMapping`释确保 HTTP GET 请求`/greeting`映射到`greeting()`方法。
`@GetMapping`解确保 HTTP GET 请求`/greeting` 可以映射到`greeting()`方法。
有其他 HTTP 动词的伴随注释(例如`@PostMapping`POST)。还有一个`@RequestMapping`它们都源自的注释,并且可以用作同义词(例如`@RequestMapping(method=GET)`)。
```
还有其他 HTTP 请求注解(例如`@PostMapping`POST)。所有注解均继承`@RequestMapping`,同时也可以使用如下注解方式(例如`@RequestMapping(method=GET)`)。
```
`@RequestParam`将查询字符串参数的值绑定`name`到方法的`name`参数中`greeting()`。如果`name`请求中没有参数,则使用`defaultValue`of `World`
`@RequestParam`将查询参数`name`的值绑定到方法`greeting()`的参数`name`上。如果请求中没有`name`参数,则使用参数默认值 `World`
方法体的实现创建并返回一个新`Greeting`对象,该对象具有`id``content`基于下一个值的属性,并使用 greeting`counter`格式化给定的格式。`name``template`
此方法创建并返回一个新`Greeting`对象,该对象包含`id``content`属性,并通过counter.incrementAndGet(), String.format(template, name) 分别进行参数赋值
传统 MVC 控制器和前面显示的 RESTful Web 服务控制器之间的一个关键区别是 HTTP 响应主体的创建方式。这个 RESTful Web 服务控制器不是依靠视图技术来执行服务器端将问候数据呈现为 HTML,而是填充并返回一个`Greeting`对象。对象数据将作为 JSON 直接写入 HTTP 响应。
传统 MVC 控制器和前面显示的 RESTful Web 服务控制器之间的一个关键区别是 HTTP 请求响应的创建方式。这个 RESTful Web 服务控制器不是依靠视图技术直接返回HTML类型的响应内容,而是填充并返回一个`Greeting`对象。对象数据将以 JSON 类型直接写入 HTTP 响应。
此代码使用 Spring[`@RestController`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RestController.html)释,它将类标记为控制器,其中每个方法都返回域对象而不是视图。它是同时包含`@Controller`和的简写`@ResponseBody`
此代码使用 Spring[`@RestController`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/web/bind/annotation/RestController.html)解,它将类标记为控制器,其中每个方法都返回域对象而不是视图。它是`@Controller``@ResponseBody`的简写
`Greeting`对象必须转换为 JSON。感谢 Spring 的 HTTP 消息转换器支持,您无需手动进行此转换。因为[Jackson 2](https://github.com/FasterXML/jackson)在类路径上,所以会自动选择 Spring[`MappingJackson2HttpMessageConverter`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.html)`Greeting`实例转换为 JSON
`Greeting`对象必须转换为 JSON 格式。依赖于 Spring 的 HTTP 消息转换器支持,您无需手动进行此转换。因为classpath里面已经包含[Jackson 2](https://github.com/FasterXML/jackson),所以会自动选择Spring的[`MappingJackson2HttpMessageConverter`](https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/http/converter/json/MappingJackson2HttpMessageConverter.html)`Greeting`实例转换为JSON格式
`@SpringBootApplication`是一个方便的注释,它添加了以下所有内容:
`@SpringBootApplication`是一个方便的注释,它包含了以下所有内容:
- `@Configuration`: 将类标记为应用程序上下文的 bean 定义源
- `@EnableAutoConfiguration`:告诉 Spring Boot 根据类路径设置、其他 bean 和各种属性设置开始添加 bean。例如,如果`spring-webmvc`位于类路径上,则此注释将应用程序标记为 Web 应用程序并激活关键行为,例如设置`DispatcherServlet`.
- `@ComponentScan`: 告诉 Spring 在包中查找其他组件、配置和服务`com/example`,让它找到控制器。
- `@Configuration`: 在应用程序上下文中,将类标记为bean
- `@EnableAutoConfiguration`:告诉 Spring Boot 根据类路径设置、其他 bean 和各种属性设置扫描并添加bean。例如,如果`spring-webmvc`位于类路径上,则此注释将应用程序标记为 Web 应用程序并激活关键行为,例如设置`DispatcherServlet`.
- `@ComponentScan`: 告诉 Spring 在包`com/example`中扫描其他components, configurations及services类
`main()`方法使用 Spring Boot 的`SpringApplication.run()`方法来启动应用程序。您是否注意到没有一行 XML?也没有`web.xml`文件。这个 Web 应用程序是 100% 纯 Java,您不必处理任何管道或基础设施的配置。
`main()`方法使用 Spring Boot 的`SpringApplication.run()`方法来启动应用程序。您是否注意到我们没有配置一行 XML?也没有`web.xml`文件。这个 Web 应用程序是 100% 纯 Java,您不必处理任何管道或基础设施的配置。
### 构建一个可执行的 JAR
......@@ -180,7 +182,7 @@ java -jar target/gs-rest-service-0.1.0.jar
此处描述的步骤创建了一个可运行的 JAR。您还可以[构建经典的 WAR 文件](https://spring.io/guides/gs/convert-jar-to-war/)
显示记录输出。该服务应在几秒钟内启动并运行。
该服务会在几秒钟内启动并运行。
## 测试服务
......@@ -190,18 +192,18 @@ java -jar target/gs-rest-service-0.1.0.jar
{"id":1,"content":"Hello, World!"}
```
通过访问提供`name`查询字符串参数`http://localhost:8080/greeting?name=User``content`请注意属性的值如何从`Hello, World!`变为`Hello, User!`,如以下清单所示:
通过访问提供`name`查询字符串参数`http://localhost:8080/greeting?name=User``content`请注意属性的值如何从`Hello, World!`变为`Hello, User!`,如以下所示:
```
{"id":2,"content":"Hello, User!"}
```
这一变化表明,`@RequestParam`安排在`GreetingController`按预期工作。该`name`参数已被赋予默认值,`World`但可以通过查询字符串显式覆盖。
这一变化表明,`@RequestParam``GreetingController`按预期工作。该`name`参数的默认值`World` 已被参数`name`的值覆盖
还要注意`id`属性是如何从`1`变为 的`2`。这证明您正在`GreetingController`跨多个请求处理同一个实例,并且其`counter`字段在每次调用时都按预期递增。
还要注意`id`属性是如何从`1`变为 的`2`。这证明同一个`GreetingController`处理多个请求,并且其`counter`字段在每次调用时都按预期递增。
## 概括
恭喜!您刚刚使用 Spring 开发了一个 RESTful Web 服务。
原文链接: https://spring.io/guides/gs/rest-service/
\ No newline at end of file
原文链接: https://spring.io/guides/gs/rest-service/
# 在 VS Code 中开始使用 Java
本教程向您展示如何使用 Visual Studio Code 在 Java 中编写和运行 Hello World 程序。它还涵盖了一些高级功能,您可以通过阅读本节中的其他文档来探索这些功能。
本教程向您展示如何使用 Visual Studio Code 在 Java 中编写和运行 Hello World 程序,同时您可以通过阅读本节中的其他文档来探索一些高级功能。
有关 VS Code 中可用于 Java 的功能的概述,请参阅[Java 语言概述](https://code.visualstudio.com/docs/languages/java)
如果您在学习本教程时遇到任何问题,可以通过输入[问题](https://github.com/microsoft/vscode-java-pack/issues)与我们联系。
如果您在学习本教程时遇到任何问题,可以通过[问题](https://github.com/microsoft/vscode-java-pack/issues)与我们联系。
## 为 Java 开发设置 VS Code
### Java 编码包
为了帮助您快速设置,您可以安装**Coding Pack for Java**,其中包括 VS Code、Java 开发工具包 (JDK) 和基本的 Java 扩展。Coding Pack 可用作全新安装,或用于更新或修复现有开发环境。
为了帮助您快速开始,您可以安装**Coding Pack for Java**,其中包括 VS Code、Java开发工具包 (JDK) 和基本的 Java扩展。Coding Pack 可用于全新安装,或用于更新修复现有开发环境。
[安装适用于 Java 的编码包 - Windows](https://aka.ms/vscode-java-installer-win)
[安装 Java 环境下的Coding Pack - Windows](https://aka.ms/vscode-java-installer-win)
[安装适用于 Java 的编码包 - macOS](https://aka.ms/vscode-java-installer-mac)
[安装 Java 环境下的Coding Pack - macOS](https://aka.ms/vscode-java-installer-mac)
> **注意**:Java 编码包仅适用于 Windows 和 macOS。对于其他操作系统,您将需要手动安装 JDK、VS Code 和 Java 扩展。
> **注意**:Java 环境下的 Coding Pack 仅适用于 Windows 和 macOS。对于其他操作系统,您需要手动安装 JDK、VS Code 和 Java 扩展。
### 安装扩展
如果您是现有的 VS Code 用户,还可以通过安装[Extension Pack for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack)来添加 Java 支持,其中包括以下扩展:
如果您已安装 VS Code,还可以通过安装[Extension Pack for Java](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack)来添加 Java 支持,其中包括以下扩展:
- [Red Hat 对 Java™ 的语言支持](https://marketplace.visualstudio.com/items?itemName=redhat.java)
- [Java 调试器](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-debug)
- [Java 的测试运行器](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-test)
- [用于 Java 的 Maven](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-maven)
- [Java 项目](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-dependency)
- [Java 项目](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-dependency)
- [Visual Studio 智能代码](https://marketplace.visualstudio.com/items?itemName=VisualStudioExptTeam.vscodeintellicode)
[安装 Java 扩展包](vscode:extension/vscjava.vscode-java-pack)
[Java 扩展包](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack)提供了快速入门指南和代码编辑和调试技巧。它还有一个常见问题解答,可以回答一些常见问题。使用命令选项板 ( Ctrl+Shift+P ) 中的命令**Java: Tips for Beginners**来启动指南。
[Java 扩展包](https://marketplace.visualstudio.com/items?itemName=vscjava.vscode-java-pack)提供了快速入门指南、代码编辑和调试技巧的功能。它还有一个常见问题解答,可以查看一些常见问题。使用命令选项板 ( Ctrl+Shift+P ) 中的命令**Java: Tips for Beginners**来启动指南。
![getting-started](./vscode_java/getting-started.png)
您也可以单独安装扩展。**扩展指南**旨在帮助您。您可以使用**Java: Extensions Guide**命令启动该指南。
您也可以单独安装扩展。**扩展指南**旨在帮助您。您可以使用**Java: Extensions Guide**命令查看该指南。
对于本教程,唯一需要的扩展是:
......@@ -54,15 +54,15 @@
### 安装 Java 开发工具包 (JDK)
如果您以前从未安装过 JDK 并且需要安装一个,我们建议您从以下来源之一中进行选择:
如果您以前从未安装过JDK,我们建议您从以下来源进行选择:
- [亚马逊 Corretto](https://aws.amazon.com/corretto)
- [阿祖尔祖鲁](https://www.azul.com/downloads/?package=jdk)
- [Eclipse Adoptium Temurin](https://adoptium.net/)
- [OpenJDK 的 Microsoft 构建](https://www.microsoft.com/openjdk)
- [甲骨文 Java SE](https://www.oracle.com/java/technologies/javase-downloads.html)
- [Red Hat 构建的 OpenJDK](https://developers.redhat.com/products/openjdk/download)
- [树液机](https://sapmachine.io/)
- [Amazon Corretto](https://aws.amazon.com/corretto)
- [Azul Zulu](https://www.azul.com/downloads/?package=jdk)
- [Eclipse Adoptium's Temurin](https://adoptium.net/)
- [Microsoft Build of OpenJDK](https://www.microsoft.com/openjdk)
- [Oracle Java SE](https://www.oracle.com/java/technologies/javase-downloads.html)
- [Red Hat build of OpenJDK](https://developers.redhat.com/products/openjdk/download)
- [SapMachine](https://sapmachine.io/)
## 创建源代码文件
......@@ -82,11 +82,11 @@ Visual Studio Code 还支持更复杂的 Java 项目 - 请参阅[项目管理](h
## 编辑源代码
您可以使用代码片段来搭建您的类和方法。VS Code 还提供了用于代码完成的 IntelliSense,以及各种重构方法。
您可以使用代码片段来搭建您的类和方法。VS Code 还提供了用于代码智能提示的 IntelliSense,以及各种重构方法。
<video src="./vscode_java/edit-code.mp4"></video>
要了解有关编辑 Java 的更多信息,请参阅[Java 编辑](https://code.visualstudio.com/docs/java/java-editing)
要了解更多有关编辑 Java 的信息,请参阅[Java 编辑](https://code.visualstudio.com/docs/java/java-editing)
## 运行和调试你的程序
......@@ -96,17 +96,17 @@ Visual Studio Code 还支持更复杂的 Java 项目 - 请参阅[项目管理](h
调试器还支持[热代码替换](https://code.visualstudio.com/docs/java/java-debugging#_hot-code-replace)和条件断点等高级功能。
有关详细信息,请参阅[Java 调试](https://code.visualstudio.com/docs/java/java-debugging)
更多详细信息,请参阅[Java 调试](https://code.visualstudio.com/docs/java/java-debugging)
## 更多功能
该编辑器还具有更多功能来帮助您处理 Java 工作负载
该编辑器还具有更多功能来协助您完成 Java 工作
- [编辑 Java](https://code.visualstudio.com/docs/java/java-editing)更详细地解释了如何导航和编辑 Java
- [编辑 Java](https://code.visualstudio.com/docs/java/java-editing)更详细地介绍了如何导航和编辑 Java
- [调试](https://code.visualstudio.com/docs/java/java-debugging)说明了 Java 调试器的所有关键特性
- [测试](https://code.visualstudio.com/docs/java/java-testing)为 JUnit 和 TestNG 框架提供全面的支持
- [Java 项目管理](https://code.visualstudio.com/docs/java/java-project)向您展示如何使用项目视图使用 Maven
- [Java 项目管理](https://code.visualstudio.com/docs/java/java-project)向您展示如何使用项目视图使用 Maven
- [Spring Boot](https://code.visualstudio.com/docs/java/java-spring-boot)[Tomcat 和 Jetty](https://code.visualstudio.com/docs/java/java-tomcat-jetty)展示了出色的框架支持
- [Java Web Apps](https://code.visualstudio.com/docs/java/java-webapp)展示了如何在 VS Code 中使用 Java Web App
原文链接: https://code.visualstudio.com/docs/java/java-tutorial
\ No newline at end of file
原文链接: https://code.visualstudio.com/docs/java/java-tutorial
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册