- Cтандартный контейнер VS Code с Java 8, Maven и node.js lts/*
Расширения:
- Extension Pack for Java
- Debugger for Java
- Language Support for Java(TM) by Red Hat
- Maven for Java
- Project Manager for Java
- Test Runner for Java
- Visual Studio IntelloCode
- AsciiDoc - для просмотра файлов .adoc
- TabOut
- Установить расширение
Spring Initializr Java Support
- В панели команд (F1 или CtrlShiftP) выбрать
Spring Initializr: Create a Maven Project...
:- Spring Boot
2.5.7
Java
- Group Id:
com.example
- Artifact Id:
demo
Jar
- Java version:
8
- Dependencies:
Spring Boot DevTools
Spring Web
- дополнительные можно добавить позднее, щелкнув ПКМ по pom.xml, и выбрав "Add Starters..."
- Расположение в корневой директории воркспейса (будет создана папка с именем как указано в Artifact Id)
- Spring Boot
После создания проекта он не появился в панели Java Projects даже после нажатия на кнопку Refresh там. Помогла команда Reload Window, затем открытие какого-либо файла java.
Запуск приложения осуществляется командой mvn spring-boot:run
в корневой директории приложения [в статье не сказано, что нужно перейти в папку, скорее всего, предполагается открыть папку с проектом как корневую в VS Code]. При необходимости загружаются зависимости, затем производится запуск веб-сервера для разработки. По адресу localhost:8080
отображается страница 404
, т. к. в приложении ещё не объявлены никакие пути.
Для быстрого доступа к файлам можно нажать CtrlP (или F1 и стереть >
), затем написать, например, Demo
.
Установить расширение[уже установлено]Java Extension Pack
- Установить расширение
Spring Boot Extension Pack
:Spring Initializr Java Support[уже установлено]- Spring Boot Tools
- Spring Boot Dashboard
VSC: "Java Extension Contribution has changed... reload required"
Если открыть файл DemoApplication.java
, в правой части панели открытых файлов
появляются кнопки Run Java
, Debug Java
.
В статье говорится, что на этом этапе VSC должен был задать вопрос "This Project contains Java, do you want to import it?" -> "Always". Однако проекты импортировались в Java Project автоматически при открытии первого java-файла
Spring Boot Dashboard
позволяет запускать/останавливать приложения из панелиExplorer > Spring Boot Dashboard
. Также можно запустить приложение из панелиExplorer > Java Projects
.
Создать файл MyController.java
в папке src/main/java/com/example/demo
.
[В статье говорится про путь src/com/infoworld/demo
, но в созданном шаблоне
приложения присутствуют также каталоги .../main/java/...
]
VSC автоматически создаст заготовку класса MyController
в новом файле.
К классу нужно добавить аннотацию @RestController
(автодополнение должно
предлагать варианты по ходу написания, при необходимости его можно вызвать
принудительно сочетанием CtrlSpace).
Внутри класса начать писать Get
..., автодополнение предложит сниппет GetMapping
-
обработчик GET
запроса. Внести изменения:
- В аннотации заменить значение
value="/"
- К аннотации аргумента
@RequestParam
добавить(required = false)
- Возвращать строку
"test"
- Исправить тип возвращаемого значения на
String
- Исправить
return "test"
- Исправить тип возвращаемого значения на
При сохранении приложения оно автоматически перезагружается,
если ранее было запущено (см. Debug Console
в VS Code).
В корневой директории проекта выполнить команды:
npx degit sveltejs/template vs-java-frontend
cd vs-java-frontend
npm install
npm run dev
После запуска (npm run dev
) по адресу http://localhost:5000
будет открываться страница с надписью "Hello World!".
В статье предполагалось создать папку
vs-java-frontend
не внутри папки с проектом. После этого необходимо добавить её в воркспейс, щёлкнув ПКМ в окне Explorer, и выбравAdd Folder To Workspace...
Установить расширение Svelte for VS Code.
Открыть файл App.svelte
При открытии первого .svelte файла VS Code предложил активировать плагин для TS/JS и перезагрузить окно: "TypeScript Svelte Plugin enabled. Note that changes of Svelte files are only noticed by TS/JS files after they are saved to disk. Please reload VS Code to restart the TS Server."
Добавить внутрь элемента <script>
код:
async function loadData() {
let response = await fetch("http://localhost:8080");
name = await response.text();
}
loadData();
Запрос выше не работает из-за CORS, т. к. отличаются порты. Добавление в
fetch
параметра{mode: 'no-cors'}
позволяет выполнить запрос, но не прочитать ответ. Можно на стороне сервера добавить аннотацию@CrossOrigin
(origins={"http://localhost:5000", "http://127.0.0.1:5000"})
над@GetMapping(value="/")
.
В окне Configure Java runtime
(F1>"Java: Configure Java runtime"
или Explorer > Java Projects > ... > Configure Java runtime) отображается
информация о среде Java в каждом проекте, также можно установить новую версию JDK.
В статье показана старая версия окна Configure Java Runtime
Для запуск отладки щёлкнуть ПКМ по файлу DemoApplication.java
и выбрать
Debug Java
.
Также отладку можно запустить:
- аналогичной кнопкой на панели вкладок
- из панели
Spring Boot Dashboard
- щёлкнув ссылку "Debug" в коде
DemoApplication.java
Открыть файл DemoApplicationTests.java
.
Тесты можно запустить следующими способами:
- ПКМ по файлу
DemoApplication.java
, выбратьRun/Debug Java
- В файле слева от кода щёлкнуть зелёную кнопку (ПКМ для дополнительных опций)
- Из панели
Testing
(иконка колбы)
Во время работы тестов вывод производится в
Debug Console
. В статье показано окно Java Test Report, возможно, его нет в текущих версиях VSC?
- Открыть локальную директорию, где будет размещён проект
- Установить расширение
Remote - Containers
- Выполнить F1 >
Remote-Containers: Reopen in Container
- Создать контейнер Java 8 со следующими настройками:
- Debian OS version:
buster
- Node.js version:
lts/*
- Install Maven
- Debian OS version:
- Создать контейнер Java 8 со следующими настройками:
- Установить расширения:
- Extension Pack for Java
- Debugger for Java
- Language Support for Java(TM) by Red Hat
- Maven for Java
- Project Manager for Java
- Test Runner for Java
- Visual Studio IntelloCode
- Spring Boot Extension Pack
- Spring Initializr Java Support
- Spring Boot Tools
- Spring Boot Dashboard
- Svelte for VS Code
- (опционально) AsciiDoc - для просмотра файлов .adoc
- (опционально) TabOut
- Extension Pack for Java
- Запустить команду F1 >
Spring Initializr: Create a Maven Project...
(илиExplorer > Java Projects > + > Spring Boot > Maven
):- Spring Boot
2.5.8
Java
- Group Id:
com.example
- Artifact Id:
demo
Jar
- Java version:
8
- Dependencies:
Spring Boot DevTools
Spring Web
- дополнительные можно добавить позднее, щелкнув ПКМ по pom.xml, и выбрав "Add Starters..."
- Расположение в корневой директории воркспейса (будет создана папка с именем как указано в Artifact Id)
- Spring Boot
- Открыть файл CtrlP >
DemoApplication.java
для активации расширений Java - Запустить проект из панели
Explorer > Spring Boot Dashboard
- Создать новый файл Java, сохранить как
MyController.java
. По умолчанию будет предложена папкаsrc/main/java/com/example/demo
- К сгенерированной VSC заготовке класса
MyController
добавить аннотацию@RestController
. Всплывающая подсказка предложит добавить импорт. - Внутри класса начать писать
Get
..., автодополнение предложит сниппет@GetMapping
- обработчикGET
запроса. - Внести исправления в функцию
@GetMapping
:- В аннотации заменить значение
value="/"
- К аннотации аргумента
@RequestParam
добавить(required = false)
- Возвращать строку
return "test"
, соответственно исправить тип возвращаемого значения наString
- Добавить
@CrossOrigin(origins={"http://localhost:5000", "http://127.0.0.1:5000"})
над@GetMapping
- В аннотации заменить значение
- Открыть http://localhost:8080, удостовериться, что сервер возвращает строку "test"
- В корневой директории проекта выполнить команды:
npx degit sveltejs/template vs-java-frontend
cd vs-java-frontend
npm install
npm run dev
- Открыть http://localhost:5000, убедиться, что сервер возвращает страницу "Hello World!"
- Открыть файл CtrlP >
App.svelte
- Добавить внутрь элемента
<script>
код:
async function loadData() {
let response = await fetch("http://localhost:8080");
name = await response.text();
}
loadData();
- Перезапустить
npm run dev
- Открыть http://localhost:5000, убедиться, что сервер возвращает страницу "Hello test!"
- Для запуска отладки приложения Spring воспользоваться
Explorer > Spring Boot Dashboard
- Для запуска тестов воспользоваться
Explorer > Testing