-- INDEX --
1. Spring 주요 주체들 | 2. Spring 작동 흐름 파악 | 3. mapper.xml 파일 연결하기 |
Client, DS 등 | 요청받고, 컨트롤러작업 화면선택, 응답하기 |
root-context.xml 파일에 연결 mapperLocations = " " |
1. 스프링 작동원리 파악의 주요 주체들
# Client = 브라우저
# DS = 디스패쳐 서블릿 = 대장 서블릿
# 컨트롤러 = 컨트롤러
# ViewResolver = prefix / suffix 해주는 애
# View = 화면, jsp파일
# ModelAndView = Model이랑 똑같다. 포워딩
# HandlerMapping
- = 실제론 더 복잡하겠지만 - if문의 역할하는 애
- ( if(url.equals(“member/join){ mc.join(); } ) 그 얘기
- 만약 멤버 조인 요청이 들어오면 해당 컨트롤러의 메서드 실행해라
- = 지금 요청 이렇게 들어왔으니까, 담당 직원을 이 친구로 배정해주어야겠다
- = url 요청에 따라 담당 컨트롤러 배정해주는 역할
2. DS 중심으로 스프링 작동 흐름 파악
1. 클라이언트로부터 들어온 요청받는다.
2. HandlerMapping으로 보내서 어떤 컨트롤러에게 가야 할지 받아온다.
3. 해당 컨트롤러에게 찾아가 작업을 시키고 컨트롤러로부터 실행 결과 문자열 return 받는다.
4. redirect 가 아니라면 ViewResolver로 보내서 prefix, suffix 작업등을 거친 뒤 return 받는다.
5. 그 값으로 View Page를 선택해서 클라이언트에게 response 한다.
다녀올 필요가 없으므로 가지 않습니다! 포워딩하는 경우에만 다녀옵니다
3. mapper.xml 파일 연결하기
- mapper 파일 만들고 root-context에 mapperLocation으로 연결
3-1 : mapper.xml 파일 만들기
config 파일은 만들어놓기는 했지만
지금은 mapper.xml 파일 연결만 진행해보자.
3-2. config.xml 파일 vs mapper.xml 파일
- mapper.xml 파일 작성 위한 내용 가져와서 수정하기 ( mybatis 공홈 참조 )
- mybatis에게 매퍼 파일의 존재를 알려주어야 하는데 아직 하지 않았다.
# 기존 방식은
- SqlSession팩토리 생성 시 config.xml파일을 참조하여 만들어졌다.
- config 파일에 mapper파일들을 등록해서 존재를 알려주었다.
# config.xml 파일의 존재 이유는
- 공장을 만들기 위해서 존재했었다.
- 스프링에서도 공장의 역할인 ” 팩토리빈 ”
- “ SqlSessionFactoryBean ” 객체 생성 부분에 파라미터 추가해서 알려 줄 필요가 있다.
# 기존 방식대로 config파일에 mapper파일을 등록하고 factory를 만드려고 했는데
- SqlSessionFactoryBean 에 등록된 메서드들을 보다 보니 setMapperLocations가 존재하네?
- config 파일을 거칠 필요 없이 바로 매퍼 파일 등록이 가능한가 보다 파악 가능
- configLocation 대신 mapperLocations 로 바로 등록해주기
3-3. <property name="mapperLocations" value =" 경로 "/>
<property>를 이용해서 어떤 변수를 채워주겠다 하는 것은
setXXX - 세터를 이용하겠다는 의미
이 클래스에 세터가 있다면
xml파일에서 세터를 사용하겠다는 의미
어떻게?
<property name>를 이용해서.
3-4. 경로 설정 방법
1. classpath:
2. 와일드 카드 활용
- 보더 매퍼가 오던 / 멤버 매퍼가 오던 다 인식 가능
3. 중간에 다른 경로 생기는 경우도 대비
- mapper 폴더 하위에 – 바로 무슨무슨-mapper.xml 가 오는 게 아니라
- 중간에 다른 경로가 더 생기는 경우를 대비해서
- /** 추가
'Java 기반 클라우드 융합 개발자 과정 - KH 정보교육원 > 9월' 카테고리의 다른 글
22.09.16 - [ Spring ] DelegatingFilterproxy ,proxy, interceptor (0) | 2022.09.28 |
---|---|
22.09.15 - [ Spring ] 암호화 처리, 리다이렉트 방법 (0) | 2022.09.21 |
22.09.13 - [ Spring ] pom.xml / web.xml / context.xml 설정 파일 및 DB 설정 파일 (0) | 2022.09.19 |
22.09.12 - [ 추석 연휴 휴강 ] (0) | 2022.09.15 |
22.09.09 - [ Spring ] bean등록 , ViewResolver , 요청 방식에 따라 처리하기, 파라미터 받기 , 데이터 담기 , interface 타입으로 받기 (0) | 2022.09.15 |