์ธํ๋ฐ ์คํ๋ง ํต์ฌ ์๋ฆฌ ๊ธฐ๋ณธํธ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
์์ฑ์ ์ฃผ์
์์ฑ์๋ฅผ ํตํด์ ์์กด ๊ด๊ณ ์ฃผ์
์์ฑ์ ํธ์ถ ์์ ์ ๋ฑ 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 |
