Search
🌱

Conditional

문제점

현재 @PerformanceTracker 를 붙이면 빈으로 등록되는 클래스들은 다음과 같다.
필요하지 않은데도, 모두 @Component 를 붙여서 빈으로 등록이 된다.
→ 이를 @Conditionalproperties 를 이용하여 개선해보고자 한다.

개선 방안

1.
accumulator, result mapper, object mapperperformance tracker 기능의 가장 근간이 되는 클래스로 언제나 등록이 되도록 한다.
2.
web, query, rest 는 매번 빈으로 등록될 필요가 없다.
a.
data jpa test 를 한다면 interceptor 에 접근하지 않아 측정을 아예 하지 않지만 web 과 rest 관련 빈들이 등록된다.
b.
이에 따라 현재 패키지가 web, query, rest 로 나눠져있기때문에 @Conditional@ComponentScan 을 이용하여 빈으로 등록될 수 있도록 한다.
3.
descriptor 관련 빈은 @ConfigurationProperties, @ConditionalOnProperty, properties 를 통해 logging 또는 json 으로 선택적으로 빈 등록이 된다.
4.
context manager
a.
기존에는 context manager 를 모두 빈으로 등록하고 @PerformanceTracker 의 옵션으로 사용자가 context 를 선택할 수 있도록 하였다.
b.
모두 등록할 필요가 없기도 하고 class 마다 context 를 바꿀 요구도 드물다고 판단하여 context manager 또한 properties 로 선택할 수 있도록 한다.
c.
Condition 을 구현하여 커스텀 어노테이션을 만들어 선택적으로 빈 등록할 수 있도록 한다.
d.
더욱 자세한 내용은 이 페이지