본문 바로가기
[패스트캠퍼스] Spring

패스트캠퍼스 챌린지 21일차

by 엑츄얼리 2022. 2. 13.

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

댓글