์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

2025. 3. 24. 16:54ยท๐Ÿ“ Spring/Lecture

์ธํ”„๋Ÿฐ ์Šคํ”„๋ง ํ•ต์‹ฌ ์›๋ฆฌ ๊ธฐ๋ณธํŽธ์„ ์ •๋ฆฌํ•œ ๊ธ€์ž…๋‹ˆ๋‹ค.

 

 

์ƒ์„ฑ์ž ์ฃผ์ž…

์ƒ์„ฑ์ž๋ฅผ ํ†ตํ•ด์„œ ์˜์กด ๊ด€๊ณ„ ์ฃผ์ž…

 

์ƒ์„ฑ์ž ํ˜ธ์ถœ ์‹œ์ ์— ๋”ฑ 1๋ฒˆ๋งŒ ํ˜ธ์ถœ ๋ณด์žฅ

๋ถˆ๋ณ€(final), ํ•„์ˆ˜ ์˜์กด๊ด€๊ณ„์— ์‚ฌ์šฉ

์ƒ์„ฑ์ž๊ฐ€ ๋”ฑ 1๊ฐœ๋งŒ ์žˆ์œผ๋ฉด @Autowired ์ƒ๋žตํ•ด๋„ ์ž๋™ ์ฃผ์ž… (์Šคํ”„๋ง ๋นˆ์—๋งŒ ํ•ด๋‹น)

@Component
public class OrderServiceImpl implements OrderService {
  private final MemberRepository memberRepository;
  private final DiscountPolicy discountPolicy;

  @Autowired
  public OrderServiceImpl(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
    this.memberRepository = memberRepository;
    this.discountPolicy = discountPolicy;
  }
}

 

 

์ˆ˜์ •์ž ์ฃผ์ž… (setter ์ฃผ์ž…)

setter๋ผ ๋ถˆ๋ฆฌ๋Š” ํ•„๋“œ์˜ ๊ฐ’์„ ๋ณ€๊ฒฝํ•˜๋Š” ์ˆ˜์ •์ž ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์˜์กด๊ด€๊ณ„ ์ฃผ์ž…

 

์‚ญ์ œ, ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ์„ฑ์ด ์žˆ๋Š” ์˜์กด๊ด€๊ณ„์— ์‚ฌ์šฉ

@Component
public class OrderServiceImpl implements OrderService {
  private MemberRepository memberRepository;
  private DiscountPolicy discountPolicy;

  @Autowired
  public void setMemberRepository(MemberRepository memberRepository) {
    this.memberRepository = memberRepository;
  }

  @Autowired
  public void setDiscountPolicy(DiscountPolicy discountPolicy) {
    this.discountPolicy = discountPolicy;
  }
}

@Autowired๋Š” ์ฃผ์ž…ํ•  ๋Œ€์ƒ์ด ์—†์œผ๋ฉด ์˜ค๋ฅ˜ ๋ฐœ์ƒ → ์ฃผ์ž…ํ•  ๋Œ€์ƒ์ด ์—†์–ด๋„ ๋™์ž‘ : @Autowired(required = false) ์ง€์ •

 

 

ํ•„๋“œ ์ฃผ์ž…

ํ•„๋“œ์— ๋ฐ”๋กœ ์ฃผ์ž…ํ•˜๋Š” ๋ฐฉ๋ฒ•

 

์ฝ”๋“œ ๊ฐ„๊ฒฐ but ์™ธ๋ถ€์—์„œ ๋ณ€๊ฒฝ์ด ๋ถˆ๊ฐ€๋Šฅํ•ด์„œ ํ…Œ์ŠคํŠธํ•˜๊ธฐ ์–ด๋ ค์›€

DI ํ”„๋ ˆ์ž„์›Œํฌ๊ฐ€ ์—†์œผ๋ฉด ์•„๋ฌด๊ฒƒ๋„ ํ•  ์ˆ˜ ์—†๋‹ค

๊ถŒ์žฅ X (์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์˜ ์‹ค์ œ ์ฝ”๋“œ์™€ ๊ด€๊ณ„ ์—†๋Š” ํ…Œ์ŠคํŠธ ์ฝ”๋“œ ๋˜๋Š” ์Šคํ”„๋ง ์„ค์ •์„ ๋ชฉ์ ์œผ๋กœ ํ•˜๋Š” @Configuration ๊ฐ™์€ ๊ณณ์—์„œ๋งŒ ํŠน๋ณ„ํ•œ ์šฉ๋„๋กœ ์‚ฌ์šฉ)

