ultra_dev

1.31 TIL λ³Έλ¬Έ

TIL&WIL

1.31 TIL

ultra_dev 2023. 2. 1. 01:12

πŸ“Œ μ“°λ ˆλ“œ.. run()λ©”μ†Œλ“œ 호좜 μ•ˆν•˜κ³  start()λ©”μ†Œλ“œ 호좜 ν•˜λŠ” 이유

λ‹€μ€‘μ“°λ ˆλ“œλŠ” Heap, Code, Static μ˜μ—­μ€ κ³΅μœ ν•˜μ§€λ§Œ μŠ€λ ˆλ“œ λ³„λ‘œ 각기 λ‹€λ₯Έ Stack μ˜μ—­μ΄ 쑴재

:run()λ©”μ†Œλ“œλŠ” λ‹¨μˆœνžˆ μ˜€λ²„λΌμ΄λ”©μ„ ν•œ λ©”μ†Œλ“œλ₯Ό ν˜ΈμΆœν•˜λŠ” 것 κ·Έλƒ₯ 순차적 μ²˜λ¦¬ν•˜κ²Œ 됨 

start()λ©”μ†Œλ“œλ‘œ μ‹€ν–‰ν•˜λ©΄ μƒˆλ‘œμš΄ μŠ€νƒ μ˜μ—­μ„ λ§Œλ“€μ–΄μ„œ λ™μ‹œμ— 처리 κ°€λŠ₯해짐 (JVM이 μƒˆλ‘œ λ§Œλ“€μ–΄μ€Œ)

 

πŸ“Œμ“°λ ˆλ“œν’€! 

 

μžλ°”μ—μ„œ μ“°λ ˆλ“œ ν’€ 닀뀄보기

ν”„λ‘œμ„ΈμŠ€μ™€ μ“°λ ˆλ“œ μ“°λ ˆλ“œλŠ” ν”„λ‘œμ„ΈμŠ€ λ‚΄μ˜ μž‘μ—… 흐름이닀. ν”„λ‘œμ„ΈμŠ€λŠ” μ΅œμ†Œ 1개의 μ“°λ ˆλ“œλ₯Ό 가지고 있으며, N개의 μ“°λ ˆλ“œλ₯Ό μƒμ„±ν•˜μ—¬ λ™μ‹œμ— μž‘μ—…μ΄ 처리 λ˜λ„λ‘ ꡬ성할 수 μžˆλ‹€. μ΄λ ‡κ²Œ ν”„λ‘œ

hudi.blog

 

πŸ“ŒμŠ€ν”„λ§λΆ€νŠΈ.. μŠ€ν”„λ§λΆ€νŠΈμ• ν”Œλ¦¬μΌ€μ΄μ…˜μ—μ„œ @SpringBootApplication 눌러보면 μ»΄ν¬λ„ŒνŠΈμŠ€μΊ”κΉŒμ§€ λ‹€ ν¬ν•¨ν•˜κ³  μžˆμ–΄μ„œ @ComponentScan 일일히 μ•ˆν•΄μ€˜λ„ μ•Œμ•„μ„œ 빈 λ“±λ‘ν•΄μ€Œ! 

 

 

πŸ“Œ@RepositoryλŠ” λ°μ΄ν„°μ ‘κ·Όκ³„μΈ΅μœΌλ‘œ μΈμ‹ν•˜κ³ , λ°μ΄ν„°κ³„μΈ΅μ˜ μ˜ˆμ™Έλ₯Ό μŠ€ν”„λ§μ˜ˆμ™Έλ‘œ λ³€ν™˜
즉 νŠΉμ • db μ˜ˆμ™Έκ°€ λ§‰ μ„œλΉ„μŠ€λ‹¨κΉŒμ§€ μ˜¬λΌμ˜€λŠ”데 λ‚˜μ€‘에 dbꡐ체등할 λ•Œ μ„œλΉ„μŠ€λ‹¨κΉŒμ§€ ν”λ“€λ¦Ό


