Spring Boot: Web アプリ構築
アノテーションベースで素早く REST API を構築。
Spring Boot
Web アプリ構築フレームワーク。
Controller
HTTPリクエストを処理。
DI
依存性注入。@Autowired。
Spring Boot
// Spring Boot - Web アプリケーションを素早く構築
// プロジェクト生成: https://start.spring.io/
// pom.xml (Maven) の依存関係// <dependency>// <groupId>org.springframework.boot</groupId>// <artifactId>spring-boot-starter-web</artifactId>// </dependency>
// メインクラス@SpringBootApplicationpublic class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); }}
// REST コントローラー@RestController@RequestMapping("/api")public class UserController { @GetMapping("/users") public List<User> getUsers() { return userService.findAll(); }
@PostMapping("/users") public User createUser(@RequestBody User user) { return userService.save(user); }}実行結果
$ ./mvnw spring-boot:run
Started Application in 2.5 seconds
$ curl localhost:8080/api/users
[{"id":1,"name":"Alice"}] Bad
// ❌ Bad: サーブレットを手動で設定public class MyServlet extends HttpServlet { protected void doGet(HttpServletRequest req, HttpServletResponse resp) { // 膨大なボイラープレート }}Good
// ✅ Good: Spring Boot のアノテーション@GetMapping("/hello")public String hello() { return "Hello World";}パターン
// サービス層@Servicepublic class UserService { @Autowired private UserRepository repository;
public List<User> findAll() { return repository.findAll(); }}
// リポジトリ層 (JPA)@Repositorypublic interface UserRepository extends JpaRepository<User, Long> { List<User> findByName(String name);}
// エンティティ@Entitypublic class User { @Id @GeneratedValue private Long id; private String name; private String email;}
// application.properties// server.port=8080// spring.datasource.url=jdbc:h2:mem:testdb// spring.jpa.hibernate.ddl-auto=update
// 起動// $ ./mvnw spring-boot:run// $ curl http://localhost:8080/api/users Tip: start.spring.io でプロジェクトを生成。
合格ライン
REST API を作れる
Controller/Service/Repository を使い分けられる
参考リンク
演習課題
課題1: REST API
@RestController で CRUD API を作成してください。
課題2: Spring Initializr
start.spring.io でプロジェクトを生成してください。