Chapter.8 Hikari CP / DB

Garam·2023년 5월 25일
2

Spring

목록 보기
8/14
post-thumbnail
post-custom-banner

📌 Hikari CP

📖 전 내용 복습

우리가 MaBits를 통해서 DB연동 FrameWork를 사용할 것이다.
DB연동 시에 히카리CP (DBCP)를 활용해서 사용할 것인데,
먼저 Eclipse히라키 CP를 설치하였고 히카리 CPDB 연동 커넥션 개수를 일정 생성 후 재활용하는 기법 (DBCP) 이 얘를 가져다가 활용한다.

히카리 CPMaBatis가 활용하며 그 DB 사용시 활용하는 녀석이 SqlSessionFactoryBean 이다.

그래서 우리는 SQLSessionFactoryBean을 가지고 CRUD를 할 수 있다.

Spring 컨테이너는 스프링에서 객체(POJO등)를 관리하는 메모리 공간이다.

우리는 객체를 다 스프링 컨테이너에 생성해서 넣어줄 것이다.
그리고 필요할때 언제든지 꺼내서 쓸 수 있다.

이것을 DI(의존성 주입)이라고 한다.

📖 전체 흐름

서버를 구동하는 순간 서버는 web.xml을 읽어들인다.

web.xml에 보면 FrontControllerDispatcherServlet을 스프링 컨테이너에 올린다.
DispatcherServlet의 설정은 servlet-context.xml에 설정되어 있다.

추가로 web.xml에 설정한 ContextLoaderListener도 있는데 이 객체는 DB연결 설정해놓은게 스프링컨테이너 객체로 올라간다. (우리가 설정한 히카리 CP)

이 경로가 servlet-context.xml에 작성되 있는 POJO들이 있는 곳을 알아내기위해 scan한다는 뜻이다.

그리고 해당 클래스가 scan위치에 있다고 하더라도 POJO가 되려면 @Copntroller이 붙어있어야 한다.

📖 DB연동

BoardMapper.java를 메모리에 올리기위해서 root-context.xml에서 kr.smhrd.daoscane하게 한다.
왜냐하면 BoardMapper.java(interface)kr.smhrd.dao 패키지 안에 있기 때문이다.

그다음 root-context.xml
xmlns:mybatis-spring="http://mybatis.org/schema/mybatis-spring
이녀석을 추가해야지 mybatis-spring:scan 태그를 사용할 수 있게 된다.

http://mybatis.org/schema/mybatis-spring
http://mybatis.org/schema/mybatis-spring.xsd

위 태그도 사이에 추가한다.

그다음 BoardMapper.java@Mapper을 추가 해줘야한다. (하지만 생략가능하다.)

이런식으로 연결이 된다.

그다음 BoardMapper 레퍼런스 변수에 @Autowired를 하면 의존성 주입 완성된다.

그럼 이제 BoardController에서 mapper 안에 메소드 사용 가능하다.

BoardMapper.java는 자동으로 스프링컨테이너 객체로 올라가 있으니 Autowired 맵핑만 해주면 가져와서 사용가능하다.

-> DI(의존성 주입)

주소로 접근하면 DB안에 있는 글들이 자동으로 나오게 된다.

여기까지 해서 안되는 사람들은 디펜던시 라든지 맵퍼라든지 다 봐야한다.


위 사진은 DB까지 포함한 전체흐름이다.


📌 마무리

📖 전체 흐름 요약

📖 한마디

다음에는 글쓰기 기능을 추가해서 글이 입력 및 출력이 되는지 확인 할 예정이다.
내용을 아직 완벽하게 이해하지 못했더라도 위에 있는 요약 사진을 보고 틈틈히 복습을 해야겠다.

profile
숨쉬는 돌멩이, 말하는 감자.
post-custom-banner

0개의 댓글