1. 스프링 MVC 프로젝트 기본 구조
1. src/main/java
자바(.java) 파일이 모여있는 곳입니다. 패키지로 잘 분리해서 자바 클래스를 생성해 사용하면 됩니다. 스프링에서 이미 MVC 패턴의 서블릿 구조를 잡아주기 때문에 따로 서블릿을 만들 필요 없이 스프링 구조에 맞춰 클래스 파일들을 작성해주면 됩니다.
2. src/main/resources
자바 클래스에서 사용하는 리소스를 보관하는 곳입니다. DB 연결을 위한 자원, 의존성 주입(DI)을 위한 xml 파일 등 자바 코드 외 모든 자원은 이곳에 넣어주면 됩니다.
3. src
Web에 관련된 자원이 담겨있는 루트 폴더입니다. 하위 폴더에 웹과 관련된 모든 자원들이 분류되어 있습니다. main 폴더 안에 모두 들어가고, test 폴더는 말 그대로 테스트를 위한 공간입니다.
5-1. src/main/webapp/resources
웹에 필요한 다양한 자원들을 보관하는 곳이자, 사용자가 직접 접근할 수 있는 공간입니다. js, css, img 파일 등이 보관되어 있으며, 보통 컨트롤러가 요청을 가로채지 않고 바로 접근할 수 있도록 따로 설정해서 사용하는 곳입니다.
3-2. src/main/webapp/WEB-INF
웹에 필요한 코드 파일과 컴파일된 파일, 그리고 여러 환경설정 파일들이 보관되는 곳입니다. 보안이 중요한 파일들이기 때문에 외부 사용자가 직접 접근할 수 없으며 컨트롤러(정확히는 핸들러)를 통해 내부적으로만 접근할 수 있는 폴더입니다.
3-2-1. src/main/webapp/WEB-INF/classes
컴파일 된 파일이 보관되는 곳입니다.
3-2-2. src/main/webapp/WEB-INF/spring
스프링 환경설정 파일(context)이 보관되는 곳입니다.
3-2-3. src/main/webapp/WEB-INF/views
JSP, HTML 파일이 보관되는 곳입니다. 이 폴더가 루트(/)의 기준점입니다. 사용자가 입력하고, 컨트롤러가 받아주는 URL이 이 폴더의 구조를 따라가기 때문에 잘 정리해서 사용할 필요가 있는 곳입니다
2. 스프링 MVC 프로젝트 기본 구조
Request -> DispatcherServlet (web.xml)-> HandlerMapping (servlet-context.xml) -> Controller [Controller -> Service -> DAO -> DB -> DAO -> Service -> Controller] -> DispatcherServlet -> ViewResolver -> View -> Response
정리
- DAO(Data Access Object) : 매퍼 XML 실행
- Service : 서비스 클랙스는 비즈니스 클래스가 위치. 컨트롤러와 DAO를 연결하는 역활
'IT개발정보 > spring and java' 카테고리의 다른 글
JAVA 명명 규칙 (0) | 2023.02.10 |
---|---|
[Spring] 톰캣 재시작 없이 Java 파일 변경 적용 - Spring Loaded (0) | 2023.02.10 |
[error] public key retrieval is not allowed (0) | 2023.02.09 |
[error] org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.exceptions.PersistenceException: (0) | 2023.02.08 |
Spring Framework 버젼 확인 (0) | 2023.02.08 |