프로그래밍 이야기/SPRING 공부

스프링MVC 프로젝트 구조

글쓰는 개발자 김뉴네 2023. 9. 4. 22:57
728x90
반응형

- 일반적으로 생성한 스프링 MVC 프로젝트는 크게 자바 파일을 관리하는 서블릿 관련 폴더와 웹 파일을 관리하는 웹 관련 폴더로 구분한다.

스프링MVC 폴더 구조

- 서블릿과 관련된 클래스 파일이 생성되면  src/main/java 폴더에 등록하여 관리하는데 보통 자바 클래스 파일들은 src/main/java 폴더에 패키지로 생성하여 등록하며 개발자가 만든 예외 클래스나 기타 유틸 클래스 파일 등도 src 폴더에 저장한다.

 

- 웹과 관련된 JSP, 리소스, 스프링 MVC 환경 설정 파일 웹 프로젝트 환경 설정 파일 등이 생성되면 src/main/webapp 폴더에 등록하여 관리한다.

 

- resources 폴더 : 이미지,js,css 등 정적 리소스 파일

- spring 폴더는 빈 객체들을 등록하는 서블릿 설정 파일인 스프링 MVC 설정 파일을 관리함

- 스프링 시큐리티 설정 파일 같은 스프링 관련 설정 파일들이 스프링 폴더에 저장됨

- view 폴더는 웹페이지인 JSP 파일 관리

- web.xml 파일은 웹 프로젝트의 설정 파일로 여기에 리스너 서블릿 필터등을 설정할 수 있으며 이 파일은 반드시 src/main/webapp/WEB-INF 폴더에 위치해야한다.

 

- pom.xml 은 메이븐 관련 환경설정 파일로 필요한 라이브러리를 추가하여 사용할 수 있게 해준다.

 


 

- 프로젝트 실행과정

> web.xml 파일은 웹 브라우저의 웹 요청 URL을 전달받는다. web.xml 파일에 설정된 디스패치 서블릿이 크라이 언트의 웹 요청 URL을 제어한다.

 > servlet-context.xml 파일에서 웹 요청 URL을 처리하는 컨트롤러에 해당하는 클래스를 검색한다.

 > HomeController 컨트롤러는 클라이언트의 웹 요청 URL을 처리하고 결과를 출력할 뷰 이름을 디스패처 서브릿에 반환한다.

 > 컨트롤러에서 보내온 뷰 이름을 토대로 처리할 뷰를 검색한다.

> 처리 결과가 포함된 뷰를 디스패처 서블릿에 반환하고 최종결과를 출력한다.

 

 

 


- web.xml 파일은 웹 프로젝트의 배포 설명자/배치 기술서 이며 웹 프로젝트가 배포되는 데 이용되는 XML 형식의 자바 웹 애플리케이션 환경 설정 부분을 담당한다.

- 스프링 웹 프로젝트가 실행되면 가장 먼저 web.xml 파일을 읽어 들이고 위부터 차례 대로 태그를 해석한다.

- web.xml 파일의 환경 설정은 <web-app>으로 시작하고 </web-app>으로 끝나는 곳에 설정한다.


- xml 문서를 작성할 때 요소가 중복되는 것을 피하려면 web.xml 파일 맨위에 네임 스페이스와 스키마를 정의해야하는데 네임스페이스는 코드에서 이름은 같지만 내용이 전혀 다른 요소와 충돌하지 않도록 구별하는데 사용하며 스키마는 코드의 구조와 요소, 속성의 관계를 정의하여 다양한 자료형을 사용할 수 있도록 정의된 문서 구조, 즉 틀을 의미한다.

 

- 기본 네임 스페이스 선언 : xmlns 속성은 기본 XML 스키마 네임 스페이스를 명시한다. 속성값은 모든 스키마를 가지고 있다.

- 인스턴스 네임 스페이스 URI 선언 : xmlns :xsi - 속성은 인스턴스 네임 스페이스 URI를 지정한다. 속성 값은 대부분 xml 스키마로 사용되는 표준인 W3C XML 스키마를 나타냄

-  참조하는 인스턴스의 문서 URL 선언 : xsi:schemaLocation 속성은 참조하고자 하는 인스턴스 문서의 URL을 지정함 두개의 속성값은 공백으로 구분하며 첫번째는 사용할 네임 스페이스, 두번째는 참조할 스키마 파일 이름이다.

 

 

 

 

 

728x90
반응형