Part 1. Spring Framework
Ch 03. 예제를 만들며 이해하는 스프링 웹 어플리케이션 핵심 기술
07. AOP, Transactional
AOP
- 문제를 해결하기 위한 핵심 사항을 기준으로 프로그래밍 하여 공동 모듈을 여러 코드에 쉽게 적용
- 핵심 로직을 구현할 때 공통 기능(트랜잭션, 보안검사)을 처리하기 위한 코드를 핵심 로직 코드에 삽입할 필요가 없음
package com.fastcampus.programmin.dmaker.service;
import com.fastcampus.programmin.dmaker.Repository.DeveloperRepository;
import com.fastcampus.programmin.dmaker.entity.Developer;
import com.fastcampus.programmin.dmaker.type.DeveloperLevel;
import com.fastcampus.programmin.dmaker.type.DeveloperSkillType;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
import javax.persistence.EntityManager;
import javax.persistence.EntityTransaction;
import javax.transaction.Transactional;
@Service
@RequiredArgsConstructor
public class dMakerService {
private final DeveloperRepository developerRepository;
private final EntityManager em;
@Transactional
public void createDeveloper() {
//business logic start
Developer developer = Developer.builder()
.developerLevel(DeveloperLevel.JUNIOR)
.developerSkillType(DeveloperSkillType.FRONT_END)
.experienceYears(2)
.name("Olaf")
.age(5)
.build();
/* A -> B 1만원 송금 */
// A 계좌에서 1만원 줄임
developerRepository.save(developer);
// B 계좌에서 1만원 늘림림
developerRepository.delete(developer1);
}
}
}
<dMakerService>
----------------------------------------------------------------------------------------------------------------------------------
https://bit.ly/37BpXic
'[패스트캠퍼스] Spring' 카테고리의 다른 글
패스트캠퍼스 챌린지 23일차 (0) | 2022.02.15 |
---|---|
패스트캠퍼스 챌린지 22일차 (0) | 2022.02.14 |
패스트캠퍼스 챌린지 20일차 (0) | 2022.02.12 |
패스트캠퍼스 챌린지 19일차 (0) | 2022.02.11 |
패스트캠퍼스 챌린지 18일차 (0) | 2022.02.10 |
댓글