HeroVO 객체 생성

domain 패키지를 추가하고 HeroVO 객체를 생성한다.

@JsonInclude(JsonInclude.Include.NON_NULL) 의 의미는 json을 만들때 property가 null이면 만들지 말라는 의미이다.

 

Mapper 생성

persistence 패키지를 생성하고 HeroMapper 인터페이스를 생성한다.

xml 구문없이 자바에서  MyBatis 구문을 사용하기 위해서는 <script> 태그를 사용하면 된다. @Mapper 어노테이션을 사용하게 되면 스프링이 구동시 해당 인터페이스가 인스턴스로 스프링에 등록되게 된다. 문법적으로 인터페이스가 인스턴스를 생성하는게 맞지 않지만 내부적으로 익명클래스 인스턴스로 생성이 된다고 이해하면되겠다.

 

HeroController 생성

이제 컨트롤러를 생성한다.  좀전에 생성한 Mapper 인스턴스를 @Autowired를 이용하여 주입한다(Dependancy Injection)

hero 테이블을 생성할것이므로 post 매핑을 사용하였고, RestController 바로 아래에 /api가 매핑되어있으므로 전체 매핑 유알엘은 /api/hero 이다. 요청은 Json으로 받고 결과는 ResultVO 타입의 json을 리턴한다. 다시 요약하자면, REST API 규격은 유알엘이 /api/hero 이고 메서드는 post 이며 json으로 데이터를 받아서 json을 리턴한다.

프로젝트 구조는 아래와 같다.

postman 테스트