5.2. 책 컨트롤러 클래스 생성

컨트롤러 클래스를 만듭니다. 컨트롤러 클래스는 클라이언트(client)의 요청(request)을 받아서 내부 처리 후 응답(response)을 만들어내는 클래스입니다.
간단하게 말하면 클라이언트(웹브라우저)에서 특정 주소를 입력했을 때 실행되는 메소드가 있는 클래스입니다.

src/main/java > com.yse.dev 패키지를 우클릭 => new => package를 차례로 누릅니다.

name 란에 com.yse.dev 이 입력되어 있습니다. 뒤에 .book을 붙여서 com.yse.dev.book 형태로 입력 후 Finish 버튼을 클릭합니다.

src/main/java > com.yse.dev.book 패키지를 우클릭 => new => class 를 차례로 누릅니다.

name 란에 BookController라고 입력하고 Finish 버튼을 클릭합니다.

STS에서 자동으로 방금 만든 BookController.java 파일을 열어줍니다.
src/main/java > com.yse.dev.book > BookController.java

package com.yse.dev.book;  

public class BookController {  

}  

 


컨트롤러 어노테이션(Annotation)을 설정합니다. @Controller 코드를 클래스 정의 위에 붙여주세요.

@Controller  
public class BookController {  

@Controller 어노테이션이 있는 클래스는 스프링 부트가 브라우저의 요청(request)을 받아들이는 컨트롤러라고 인지해서 자바 빈(java bean)으로 등록해서 관리하게 됩니다. 즉 프레임워크에서 관리하는 클래스가 됩니다.



@Controller 어노테이션 아래에 빨간 줄이 가 있으면 오류가 있다는 뜻입니다.
문제가 있다는 표시로 빨간 밑줄도 보이고, 왼쪽에 X 표시도 보입니다. 파일 탭에도 X 표시가 보이네요.

마우스로 빨간 밑줄 위에 커서를 올려보면 설명이 보입니다.

Controller cannot be resolved to a type 메시지는 선언되지 않은 네임스페이스의 타입이라서 어떤 기능인지 모르겠다는 의미입니다. 따라서 해당 네임스페이스를 import 해 주어야 합니다.


import를 가장 편하게 하는 방법은 ctrl + shift + o 단축키를 누르는 겁니다. 이클립스에서 ctrl + shift + o 단축키를 누르면 선언되지 않은 네임스페이스를 자동으로 import해 줍니다. 사용하지 않는 네임스페이스를 자동으로 지워주는 기능도 있으니 특별한 이유가 없다면 ctrl + shift + o 를 사용하시는 걸 추천드려요.