κ·ΈλŸ¬λ‹ˆκΉŒ μ•„μ˜ˆ dbμ˜ˆμ™Έλ₯Ό μŠ€ν”„링 μΆ”상화 μ˜ˆμ™Έλ‘œ λ°”κΏ”μ€Œ 

 

ν•˜μ§€λ§Œ JPAκ°€ μ•Œμ•„μ„œ ν•΄μ£Όλ‹ˆ λ”°λ‘œ μ•ˆμ¨μ€˜λ„ λœλ‹€λŠ” 것!

 

πŸ“Œ

@Controller :  mvc컨트둀러둜 인식


πŸ“Œ
@ServiceλŠ”:  κ·Έλƒ₯ κ°œλ°œμžλ“€μ΄ μ„œλΉ„μŠ€λ‹¨μ΄κ΅¬λ‚˜ μΈμ‹ν•˜λŠ” μš©λ„λ‘œ 별 κΈ°λŠ₯μ—†μŒ

 

πŸ“Œ

DIν”„λ ˆμž„μ›Œν¬λŠ” 
μƒμ„±μž μ£Όμž…μ„ ν•΄μ•Ό λ§Œλ“€ λ•Œ μ•ˆλ„£μ–΄μ£Όλ©΄ λ°”λ‘œ μ»΄νŒŒμΌμ—λŸ¬λœ¨λ‹ˆ 인식가λŠ₯
그리고 final 써주면 μƒμ„±μžμ—μ„œ 빼먹을 λ•Œ μ»΄νŒŒμΌμ—λŸ¬λœ¨λ‹ˆ λ°”λ‘œ λ°”λ‘œ 인식가λŠ₯함 

 

πŸ“Œ


@Qualifier둜 μΆ”κ°€ κ΅¬λΆ„μž! (빈 μ΄λ¦„을 λ°”κΎΈλŠ”κ²Œ μ•„λ‹ˆλΌ κ·Έλƒ₯ κ΅¬λΆ„μžλ§Œ μΆ”κ°€λ˜λŠ” κ²ƒ)
μ–˜λŠ” μƒμ„±μž 직접 ν•΄μ€˜μ•Όλ¨ @RequiredArgsConstructorλž‘ 같이 λͺ»μ”€

빈 λ“±λ‘μ‹œ @Qualifierλ₯Ό λΆ™μ—¬ μ€€λ‹€.
@Component
@Qualifier("mainDiscountPolicy")
public class RateDiscountPolicy implements DiscountPolicy {


이후 μƒμ„±μžμͺ½ νŒŒλΌλ―Έν„°μ— 
public OrderServiceImpl
(@Qualifier("mainDiscountPolicy)DiscountPolicy discountPolicy)
{

this.discountPolicy = discountPolicy;

} μ΄λŸ° λŠλ‚Œ! 

λ§Œμ•½ ν€„λ¦¬νŒŒμ΄μ–΄λΌλ¦¬ λ§€μΉ­ν•˜λ €λ‹€κ°€ λͺ»μ°ΎμœΌλ©΄ ν•΄λ‹Ή μ΄λ¦„μ˜ μŠ€ν”„λ§λΉˆλ„ μΆ”κ°€ κ²€μƒ‰ μžλ™μœΌλ‘œ μ§„행됨 

@PrimaryλŠ” λ©”인 λ³΄μ‘° μžˆμ„λ•Œ λ©”인을 primary둜 λ‹¬μ•„놓고
λ³΄μ‘°μ“Έλ•ŒλŠ” κ±°κΈ°λ‹€ @QualifierλΆ™ν˜€μ„œ μ“°λŠ” κ·ΈλŸ°μ‹!?
즉 @Qualifierκ°€ μš°μ„ μˆœμœ„κ°€ λ†’λ‹€λŠ” λœ»~

'TIL&WIL' μΉ΄ν…Œκ³ λ¦¬μ˜ λ‹€λ₯Έ κΈ€

2.2 TIL  (0) 2023.02.03
2.1 TIL  (1) 2023.02.02
1.30 TIL  (2) 2023.01.31
1.23~1.27 WIL  (1) 2023.01.29
1.27 TIL  (0) 2023.01.27
Comments