์ธํ๋ฐ ์คํ๋ง ํต์ฌ ์๋ฆฌ ๊ธฐ๋ณธํธ์ ์ ๋ฆฌํ ๊ธ์ ๋๋ค.
@Configuration
public class AppConfig {
@Bean
public OrderService orderService() {
return new OrderServiceImpl(memberRepository(), discountPolicy());
}
@Bean
public MemberRepository memberRepository() {
return new MemoryMemberRepository();
}
@Bean
public DiscountPolicy discountPolicy() {
return new FixDiscountPolicy();
}
}
public class OrderApp {
public static void main(String[] args) {
ApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class);
MemberService memberService = ac.getBean("memberService", MemberService.class);
OrderService orderService = ac.getBean("orderService", OrderService.class);
...
}
}
์คํ๋ง ์ปจํ ์ด๋ = ApplicationContext
์คํ๋ง ์ปจํ ์ด๋๋ @Configuration์ด ๋ถ์ AppConfig๋ฅผ ์ค์ (๊ตฌ์ฑ) ์ ๋ณด๋ก ์ฌ์ฉ
์ฌ๊ธฐ์ @Bean(์คํ๋ง ๋น)์ด๋ผ ์ ํ ๋ฉ์๋๋ฅผ ๋ชจ๋ ํธ์ถํด์ ๋ฐํ๋ ๊ฐ์ฒด๋ฅผ ์คํ๋ง ์ปจํ ์ด๋์ ๋ฑ๋ก
๊ธฐ์กด์๋ AppConfig๋ฅผ ์ฌ์ฉํด์ ์ง์ ์กฐํ → ์คํ๋ง ์ปจํ ์ด๋๋ฅผ ํตํด์ ํ์ํ ์คํ๋ง ๋น(๊ฐ์ฒด)๋ฅผ ์ฐพ๊ธฐ (ApplicationContext.getBean() ๋ฉ์๋)
๋ฐ์ํ
'๐ Spring > Lecture' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
| ์คํ๋ง์ ๋น ์๋ช ์ฃผ๊ธฐ ์ฝ๋ฐฑ ์ง์ (2) | 2025.03.24 |
|---|---|
| Annotation ์ง์ ์์ฑ (0) | 2025.03.24 |
| ์กฐํ ๋น์ด 2๊ฐ ์ด์์ผ ๋ (0) | 2025.03.24 |
| ์์กด๊ด๊ณ ์ฃผ์ (0) | 2025.03.24 |
| ์คํ๋ง ๊ฐ์ฒด ์งํฅ ์๋ฆฌ (0) | 2025.03.23 |
