src/main/java 폴더에 이미 생성된 project가 하나 있을 것이다. 이곳에 project를 진행할 건데, 먼저 test를 해보자.
test라는 패키지를 만들고 그 안에서 테스트를 해볼 건데 마음대로 패키지나 클래스를 만들면 안 된다. 그 이유는 스프링의 IoC(제어의 역전) 때문이다. IoC에 따라 스프링이 클래스를 관리하기 때문에 프로젝트를 실행할 때 스캔을 통해 특정 어노테이션이 붙은 것들을 메모리에 로드한다. 이때 패키지 하위의 클래스나 패키지를 마음대로 설정하면 스캔이 제대로 되지 않아 메모리에 로드되지 않기 때문에 주의해야 한다.
우선, project.test 패키지를 만든다.
그리고 그 하위에 BlogControllerTest라는 클래스를 생성한다.
그리고 아래와 같이 작성한다.
Spring에서 컨트롤러를 지정해주기 위한 어노테이션은 @Controller와 @RestController가 있다. 전통적인 Spring MVC의 컨트롤러인 @Controller와 Restful 웹서비스의 컨트롤러인 @RestController의 주요한 차이점은 HTTP Response Body가 생성되는 방식이다. 쉽게 설명하면 @Controller는 html 파일을 반환하고 @RestController는 Data를 반환한다.
@GetMapping은 HTTP GET 요청을 특정 핸들러 메소드에 맵핑하기 위한 어노테이션이다.
프로젝트를 실행하면... 오류가 난다!
"Failed to determine a suitable driver class"나 "Access to DialectResolutionInfo cannot be null when 'hibernate.dialect' not set"라는 오류가 나는데, 이 에러는 스프링에서 database와 jpa를 사용한다고 설정해두고 정작 datasource는 설정을 안 해서이다. 아직은 사용하지 않기 때문에 pom.xml에 가서 주석 처리해주자.
실행하면 정상적으로 동작한다. 이제 url에 "http://localhost:8080/test/hello"를 치면 화면에 떠야 하는데 구름 ide를 사용하고 있으므로 실행 URL을 찾아 실행하자. '프로젝트 속성 -> 실행 URL과 포트'에 들어가면 실행 URL을 볼 수 있다.
나의 경우, https://springboot-rxayx.run.goorm.io/test/hello로 들어가면 return의 데이터 값이 정상적으로 반환된 것을 볼 수 있다.
'👨💻 개발 > spring boot' 카테고리의 다른 글
[나만의 Blog 만들기] #4. 구름 ide에서 MySQL 스프링 연결(Maven) (0) | 2021.10.27 |
---|---|
[나만의 Blog 만들기] #2. 의존성 설정(pom.xml) (0) | 2021.10.23 |
[나만의 Blog 만들기] #1. 구름 ide로 spring boot 개발환경 설정하기 (0) | 2021.10.23 |
[개념 및 기초] #3. 스프링 부트 동작원리 (0) | 2021.10.13 |
[개념 및 기초] #2. JPA란? (0) | 2021.10.13 |