概要
VSCode を使ってコーディングできる環境を構築しアプリをビルドし動作確認する環境まで構築します
環境
- macOS 26.4.1
- openjdk 26.0.1
- gradle 9.5.1
- VSCode 1.121.0
準備
- brew install openjdk
-
sudo ln -sfn /opt/homebrew/opt/openjdk/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk.jdk
- brew install gradle
Spring Initializr を使ってプロジェクトを作成
https://start.spring.io/ でプロジェクトの雛形を作成します
- Project -> Gradle - Groovy
- Language -> Java
- Spring Boot -> 4.0.6
- Dependencies -> Spring Web
- Java -> 26
で Generate すると demo.zip がダウンロードできます
demo.zip を展開し VSCode で開く
展開してできた demo フォルダを VSCode で開きましょう
拡張は以下をインストールします
- Extension Pack for Java
- Spring Boot Extension Pack
サンプルアプリケーション
demo 内にすでに src/main/java/com/example/demo/DemoApplication.java がありますが削除して新しいアプリを作成します
まずはコントローラを作成します
/ にアクセスしたら簡単なメッセージを返却するコントローラを作成します
- vim src/main/java/com/example/demo/HelloController.java
package com.example.demo;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
public class HelloController {
@GetMapping("/")
public String index() {
return "Greetings from Spring Boot!";
}
}
次にコントローラを使用するアプリケーションを追加します
これがいわゆるメインファイルになります
- vim src/main/java/com/example/demo/Application.java
package com.example.demo;
import java.util.Arrays;
import org.springframework.boot.CommandLineRunner;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.ApplicationContext;
import org.springframework.context.annotation.Bean;
@SpringBootApplication
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Bean
public CommandLineRunner commandLineRunner(ApplicationContext ctx) {
return args -> {
System.out.println("Let's inspect the beans provided by Spring Boot:");
String[] beanNames = ctx.getBeanDefinitionNames();
Arrays.sort(beanNames);
for (String beanName : beanNames) {
System.out.println(beanName);
}
};
}
}
アプリ起動
ローカルでアプリを起動します
-
./gradlew bootRun
各種必要な jar のダウンロードなどが始まります
基本的には ~/.gradle/ にダウンロードされます
最終的に EXECUTING になれば起動しています
動作確認
-
curl http://localhost:8080
Greetings from Spring Boot
ユニットテストを追加する
ユニットテストも追加してみます
まずはテスト用のライブラリを追加します
testImplementation の行を追加しましょう
あれば追加不要です
- vim build.gradle
dependencies {
implementation 'org.springframework.boot:spring-boot-starter-webmvc'
testImplementation 'org.springframework.boot:spring-boot-starter-webmvc-test'
testRuntimeOnly 'org.junit.platform:junit-platform-launcher'
}
src/test/java/com/example/demo/DemoApplicationTests.java がありますが削除して OK です
新たに以下を追加します
- src/test/java/com/example/demo/HelloControllerTest.java
package com.example.demo;
import static org.hamcrest.Matchers.equalTo;
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;
import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.boot.webmvc.test.autoconfigure.AutoConfigureMockMvc;
import org.springframework.http.MediaType;
import org.springframework.test.web.servlet.MockMvc;
@SpringBootTest
@AutoConfigureMockMvc
public class HelloControllerTest {
@Autowired
private MockMvc mvc;
@Test
public void getHello() throws Exception {
mvc.perform(get("/").accept(MediaType.APPLICATION_JSON))
.andExpect(status().isOk())
.andExpect(content().string(equalTo("Greetings from Spring Boot!")));
}
}
あとはテストを実行します
- ./gradlew tasks
でタスクを確認し test タスクを実行します
- ./gradlew test
OpenJDK 64-Bit Server VM warning: Sharing is only supported for boot loader classes because bootstrap classpath has been appended
BUILD SUCCESSFUL in 4s
4 actionable tasks: 2 executed, 2 up-to-date
Consider enabling configuration cache to speed up this build: https://docs.gradle.org/9.4.1/userguide/configuration_cache_enabling.html
最後に
macOS + VSCode で Spring Boot を試してみました
まだ簡単なアプリを起動しただけなので次回はデータベースと連携してみたいと思います
後片付け
-
rm -rf ~/.gradle/
- VSCode 拡張の削除
- demo フォルダの削除
- brew uninstall openjdk
- brew uninstall gradle
0 件のコメント:
コメントを投稿