The Debugging Chronicles : "코드의 미학"
[Spring] 기본 구조 본문
회사.어떤 팀인지 혹은 어떤 서비스인지.app.biz(business method=핵심관심,핵심로직).member(table 이름)
biz == 서비스 == 제공하는 기능
MySQL 이관 작업 완료된
MySQL.jar 가 필요.
dependency 주입
memberDAO는 5개의 메서드를 갖는다.
사용자가 xxx.do를 요청하면
FC에서 XxxxAction객체 생성 후
AF= xxxAction.excute();
DS이 AF를 보고 페이지를 이동
근데 FC에서 XxxxAction객체 생성 하는 것을 "서비스"라고 한다.
멤버 서비스는 인터페이스이다.
서비스(컨트롤러)에서는 DAO를 가져다가 서비스 내용(로직)을 구현한다.
Action >>> Service
Service 의 내용은 실질적으로 DAO가 수행하는 것이다.
서비스와 DAO관계는
phone과 watch의 관계이다.
service(action) == phone
Service의 메서드가 DAO의 메서드 시그니쳐와 동일해야하는 것이 매우 중요!!
그래서 인터페이스로 구현한다.
하지만 실제로 인터페이스는 객체를 구현하지 않기 때문에
실현채 구현채가 필요한데
그게 바로 Impl(Implemnet) 이다
서비스를 controller라고 할때
selectAll 할때 마다 new가 된다 == 메모리 낭비
멤버 변수로 변경
MemberImpl 는 의존성이 있다.
그래서 의존성이 주입
new를 유지 == 싱글톤 패턴
의존성 주입을 해주었지만
@Component 를 해주지 않았다.
근데 @componenet를 상속 받은 어노테이션이 있는데
가장 첫번째가 @Repository이다. DAO류에 사용한다.
Repositroy 자체가 DAO
autowird가 이름을 보지 않고 메모리의 자료형(타입)을 보기 때문에
실습!
try-catch
DAO가 null 이다.
개발자는 new를 줄일 수 록 좋다
@componenet를 상속 받은 어노테이션이 있는데
그 두번째가 @Service이다. C, Action, ServiceImpl 류에 사용
사용자가 호출(look up) ===> 이름
'Spring' 카테고리의 다른 글
[Spring] DispatcherServlet(이전 FrontController) (0) | 2024.10.07 |
---|---|
[Spring] 1주차 과제 - MemberDAO (0) | 2024.10.07 |
[Spring] 어노테이션(annotation) 의존성 주입 (0) | 2024.10.04 |
[Spring] 이번주 내용 복습 (0) | 2024.10.04 |
[Spring] 의존성(Dependency) - Setter 주입 (2) | 2024.10.02 |