Spring MVC 와 Spring boot 디렉토리 구조
※개발자마다 설정은 달라질 수 있기 때문에 모든 프로젝트가 아래의 디렉토리 구조를 따르는 것은 아니다.
Spring MVC
=>spring mvc, gradle, mybatis, jsp를 사용
> src/main/java
(자바 파일을 담고 있다.)
-
dao : 단일 데이터 처리
-
service : 여러 dao를 호출하여 여러번의 데이터 처리를 하며 그렇게 읽은 데이터에 대한 비즈니스 로직을 수행하고 하나 혹은 여러개의 트랜잭션으로 묶음
-
domain(=vo,dto) : 필드와 getter,setter
-
web(=controller) : requestmapping을 하고 service.{함수}식으로 호출
-
AppConfig.java(=applicationContext.xml) : 설정정보를 담고있는 클래스. datasource객체생성하고 DB커넥션풀을 관리해주는 객체를 만들고, mybatis가 해당 패키지의 모든 클래스에대해 별명자동생성을위해 패키지지정을해주고 sql매퍼 파일경로를 등록. 트랜잭션관리자만듬 (-> db커넥션의 커밋과 롤백을 다룸)
> src/main/resources
(자바 파일에서 사용하는 리소스 파일을 담고 있다.)
-
conf : jdbc.properties,sec.properties,api.properties
-
mapper : sql문을 작성한 xml파일들이있음
> src/main/webapp
(웹에서 사용하는 리소스 파일을 담고 있다. )
-
WEB-INF : web-inf디렉토리 이하는 보안상의 문제로 웹을 통한 직접적인 접근이 불가능
-
jsp : .jsp파일들을 넣기
-
app-servlet.xml : xml 설정파일에서는 페이지 컨트롤러 객체만 생성되도록 하기. ViewResolver 설정해서 request handler가 리턴한 경로의 앞,뒤에 공통경로를 추가하여 jsp파일찾아 실행
-
web.xml : 프론트 컨트롤러 서블릿 배치
-
-
css : css파일 넣기
-
img : img 넣기
-
js : js파일 넣기
> build.gradle
(gradle 설정파일)
#참고
https://gaebal-goebal.tistory.com/27?category=789654
스프링 동작방식
톰캣 실행( server start 눌렀을 때) 1. web.xml이 로딩된다. 2. web.xml에 등록된 ContextLoaderListener가 생성된다. ContextLoaderListener는 java class로 ServletContextListener 인터페이스를 구현하고 있으..
gaebal-goebal.tistory.com
Spring boot
=> spring boot, gradle, jpa를 사용
>src/main/java
(자바 파일을 담고있다.)
-
web(controller)
-
service
-
repository(dao)
-
model(dto)
-
config : JpaConfig.java
>src/main/resources
(리소스 파일을 담고 있다.)
-
Static
-
JS
-
-
Templates
-
Thymeleaf 파일
-
-
application.yml(=application.properties)
>src/test/java
(테스트에 필요한 Junit 테스트 케이스)
>src/test/resources
(테스트에 필요한 설정파일)