AOP @Bean 사용시 시간 출력
356
작성한 질문수 1
이제 막 스프링 공부를 시작하는 와중에, 어떻게 시작해야 할지 모르는 상황에서 정말 많은 도움 됐습니다!!
궁금한 점은 AOP를 직접 @Bean으로 등록해 줘서 실행했을 때, 왜 시간 출력물이 나오지 않는 것인지 궁금합니다!
SpringConfig에서
return new TimeTraceAop(); 으로 새로운 TimeTraceAop()객체를 리턴하는데,
시간을 출력하려면 어떻게 해야 할까요?

답변 1
0
안녕하세요. mippy98님, 공식 서포터즈 David입니다.
강의내용과 Around쪽 코드가 조금 달라보이는데, 모든 코드를 강의내용과 동일하게 작성하신 뒤 다시 실행해보시겠어요?
감사합니다.
0
@Bean으로 직접 등록해서 하는 방식으로 바꾼건데 저렇게 하는거 아닌가요..? ㅜㅜ
패키지명은 강의에 나오는거랑 다르게 memberproject로 했습니다
코드 첨부 해보겠습니다..!!
TimeTraceAop.java
@Aspect
public class TimeTraceAop {
@Around("execution(* com.example.meberproject..*(..)) && !target(com.example.memberproject.SpringConfig)")
public Object execut(ProceedingJoinPoint joinPoint) throws Throwable {
// 시간 로직
long start = System.currentTimeMillis();
System.out.println("STRAT: " + joinPoint.toString());
return joinPoint.proceed();
} finally {
long finish = System.currentTimeMillis();
long timeMs = finish - start;
System.out.println("END: " + joinPoint.toString() + " " + timeMs + "ms");
}
}
}
SpringConfig.java
@Configuration
public class SpringConfig {
private MemberRepository memberRepository;
@Autowired // 생략 가능
public SpringConfig(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
@Bean
public MemberService memberService() {
return new MemberService(memberRepository);
}
@Bean // 스프링 빈에 직접 AOP 등록
public TimeTraceAop timeTraceAop() {
return new TimeTraceAop();
}
}
0
위에 첨부한 사진이 서버 실행해서 spring3으로 가입하고 회원 목록 조회 했을때 나오는 콘솔 화면 입니다. 그래서 보면 member = spring3 이 출력 되어있어요! 이거 출력하는 코드는 MemberController.java에 create 메소드에 있습니다.
회원 목록 페이지에도 spring3이 있습니다. 그럼 메소드는 실행이 된건데, 그냥 AOP가 적용이 안된걸까요...?
spring55로 다시 실행한 결과 첨부하겠습니다 ㅜㅜ 
0
질문자분께서 작성하신 코드로 테스트해보았는데, 잘 동작했습니다.
더 자세한 확인을 위해 아래 가이드를 따라 프로젝트를 전달해주실 수 있을까요?
---
전체 프로젝트를 압축해서 구글 드라이브로 공유해서 링크를 남겨주세요.
구글 드라이브 업로드 방법은 다음을 참고해주세요.
https://bit.ly/3fX6ygx
주의: 업로드시 권한 문제 꼭 확인해주세요
추가로 다음 내용도 코멘트 부탁드립니다.
1. 실행 방법을 알려주세요.
2. 어떻게 문제를 확인할 수 있는지 자세한 설명을 남겨주세요.
인텔리제이 오류
0
52
1
..
0
113
2
Unused property.....
0
121
2
project JDK is misconfigured
0
168
2
외부 API의 ID 타입(String/UUID)과 내부 도메인의 ID 타입(Long)이 불일치할 때의 설계 정석
0
102
2
단위/통합 테스트 버전충돌 문제
0
103
2
❗️springboot 4.0.2 버전 aspectj dependency 설정❗️
0
257
1
왜 컨트롤러는 변한게 없는데 새로 만든 html 파일이 뜨나요?
0
125
2
윈도우 build test오류 질문
1
123
2
테스트 관련 공부에 대한 조언을 얻고 싶습니다
0
113
2
테스트 실행 시 에러 질문
0
320
1
name을 통한 비교와 객체를 통한 비교
0
82
1
빌드 후 libs 없음
1
151
1
윈도우 gradlew.bat 에러
0
188
1
@PostMapping("/members/new")가 동작하지 않습니다
0
98
1
java static class와 kotlin class
0
91
1
스프링 DB연결
0
146
1
소요 시간
0
96
2
ddl.sql에 빨간 밑줄
1
118
2
welcome page 에러
0
202
3
잘 모르겠습니다.
0
174
2
fail을 똑같이 쳤는데 오류가 발생해요
0
174
2
index.html Welcome page
0
138
1
프로젝트 gradle-groovy ?
0
404
1





