0607 - mysql / myBatis / DI..

정연진·2021년 6월 7일

mysql 아이디,비번 : yeonjin,3917

service와 dao

service


좀 더 의미론적인 것들. 좋아요수, 조회수업데이트, 인기글...

dao


MyBatis 설정하기

jdbc dao 설정을 알아서 해줌.

  • xml 구성을 최소화
  • 기본 설정이 거의 제로

1. 라이브러리추가

프로젝트 오른쪽 버튼 -> Spring -> add Starters

이렇게 세개를 선택해서 추가
pom.xml에 디펜던시 세개가 추가되었슴

2. application.properties에 세팅

3. annotation 추가


dao에 가서
껍데기에 @Mapper, 함수에 쓰려는 쿼리씀.
mybatis가 읽어서 구현체를 ioc 컨테이너에 담아줌(여기까지가 mybatis의 기능)
꺼내 쓰는건 스프링의 기능

스프링의 객체 사용방법 (DI)

컨트롤러가 다오를 이용하려함. 다오를 di. 멤버로 쓸거다~

dependency란?

부품으로 쓰는것
frame->a->b->c
a는 frame의 부품이고, b는 a의 부품이다. dependency는 상대적인 것.

dependency injection


Dependency를 생성과 사용하는 방식 중 결합(뺏다꽂았다)이 가능한 방법?
setter를 통해 결합. -> 이게바로 dependency insection. 밖에서 주입!!

왜 dependency injection 인가?

인터페이스에 맞춰 다른 것을 꽂아쓸 수 있음. 재사용, 협업,유지보수에 유리.

스프링이 di 코드를 -> 설정으로 해줌! 이게 처음 spring의 기능. 최근에는 xml이 아닌 어노테이션으로 함.

IoC 컨테이너

IoC 컨테이너 : 갖고만있는게 아니라 di까지 해줌! 결합된 결과를 뭉탱이로 갖다 쓸 수 있음. 그냥 컨테이너가 아니다..

일체형은 결합 순서가 a->b->c->d. a가 b를 만들고 b가 c를 만들고..

근데 조립형은?
d만들고 조립, c만들고 조립, b만들고 조립..
제어가 반대! 제어의 역행..(IoC) 그래서 IoC컨테이너다..

구현

말단부터 구현 - 1. Dao


Dao에서 getList()를 구현했다. 어노테이션을 다 붙혔으므로 mybatis가 컨테이너에 담아줄 것이다.

2. Service 구현

dao를 필드인젝션해주고 getList를 구현해주었다.(NoticeService 인터페이스 따로 있음)

3. Controller 구현

service를 필드인젝션해주고 list를 구현해줍니다

profile
열공해욧

0개의 댓글