@Component
public class OrderServiceImpl implements OrderService {
  @Autowired private MemberRepository memberRepository;
  @Autowired private DiscountPolicy discountPolicy;
}

 

 

์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ ์ฃผ์ž…

์ผ๋ฐ˜ ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ ์ฃผ์ž…

 

ํ•œ๋ฒˆ์— ์—ฌ๋Ÿฌ ํ•„๋“œ ์ฃผ์ž…๋ฐ›์„ ์ˆ˜ ์žˆ๋‹ค

์ผ๋ฐ˜์ ์œผ๋กœ ์ž˜ ์‚ฌ์šฉ X

@Component
public class OrderServiceImpl implements OrderService {
  private MemberRepository memberRepository;
  private DiscountPolicy discountPolicy;
  
  @Autowired
  public void init(MemberRepository memberRepository, DiscountPolicy discountPolicy) {
    this.memberRepository = memberRepository;
    this.discountPolicy = discountPolicy;
  }
}
๋ฐ˜์‘ํ˜•

'๐Ÿ“ Spring > Lecture' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

์Šคํ”„๋ง์˜ ๋นˆ ์ƒ๋ช…์ฃผ๊ธฐ ์ฝœ๋ฐฑ ์ง€์›  (2) 2025.03.24
Annotation ์ง์ ‘ ์ƒ์„ฑ  (0) 2025.03.24
์กฐํšŒ ๋นˆ์ด 2๊ฐœ ์ด์ƒ์ผ ๋•Œ  (0) 2025.03.24
์Šคํ”„๋ง์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ  (0) 2025.03.23
์Šคํ”„๋ง ๊ฐ์ฒด ์ง€ํ–ฅ ์›๋ฆฌ  (0) 2025.03.23
'๐Ÿ“ Spring/Lecture' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€
  • Annotation ์ง์ ‘ ์ƒ์„ฑ
  • ์กฐํšŒ ๋นˆ์ด 2๊ฐœ ์ด์ƒ์ผ ๋•Œ
  • ์Šคํ”„๋ง์œผ๋กœ ์ „ํ™˜ํ•˜๊ธฐ
  • ์Šคํ”„๋ง ๊ฐ์ฒด ์ง€ํ–ฅ ์›๋ฆฌ
leee
leee
  • leee
    LEE
    leee
  • ์ „์ฒด
    ์˜ค๋Š˜
    ์–ด์ œ
    • ์นดํ…Œ๊ณ ๋ฆฌ
      • ๐Ÿ“ QA
        • Test
        • Lecture
      • ๐Ÿ“ SQL
        • ๐Ÿ“
      • ๐Ÿ“ Spring
        • Lecture
        • Error
      • ๐Ÿ“ Github
  • ๋ธ”๋กœ๊ทธ ๋ฉ”๋‰ด

    • ๐Ÿ 
  • ๋งํฌ

  • ๊ณต์ง€์‚ฌํ•ญ

  • ์ธ๊ธฐ ๊ธ€

  • ํƒœ๊ทธ

    Postman
    mismatch
    ์Šคํ”„๋ง ๊ฐ์ฒด์ง€ํ–ฅ
    mysql_๊ธฐ๊ฐ„_๊ฒ€์ƒ‰
    mysql_join
    MySQL
    DI ์ปจํ…Œ์ด๋„ˆ
    mysql_๋ฐ์ดํ„ฐํƒ€์ž…๋ณ€ํ™˜
    SQL_Join
    API Testing
    ๊นƒํ—ˆ๋ธŒ ์ธํ…”๋ฆฌ์ œ์ด ์—ฐ๋™ ํ•ด์ œ
    mysql_์—ฐ์‚ฐ์ž
    ์ƒ์„ฑ์ž์ฃผ์ž…
    AppConfig
    ํฌ์ŠคํŠธ๋งจ
    shift_์—ฐ์‚ฐ์ž
    API ์ž๋™ํ™” ํ…Œ์ŠคํŠธ
    API test
    COUNT(*)
    api ํ…Œ์ŠคํŠธ
  • ์ตœ๊ทผ ๋Œ“๊ธ€

  • ์ตœ๊ทผ ๊ธ€

  • hELLOยท Designed By์ •์ƒ์šฐ.v4.10.5
leee
์˜์กด๊ด€๊ณ„ ์ฃผ์ž…
์ƒ๋‹จ์œผ๋กœ

ํ‹ฐ์Šคํ† ๋ฆฌํˆด๋ฐ”