-
[Spring] 게시판 intelliJ+SpringMVC+Maven+Tomcat+JPA+H2 DB 환경으로 만들어 보자 ↗Backend/Spring 2020. 3. 4. 16:27
개발 환경
intelliJ IDEA (Ultimate)
SpringMVC 5.2.3.RELEASE
Maven
Tomcat 9
JPA 5.4.12.Final
H2 database 1.4.200
게시판을 구현한 2-Layered 아키텍처
2-Layered 아키텍처 - 톰캣 서버를 구동하면
- web.xml 파일을 로딩하여 Servlet Container 구동
- Servlet Container는 web.xml 파일에 등록된 ContextLoaderListener 객체를 생성(Pre Loading)한다.
- ContextLoaderListener 객체는 applicationContext.xml 파일을 로딩하여 Spring Container(ROOT)를 구동한다. 이때 ServiceImpl 클래스나 DAO 객체들이 메모리에 생성된다.
- 사용자가 ".do" 요청을 서버에 전달하면 Servlet Container는 DispatcherServlet 객체를 생성한다.
- DispatcherServlet 객체는 dispatcher-servlet.xml 파일을 로딩하여 두 번째 Spring Container(자식 컨테이너)를 구동한다.
- 두 번째 Spring Container가 Controller 객체를 메모리에 생성한다.
- Spring Container(ROOT)가 생성한 비즈니스 객체를 Controller에서 참조하여 사용할 수 있다.
파일별 개발 순서
- Maven으로 intelliJ Project 생성
- Spring MVC & JPA configuration 추가
- H2 DB 서버 구동
./h2.sh -webAllowOthers
- pom.xml
- src/main/java/com/springbook/biz/board/BoardVO.java
- src/main/java/com/springbook/biz/board/impl/BoardDAOJPA.java
- src/main/java/com/springbook/biz/board/BoardService.java (BoardDAOJPA.java로부터 생성 "Refactor->Extract->Interface")
- src/main/java/com/springbook/biz/board/impl/BoardServiceImpl.java
- src/main/java/com/springbook/biz/user/UserVO.java - JPA로 수정 전
- src/main/java/com/springbook/biz/user/impl/UserDAO.java - JPA로 수정 전
- src/main/java/com/springbook/biz/user/UserService.java (UserDAO.java 로부터 생성) - JPA로 수정 전
- src/main/java/com/springbook/biz/user/impl/UserServiceImpl.java - JPA로 수정 전
- src/main/resources/applicationContext.xml
- 설정
Build > Build Artifacts > war exploded > Edit > Output directory > [view(jsp) 파일들의 루트 폴더]로 설정
- web/WEB-INF/dispatcher-servlet.xml
- web/WEB-INF/web.xml
- 다국어 처리 파일들 -> dispatcher-servlet.xml에 설정
- src/main/resources/message/messageSource_en.properties
- src/main/resources/message/messageSource_ko_KR.properties
- View 파일들
- index.jsp (Main Page)
- login.jsp
- getBoardList.jsp
- getBoard.jsp
- insertBoard.jsp
- Controller들
- src/main/java/com/springbook/view/board/BoardController.java
- src/main/java/com/springbook/view/user/LoginController.java
- src/main/java/com/springbook/view/user/LogoutController.java
- 예외처리 화면 핸들러
- src/main/java/com/springbook/view/common/CommonExceptionHandler.java
- 어드바이스 (AOP 구현)
추가 구현 후 업데이트 예정
전체 프로젝트 파일
Github> https://github.com/dokylee54/java-spring-boardEx/tree/master/day3
dokylee54/java-spring-boardEx
Contribute to dokylee54/java-spring-boardEx development by creating an account on GitHub.
github.com
- 스프링 퀵 스타트
- 국내도서
- 저자 : 채규태
- 출판 : 루비페이퍼 2016.06.30
'Backend > Spring' 카테고리의 다른 글