사실 기존거랑 똑같다.
콜백은 언어마다 다를 수 있는데,
자바의 콜백은 따지고 보면 앞서 했던 람다 방식 처럼 함수 하나만 있는 인터페이스에 람다식으로 주는 것 이다.
그래서, 이제 템플릿 콜백 패턴으로 만들면
public interface Callback {
void call();
}
그냥 순수 콜백용 인터페이스 하나 구현하고,
@Slf4j
public class TimeLogTemplate {
public void execute(Callback callback){
long startTime = System.currentTimeMillis();
// 비즈니스 로직 실행
callback.call();
long endTime = System.currentTimeMillis();
long resultTime = endTime - startTime;
log.info("resultTime={}", resultTime);
}
}
템플릿, 즉 틀을 만들어 주고,
저기서 콜백을 인자로 받고 실행.
@Test
void callbackV1(){
TimeLogTemplate template = new TimeLogTemplate();
template.execute(()->log.info("비즈니스 로직1"));
}
이렇게 활용
참고로,
JdbcTemplate 등 스프링에서 저렇게 뒤에 Template 붙은 건 이 콜백패턴 사용한 거임.
'스프링 > 스프링 핵심 원리 - 고급편' 카테고리의 다른 글
26. 컨트롤러 인터페이스 및 수동 빈 등록 (0) | 2024.01.19 |
---|---|
25. 템플릿 콜백 패턴 적용 (0) | 2024.01.17 |
23. 전략 패턴 인자로 받기 (0) | 2024.01.17 |
22. 전략 패턴 익명 및 람다 (0) | 2024.01.17 |
21. 전략 패턴 (0) | 2024.01.17 |