ultra_dev
1.31 TIL λ³Έλ¬Έ
π μ°λ λ.. 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κ° μ°μ μμκ° λλ€λ λ»~