SJ blog
Eclipse
Z

信頼度ランク

S 公式ソース確認済み
A 成功実績多数・失敗例少数
B 賛否両論
C 動作未確認・セキュリティリスク高
Z 個人所感

EclipseでSpring Bootプロジェクトを作成・実行する

Spring Tool Suite(STS)プラグインを使ってEclipseでSpring Bootプロジェクトを作成し、REST APIを実装して実行するまでを解説します。

一言結論

EclipseにSpring Tools 4を導入すれば「Spring Starter Project」ウィザードから依存関係を選ぶだけでSpring Bootプロジェクトが即座に生成でき、IDE上でホットリロードも利用できる。

Spring Tool Suite(STS)プラグインの導入

Help > Eclipse Marketplace で「Spring Tools」を検索し、Spring Tools 4 をインストールします。

または Spring Tools から Eclipse をベースにした STS をダウンロードすることもできます。

Spring Bootプロジェクトの作成

  1. File > New > Spring Starter Project
  2. プロジェクト設定:
    • Name: myapp
    • Type: Maven
    • Java Version: 17
    • Group: com.example
    • Artifact: myapp
  3. 依存関係を選択:
    • Spring Web
    • Spring Data JPA(データベースを使う場合)
    • H2 Database(開発用インメモリDB)
    • Lombok(ボイラープレート削減)
  4. Finish

プロジェクト構造

myapp/
├── src/main/java/com/example/myapp/
│   ├── MyappApplication.java      ← エントリーポイント
│   ├── controller/
│   │   └── UserController.java
│   ├── service/
│   │   └── UserService.java
│   └── repository/
│       └── UserRepository.java
├── src/main/resources/
│   └── application.properties
└── pom.xml

シンプルなREST APIを作る

エントリーポイント

@SpringBootApplication
public class MyappApplication {
    public static void main(String[] args) {
        SpringApplication.run(MyappApplication.class, args);
    }
}

エンティティ

@Entity
@Table(name = "users")
@Data  // Lombok: getter/setter/toString/equals/hashCode
@NoArgsConstructor
@AllArgsConstructor
public class User {
    @Id
    @GeneratedValue(strategy = GenerationType.IDENTITY)
    private Long id;
    
    @Column(nullable = false)
    private String name;
    
    private String email;
}

リポジトリ

@Repository
public interface UserRepository extends JpaRepository<User, Long> {
    List<User> findByName(String name);
    Optional<User> findByEmail(String email);
}

サービス

@Service
@RequiredArgsConstructor
public class UserService {
    private final UserRepository userRepository;
    
    public List<User> findAll() {
        return userRepository.findAll();
    }
    
    public Optional<User> findById(Long id) {
        return userRepository.findById(id);
    }
    
    public User create(User user) {
        return userRepository.save(user);
    }
    
    public void delete(Long id) {
        userRepository.deleteById(id);
    }
}

コントローラー

@RestController
@RequestMapping("/api/users")
@RequiredArgsConstructor
public class UserController {
    private final UserService userService;
    
    @GetMapping
    public List<User> getAll() {
        return userService.findAll();
    }
    
    @GetMapping("/{id}")
    public ResponseEntity<User> getById(@PathVariable Long id) {
        return userService.findById(id)
            .map(ResponseEntity::ok)
            .orElse(ResponseEntity.notFound().build());
    }
    
    @PostMapping
    @ResponseStatus(HttpStatus.CREATED)
    public User create(@RequestBody @Valid User user) {
        return userService.create(user);
    }
    
    @DeleteMapping("/{id}")
    @ResponseStatus(HttpStatus.NO_CONTENT)
    public void delete(@PathVariable Long id) {
        userService.delete(id);
    }
}

application.properties

# H2 コンソール有効化(開発時)
spring.h2.console.enabled=true
spring.datasource.url=jdbc:h2:mem:testdb

# JPA 設定
spring.jpa.hibernate.ddl-auto=create-drop
spring.jpa.show-sql=true

# サーバーポート
server.port=8080

Eclipse から実行する

  1. MyappApplication.java を右クリック
  2. Run As > Spring Boot App

コンソールに Started MyappApplication が表示されれば起動成功です。

動作確認

# 全件取得
curl http://localhost:8080/api/users

# 作成
curl -X POST http://localhost:8080/api/users \
  -H "Content-Type: application/json" \
  -d '{"name":"Alice","email":"alice@example.com"}'

# H2コンソール(ブラウザ)
# http://localhost:8080/h2-console
# JDBC URL: jdbc:h2:mem:testdb

Spring Boot Dashboard(STS追加機能)

STS プラグインを入れると Spring Boot Dashboard ビューが使えます。

Window > Show View > Spring Boot Dashboard

起動しているサービスの一覧、停止・再起動ボタンが使えます。

まとめ

Eclipse + STS プラグインで Spring Boot の開発が快適になります。Spring Starter Project ウィザードで依存関係を選ぶだけで即座に動くプロジェクトが作れます。Lombok を使うことで getter/setter の定型コードも大幅に削減できます。