### 작업한 소스 깃 : https://github.com/miniplugin/kimilguk-springboot2
### 작업결과 배포 클라우드헤로쿠 : https://kimilguk-springboot2.herokuapp.com/
지난 작업에 이어서, 스프링시큐리티기반 네이버 로그인과 권한체크 후 글 등록과 h2메모리DB사용을 해 보았습니다.
### 스프링부트 에서 MVC
- 참고 스프링레거시 에서 MVC는 아래와 같습니다. 비교해 보시기 바랍니다.
- 스프링레거시 예: DB테이블 -> 모델(매퍼쿼리>@Repository인터페이스=DAO클래스) -> 서비스(@Service) -> 컨트롤러클래스 -> 뷰(JSP|타일즈템플릿)
- 모델domain(구성:@Entity클래스 와 JpaRepository인터페이스) -> 서비스(@Service) -> 컨트롤러(구성:@Controller+DTO클래스) -> 뷰(며스태치템플릿)
- @Entity클래스 : 데이터베이스 테이블을 자동생성 및 구현메서드(@Builder인터페이스사용) 추가.
- JpaRepository인터페이스 : 형식: JpaRepository<Entity 클래스, PK 타입> 기능: CRUD기본 쿼리 자동생성.
- 서비스(@Service) : 인터페이스 없이 사용.(주, 레포지토리는 인젝션으로 사용하지 않음.
- 서비스 예, private final PostsRepository postsRepository;
- DTO(Data Transfer Object)클래스 : 스프링레거시의 VO와 같이 데이터 전송 임시 저장소로 Get/Set 역할을함.
- Mustache(며스태치)템플릿 : 템플릿 코드(예, {{userName}})로 자바 변수와 객체를 사용함.(JSTL과 타일즈 대신사용)
### 스프링 레거시와 스프링부트의 폴더 구조차이
- 스프링레거시 폴더구조: [pom.xml], [WEB-INF>web.xml],[WEB-INF>spring>root-context.xml,WEB-INF>appServlet>servlet-context.xml]
- 스프링레거시 폴더구조: roo최상위 > [controller, dao(src/main/reousrces/mappers쿼리), service, vo 등]
- 스프링부트 폴더구조: roo최상위 > [build.gradle], [Application.java] > [config], [domain, service, web>dto 등]
- 글등록 결과(아래)
- h2 임베디드 데이터베이스 사용
- 앞으로 게시물 CRUD 분석할 예정 입니다.
스프링 부트로 시작하는 웹 서비스_4 (0) | 2021.08.13 |
---|---|
스프링 부트로 시작하는 웹 서비스_3 (0) | 2021.08.11 |
스프링 부트로 시작하는 웹 서비스_1시작 (0) | 2021.07.30 |
스프링4.0 이전 부터 사용한 RestAPI처리 방식인 JsonView설명 (0) | 2021.07.06 |
URL인코딩을 첨부파일 다운로드에 적용시 (0) | 2021.06.24 |
댓글 영역