-
[RestApi] 서버개발하기 (Spring Legacy + myBatis + postgreSQL)IT/개발 기록 2018. 10. 29. 18:17
RestApi 서버개발하기
환경구성
1. Spring Legacy Project + myBatis + postgreSQL + tomcat
※참고
2018/10/14 - [IT/Java-Spring] - JDK 8 다운로드 및 설치 방법
2018/10/14 - [IT/Java-Spring] - [Spring] STS 다운로드/설치 및 기본설정
2018/10/14 - [IT/Java-Spring] - Tomcat 다운로드 및 설치
2018/10/18 - [IT/DB] - [PostgreSQL] Windows에서 다운로드 및 설치 (+pgAdmin)
2018/10/25 - [IT/Dev Tool] - [Postman] API Test Tool 다운로드/설치 및 간단한 사용 방법
풀소스 : https://github.com/devJJo/RestApi
목표
1. Get/Post/Delete방식을 사용하여 DB에서 데이터를 가지고오고 수정/삭제 해본다.
2. MVC구조를 확인한다(해당 프로젝트에서는 api서버만을 만들지만 mvc구조를 따라감)
방식
1. Github에 올려 둔 sources를 가지고 이해가 안되었던 부분 위주로 설명
설명
1. 전체적인 구조
java단에는 constants/controller/dao/service/model로 폴더구조를 나누고
resources단에는 config/mapper/properties 설정파일들을 나누어두었다
constansts : uri를 static으로 선언해둠
model/controller/service/dao : mvc패턴
properties : DB설정정보를 가지고 있음
config : 참조하는 mapper파일 설정정보
mapper : 실제 쿼리를 가지고 있는 xml
root-context : spring설정에서 가장 중요하다고 생각되는 설정파일(db연결/설정정보참조/bean설정등..)
2. 전체적인 흐름(헷갈렸던 부분)
root-contex.xml
root-context파일에서 아래 빨간줄 표시한 부분처럼
component-scan을 해주어야 해당 패키지에서
어노테이션을 인식하고 빈을 주입할 수 있다.
(여러 블로그 글들을 봤었는데 예전 방식으로는 빈을 주입하지 않고 직접 상속받아 처리하게되면 component-scan을 할 필요가 없다)
ServiceImpl
아래 그림처럼 @Inject로 명시(의존관계연결)
타 블로그를 참조할 때 Autowired를 사용하는 곳도 있어 헷갈렸었는데
Inject는 자바 표준 어노테이션
Autowired는 스프링 어노테이션이란 차이를 가지고 있다
Controller
URI호출 시작부분인 컨트롤러에서는
json형식으로 데이터를 리턴해주기 위해서
아래와 같은 형식을 사용(Get방식과 Post방식)
Controller -> service -> dao 단으로 파라미터(Get)와 User객체(Post)를 계속 넘기면서
최종적으로 dao단에서 sqlSessionFactory을 이용해 해당하는 함수를 호출하여
데이터를 리턴받는다
Dao
User모델
model을 만들 때는 선언한 컬럼명과 디비의 컬럼명이 같으면
객체를 넘길 경우 자동으로 맵핑되어 결과를 리턴할 수 있다.
-> 수정 부분
변수명은 디비의 컬럼명과 같아야한다. 대소문자 상관없음앞에 두글자는 소문자여야 한다 그래야 빈주입이되어 디비컬럼과 맵핑된다.
끝
처음 Rest Api 서버를 셋팅한다면 아래 Github에서 풀소스를 내려받고
maven설정정보 / root-context설정정보 / mvc 구조를 확인하고
get, post, delete방식으로 호출해보면서
자신에게 맞게 수정하면 조금 더 빠르게 익힐 수 있을 것 같다.
프로그램을 지우고 다시 설치하고
프로젝트를 지우고 다시 생성하고 여러번 하다보니 조금은 감이 온것 같기도..
회사에서는 만들어진 틀안에서 반복적인 작업을 하다보니(넥사크로 툴사용하기도 하고...)
셋팅/설정할 일이 거의 없었는데
역시 기본 셋팅 + 구조잡는것이 반인것 같다.
'IT > 개발 기록' 카테고리의 다른 글
[Spring] Junit을 사용하여 단위테스트(Spring-Test사용) (2) 2018.11.05 쿼리 결과값을 리턴받은 DTO를 가지고JSON구조 만드는 방법 (0) 2018.10.30 Tomcat 다운로드 및 설치 (0) 2018.10.14 [Spring] STS 다운로드/설치 및 기본설정 (0) 2018.10.14 JDK 8 다운로드 및 설치 방법 (0) 2018.10.14 댓글