Search
🌱

Conditional

문제점

ν˜„μž¬ @PerformanceTracker λ₯Ό 뢙이면 빈으둜 λ“±λ‘λ˜λŠ” ν΄λž˜μŠ€λ“€μ€ λ‹€μŒκ³Ό κ°™λ‹€.
ν•„μš”ν•˜μ§€ μ•Šμ€λ°λ„, λͺ¨λ‘ @Component λ₯Ό λΆ™μ—¬μ„œ 빈으둜 등둝이 λœλ‹€.
β†’ 이λ₯Ό @Conditional κ³Ό properties λ₯Ό μ΄μš©ν•˜μ—¬ κ°œμ„ ν•΄λ³΄κ³ μž ν•œλ‹€.

κ°œμ„  λ°©μ•ˆ

1.
accumulator, result mapper, object mapper λŠ” performance 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.
λ”μš± μžμ„Έν•œ λ‚΄μš©μ€ 이 νŽ˜μ΄μ§€