본문 바로가기
목차
Spring

Spring MVC (스프링 웹 MVC) 강의 22 - 서비스 객체 분리하기

by 지각생 2022. 1. 7.
728x90

 

기존에 JDBC로 구현

갑자기 JPA로 구현해야 한다면?

이럴때 인터페이스로 결합시켜놨다면 바꾸기 어렵지 않아진다.

인터페이스로 구현 해보자

패키지명 바꾸기

NoticeService.java 패키지 위치 옮기기

JDBC붙여서 이름 변경

이렇게

JPA패키지 추가를 위해

에서

finish

인터페이스 추가

JDBCNoticeService -> NoticeService

Create~

그러면 인터페이스에 메소드 생성된다.

 

JDBC 가서 NoticeService implements한다

 

전체 복사 시작지점

 

완전 끝까지 복사

 

커서 블록에

커서내용 지우면서 복사한 부분 붙여넣기

 

내용 삭제

정리 완성

 


package com.newlecture.web.service;

import java.sql.SQLException;
import java.util.List;

import com.newlecture.web.entity.Notice;

public interface NoticeService {

 List<Notice> getList(int page, String field, String query) throws ClassNotFoundException, SQLException;
 int getCount() throws ClassNotFoundException, SQLException;
 int insert(Notice notice) throws SQLException, ClassNotFoundException;
 int update(Notice notice) throws SQLException, ClassNotFoundException;
 int delete(int id) throws ClassNotFoundException, SQLException;

}


인터페이스 완성

이건 구현하지 않을 것임

나중에 DAO를 만들어서 계층 나눠서 거기서 구현할 예정

 

지금은 인터페이스 중요성을 파악하기 위해 진행 중

과거에 만든 NoticeService가 지금은 인터페이스이므로 수정해주자

<bean id="noticeService" class="com.newlecture.web.service.JDBCNoticeService" />

만약 JDBC로 구현하던걸 JPA로 구현해야 한다고 하면

<bean id="noticeService" class="com.newlecture.web.service.JPANoticeService" /> 

이부분만 바꿔주면 되기 때문에 매우 편리해진다.

jdbc패키지 확장 했으므로 추가해 줄 것.

푸터에 이미지 오류가 좀 있긴하지만

게시글은 잘 불러와 진다

 

/ 추가해주니 이미지가 정상적으로 불러와진다

 

 

 


출처:

https://www.youtube.com/watch?v=QQTkSVLnYQs&list=PLq8wAnVUcTFUHYMzoV2RoFoY2HDTKru3T&index=48 

 

728x90

댓글