Skip to content

Commit c9718f6

Browse files
committed
refactor: 트랜잭션 로그 작성
1 parent bd02478 commit c9718f6

3 files changed

Lines changed: 47 additions & 0 deletions

File tree

src/main/java/ceos/backend/domain/application/service/ApplicationService.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,7 @@
2828
import ceos.backend.domain.recruitment.domain.Recruitment;
2929
import ceos.backend.domain.recruitment.helper.RecruitmentHelper;
3030
import ceos.backend.domain.recruitment.validator.RecruitmentValidator;
31+
import ceos.backend.global.common.annotation.TransactionLog;
3132
import ceos.backend.global.common.dto.PageInfo;
3233
import ceos.backend.global.common.entity.Part;
3334
import ceos.backend.global.util.InterviewDateTimeConvertor;
@@ -258,6 +259,7 @@ public GetInterviewAvailability getInterviewAvailability(Long applicationId) {
258259

259260

260261
@Transactional
262+
@TransactionLog
261263
public void updateDocumentPassStatus(Long applicationId, UpdatePassStatus updatePassStatus) {
262264
recruitmentValidator.validateBetweenStartDateDocAndResultDateDoc(); // 기간 검증
263265
applicationValidator.validateExistingApplicant(applicationId); // 유저 검증
@@ -267,6 +269,7 @@ public void updateDocumentPassStatus(Long applicationId, UpdatePassStatus update
267269
}
268270

269271
@Transactional
272+
@TransactionLog
270273
public void updateFinalPassStatus(Long applicationId, UpdatePassStatus updatePassStatus) {
271274
recruitmentValidator.validateBetweenResultDateDocAndResultDateFinal(); // 기간 검증
272275
applicationValidator.validateExistingApplicant(applicationId); // 유저 검증
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
package ceos.backend.global.common.annotation;
2+
3+
import java.lang.annotation.*;
4+
5+
6+
@Target(ElementType.METHOD)
7+
@Retention(RetentionPolicy.RUNTIME)
8+
@Documented
9+
public @interface TransactionLog {
10+
}
Lines changed: 34 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,34 @@
1+
package ceos.backend.global.common.aop;
2+
3+
import lombok.extern.slf4j.Slf4j;
4+
import org.aspectj.lang.ProceedingJoinPoint;
5+
import org.aspectj.lang.annotation.Around;
6+
import org.aspectj.lang.annotation.Aspect;
7+
import org.springframework.stereotype.Component;
8+
import org.springframework.transaction.support.TransactionSynchronizationManager;
9+
10+
11+
@Slf4j
12+
@Aspect
13+
@Component
14+
public class TransactionLoggingAspect {
15+
16+
@Around("@annotation(ceos.backend.global.common.annotation.TransactionLog)")
17+
public Object logTxMethod(ProceedingJoinPoint joinPoint) throws Throwable {
18+
String methodName = joinPoint.getSignature().toShortString();
19+
20+
log.info("[TX START] {}", methodName);
21+
String txName = TransactionSynchronizationManager.getCurrentTransactionName();
22+
log.info("[TX NAME] = {}", txName);
23+
24+
25+
try {
26+
Object result = joinPoint.proceed();
27+
log.info("[TX COMMIT] {}", methodName);
28+
return result;
29+
} catch (Exception e) {
30+
log.warn("[TX ROLLBACK] {} - Exception: {}", methodName, e.getMessage());
31+
throw e;
32+
}
33+
}
34+
}

0 commit comments

Comments
 (0)