공부하고싶은 작은 기능들을 하나의 모듈로써 구성함.
aop 를 자주 쓰진않지만 맨날 필요할때마다 aop 문법을 찾아보는게 짜증나서 이번기회에 템플릿을 만들고
필요할때마다 사용하기이해서 따로 서브모듈로 만들어두었다.
Code Generate Library 의 약자로써 프록시 생성을 해주는 라이브러리인데
실제로 스프링에서나 다른곳에서 많이 사용된다고 한다.
기본적인 의존 주입부터 동적인 인터셉터 적용까지 다양하게 사용가능하다.
MethodInterceptor
가 많이 사용된다고하니 그것을 상속받는 형태로 구현가능할듯...
다만, 실제로 이것을 통해서 작업할일은 없어보이지만 문제풀다가 갑자기 궁금해서져서 포스팅함.
큰 틀은 Enhancer
가 프록시를 생성하고 Callback
을 통해 프록시 조작, 전처리 및 후처리 가능.
프론트라면 모를까 서버쪽을 i18n 할 필요가 있을까싶어서 한번도 해보지않았지만
이번에 stackOverFlow
질문으로 i18n
이 올라왔길래 질문답변할겸 공부해보았다.
서브모듈을 해서 그런지 파일을 제대로 동작은 안하지만
MessageSource
를 사용해서 가져올수밖에 없을듯싶다.
지금까지 executorService 만 사용해서 개발했기도했고 @Async
을 알지만 잘 안쓴것이기도한데 생각난김에 정리해보았다.
결국엔 프록시로 동작하다보니 순환참조방법이나 다른 객체에서 불러일으키는 방법을 사용해야한다.
로그를 남길때 요청에 따라 순서대로 쌓을수있도록 하는 방법중 하나이다.
물론 쓰레드로도 알수있지만 한요청에 한해서 바로 확인하기도 쉽고 쓰레드 쓰레드풀에서 재사용하는걸 조회해봤자 같은것인지 장담할수도 있기때문이다.
괜찮은 방법인거같다.