19일차
2023. 11. 5. 13:31ㆍStudy/KB IT's your life 4기
2023.08.29 수업 이슈
- xml 기반의 sql Mapper
- 설정문서간의 Wiring 작성하기
- Controller 코드 완성하기
▶ MyBatis mapper에서 pvo, rvo 간의 동기화 문제
✔️ 위와 같이 작성하면 안된다
✔️ 위와 같이 작성하면 안된다
- DB에서 sysdate, squence 값은 자동증가한다. 이게 컬럼을 비교하는 pk일 때, pvo과 rvo간의 동기화가 안되면 문제가 생긴다.
▶ 동적 쿼리
▶ 풀스택 Architecture
인터페이스 상속받은 재사용성 강한 클래스를 컴포넌트라고 한다.
메소드명은 아무거나 해도 되지만 결과는 ModelAndView이어야 한다. 여기에 안들어가는거 물리적 위치, 확장자 정보를 따로 담는 InternalResourceViewResolver. Internal~ Bean.xml 에 default 경로와 와 확장자를 넣는다.
DispatcherServlet이 클라이언트의 모든 요청을 받는(FrontController 역할을 하는) SpringMVC 라이브러리 역할을 한다.
Bean 설정 문서를 annotation으로 갈아치워서 하나씩 확인해야 한다. bean 설정문서로 모두 작성했으면 그 문서로 모든 흐름을 파악할 수 있다는 말이 이 뜻
이 컴포넌트들을 컨테이너가 생성할 수 있도록 만든 기술이 DI Container
◆Spring 실행 순서
- WAS 실행
- web.xml 읽는다.
- presentationBean.xml ⇒ 와이어링(<context-param>을 통해서)
- businessLogicBean.xml ⇒ presentation을 와이어링 한다.(<init-param>을 통해)
- DI Container에는 BeanFactory가 있으며, 이건 lazy loading 하는 원시적인 방법이고, ApplicationContext가 조금 더 성능이 좋은 Container다. web에서는 이걸 안 쓰고 WebApplicationContext를 사용한다.