프로젝트뷰에서 src - main - java - com.***.blog
패키지에 새로운 패키지를 추가합니다. test라는 이름의 패키지를 추가합니다.
주의할 점
패키지를 만들 때, java 디렉터리 바로 아래에
com.***.test
로 만드는 것이 아니라com.***.blog
패키지 아래에 또 다른test
라는 패키지를 만들어야 한다.
서버가 실행될 때 Spring이 컴포넌트 스캔을 하는데, 패키지를 스캔하여 실행에 필요한 것들을 미리 메모리에 올린다.(IoC) 이 때에, 싱글톤 패턴에서는 스캔하는 패키지가 실행 파일이 존재하는 패키지 하나만 스캔한다.
서버의 실행 파일은blog
패키지에 있기 때문에test
패키지 안의 파일을 읽고 IoC를 하기 위해서는blog
패키지 안에test
패키지가 있어야 한다.
방금 만든 test 패키지에 Controller를 만들 것입니다.
test package 우클릭 - New - Java Class
를 클릭하고 이름은 Blog ControllerTest
라고 만들었는데, 이름은 별로 상관 없습니다.
컨트롤러 파일을 만들어 열면 위와 같이 나올 것입니다. 클래스 위에 @RestController
어노테이션을 추가 Spring이 시작 될 때 해당 클래스를 스캔할 수 있도록 해줍니다.
스프링이 시작될 때 blog 패키지 이하를 스캔해서 모든 파일을 메모리에 띄우는 것은 아니고, 특정 어노테이션이 붙어있는 클래스 파일들을 new해서(IoC) 스프링 컨테이서에서 관리해줍니다.
@RestController
는 그 중 하나입니다.
그 후에 클래스가 아래와 같이 되도록 입력합니다.
@RestController
public class BlogControllerTest {
@GetMapping("/test/hello")
public String hello() {
return "<h1>hello spring boot</h1>";
}
}
hello() 메소드 위에 있는 @GetMapping
어노테이션은 서버 실행 후 /test/hello
URI로 요청이 발생되면 hello() 메소드가 실행되도록 하는 어노테이션입니다.
BlogApplication
파일로 이동 후 CTRL + SHIFR + R
을 눌러 스프링을 실행시켜 줍니다.
스프링을 실행시키면 하단 콘솔에 위 사진과 같이 로그가 뜨면서 실행이 잘 된것을 알 수 있습니다.
로그를 보면 8080 포트를 통해 톰캣이 실행이 되었고, BlogApplication 파일이 실행되는데 1.16초가 소요되었다는 것을 알 수 있습니다.
이제 브라우저를 통해 스프링이 잘 작동중임을 알 수도 있습니다. 브라우저는 열어 주소창에 http://localhost:8080/test/hello
라고 입력합니다.
해당 주소로 이동하면 위와 같은 내용이 나옵니다. 이 내용은 BlogControllerTest 클래스 내부에 있는 hello() 메소드를 통해 가져온 내용입니다.
이와 같이 스프링부트 프로젝트가 잘 실행되는지 확인할 수 있습니다.