JavaのSpring BootでWebアプリを作る
Spring BootはJavaのWebアプリケーション開発を大幅に簡略化するフレームワークです。 設定ファイルを最小限にした「コンベンション・オーバー・コンフィギュレーション」の思想で、 すぐに動くアプリを作れます。
プロジェクト作成
Spring Initializrを使うと依存関係を選ぶだけでプロジェクト雛形を生成できます。
# 必要な依存関係
- Spring Web
- Spring Data JPA
- H2 Database(開発用)
- Lombok
コントローラーの作成
@RestController
@RequestMapping("/api/users")
public class UserController {
@Autowired
private UserService userService;
@GetMapping
public List<User> getAll() {
return userService.findAll();
}
@PostMapping
public ResponseEntity<User> create(@RequestBody @Valid User user) {
return ResponseEntity.status(201).body(userService.save(user));
}
}
エンティティとリポジトリ
@Entity
@Data
public class User {
@Id @GeneratedValue(strategy = GenerationType.IDENTITY)
private Long id;
@NotBlank
private String name;
@Email
private String email;
}
public interface UserRepository extends JpaRepository<User, Long> {
Optional<User> findByEmail(String email);
}
application.properties
spring.datasource.url=jdbc:mysql://localhost:3306/myapp
spring.datasource.username=root
spring.datasource.password=secret
spring.jpa.hibernate.ddl-auto=update
まとめ
Spring Bootはエンタープライズ開発での実績が豊富で、大規模チームにも適しています。 GraalVMネイティブイメージによる起動時間の短縮など、近年のクラウド対応も進んでいます。