5장 서비스 추상화
토비의 스프링 1권 5장을 요약한 내용 입니다.
사용자 수정 기능 추가
updradeLevel() 메소드 코드의 문제점
public void upgradeLevels() {
List<User> users = userDao.getAllO;
for(User user : users) {
Boolean changed = null; // 레벨의 변화가 있는지를 확인하는 플래그
if (user.getLevel() == Level.BASIC && user.getLogin() >= 50) {
user.setLevel(Level.SILVER); // basic 레벨 업그레이드 작업
changed = true;
} else if (user.getLevel() == Level.SILVER && user.getRecommend() >= 30) {
user.setLevel(Level. GOLD) // silver 레벨 업그레이드 작업
changed = true; // 레벨 변경 플래그 설정
} else if (user.getLevel() == Level.GOLD) {
changed = false; // G0LD 레벨은 변경이 일어나지 않는다
} else {
changed = false; // 일치하는 조건이 없으면 변경 없음
}
if (changed) { userDao.update(user); }
}
}upgradeLevels() 리팩토링
트랜잭션 서비스 추상화
모 아니면 도
강제 예외 발생을 통한 테스트
UserServuce와 UserDao의 트랜잭션 문제
트랜잭션 동기화 적용
서비스 추상화와 단일 책임 원칙
수직, 수평 계층구조와 의존관계

단일 책임 원칙
단일 책임 원칙의 장점
Last updated