이번 편의 목표: 프로젝트 폴더에서 직접 고칠 파일과, 시작 클래스의 애너테이션이 맡는 일을 구분합니다.
압축을 풀면 파일이 많습니다. 이 연재에서 계속 보는 위치는 세 곳입니다.
src/main/java 아래에는 자바 소스가 있습니다. src/main/resources/application.properties는 설정입니다. src/test/java는 뒤의 테스트입니다. mvnw와 pom.xml은 빌드 도구가 사용합니다. 생성 직후에는 시작 클래스만 있어도 서버가 뜹니다.
시작 클래스
파일 이름은 LibraryApplication.java이고, 패키지는 com.thinktree.library입니다.
package com.thinktree.library;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class LibraryApplication {
public static void main(String[] args) {
SpringApplication.run(LibraryApplication.class, args);
}
}main은 자바 프로그램의 시작점입니다. SpringApplication.run이 스프링 컨테이너를 만들고 웹 서버를 띄웁니다. @SpringBootApplication은 세 가지를 묶은 표시입니다. 이 클래스가 설정 클래스라는 것, 클래스패스에 있는 스타터를 보고 자동 설정을 적용한다는 것, 그리고 이 패키지와 그 아래 패키지를 스캔한다는 것입니다.
Spring Web 의존성이 있으면 자동 설정이 내장 톰캣과 HTTP 요청을 메서드로 연결하는 기능을 준비합니다. 톰캣의 server.xml을 직접 만들지 않습니다. 나중에 주소와 메서드를 연결하는 클래스를 com.thinktree.library 아래에 두면 스캔 대상이 됩니다. 패키지를 시작 클래스보다 밖으로 빼면 스프링이 그 클래스를 찾지 못합니다.
직접 해 보기
LibraryApplication.java의 패키지 선언과 폴더 경로가 같은지 확인하세요. 폴더는 src/main/java/com/thinktree/library 입니다.
해설
패키지 com.thinktree.library는 폴더 com/thinktree/library와 대응합니다. 클래스 이름 LibraryApplication과 파일 이름도 같아야 합니다. 자바 기초에서 본 public 클래스와 파일 이름 규칙이 여기서도 그대로입니다.
COMMENTS
댓글 0
이 글에 대한 의견이나 질문을 남겨 주세요.
댓글은 구글이나 카카오로 시작한 뒤에 남길 수 있습니다.
등록된 댓글이 없습니다.