@Bean๊ณผ xml์ ์ด์ฉํด์ ๋น์ ๋ฑ๋กํ ์ ์์์ง๋ง, ์ด ๋ฐฉ๋ฒ์ ์ฌ์ฉํ๊ฒ ๋๋ฉด ๋ฑ๋กํด์ผ ํ ๋น์ด ๋ง์ ๋ ๋ฒ๊ฑฐ๋ก์ ์ง๋ค.
@Conponent ์ด๋ ธํ ์ด์ ์ ์ฌ์ฉํ๋ฉด ์ฝ๊ฒ ๋น์ ๋ฑ๋กํ ์ ์๊ฒ ๋๋ค.
โ ์์กด๊ด๊ณ๋ @Autowired ์ด๋ ธํ ์ด์ ์ผ๋ก ํด๊ฒฐํ๋ค.
[ @Component ์ ๋ ธํ ์ด์ ์ถ๊ฐ ]
@Configuration
@ComponentScan
public class AutoAppConfig {}
๋จผ์ AppConfig๋ฅผ ๋ง๋ค๊ณ , @Configuration๊ณผ @Component๋ฅผ ๋ถ์ฌ์ค๋ค.
์ค์ํ ๊ฑด ์ด ํด๋์ค๋ package hello.core; ์ ๋ง๋ค์ด์ผ ํ๋ค!
๋ง๋ ์์น์ ํ์ ํด๋๋ฅผ ๊ฒ์ํ๊ธฐ ๋๋ฌธ์ด๋ค.
์ ์ฌ์ง ์ฒ๋ผ ์ปดํฌ๋ํธ ์ค์บ ๋์์ด ๋์ด์ผ ํ ํด๋์ค์ ์ปดํฌ๋ํธ ์ ๋ ธํ ์ด์ ์ ๋ถ์ฌ์ค๋ค.
๊ทธ๋ผ ์์กด ๊ด๊ณ๋ ์ด๋ป๊ฒ ์ค์ ํด์ผ ํ ๊น?
@Bean์ ๊ฒฝ์ฐ์๋
@Bean
public MemberService memberService() {
return new MemberServiceImpl(memberRepository());
}
@Bean
public MemoryMemberRepository memberRepository() {
return new MemoryMemberRepository();
}
์ง์ ์ด๋ ๊ฒ ์์กด๊ด๊ณ๋ฅผ ์ค์ ํด์คฌ์ง๋ง, ์ปดํฌ๋ํธ ์ค์บ์ ์ฌ์ฉํ ๊ฒฝ์ฐ์๋ @Autowired๋ฅผ ์ฌ์ฉํด์ค๋ค.
@Autowired //์์กด๊ด๊ณ ์๋ ์ฃผ์
public MemberServiceImpl(MemberRepository memberRepository) {
this.memberRepository = memberRepository;
}
์ด๋ ๊ฒ ์์กด๊ด๊ณ๋ฅผ ๋ํ๋ด์ผํ๋ ๋ถ๋ถ์ ๋ถ์ฌ์ฃผ๋ฉด ๋๋ค.
[ ํํฐ(Filter) ]
- includeFilters : ์ปดํฌ๋ํธ ์ค์บ ๋์์ ์ถ๊ฐ๋ก ์ง์ ํ๋ค.
- excludeFilters : ์ปดํฌ๋ํธ ์ค์บ์์ ์ ์ธํ ๋์์ ์ง์ ํ๋ค.
excludeFilters๋ฅผ ์ง์ ํ ๋น์ ๊บผ๋ด๊ฒ ๋ ๊ฒฝ์ฐ์๋ NoSuchBeanDefinitionException ์๋ฌ๊ฐ ๋ฐ์ํ๋ค.
์ค๋ฌด์์๋ includeFilters๋ฅผ ๊ฑฐ์ ์ฌ์ฉํ์ง ์๋๋ค๊ณ ํ๋ค.
[ ์ค๋ณต & ์ถฉ๋ ]
๋น์ ์๋์ผ๋ก ๋ฑ๋กํ ๊ฒฝ์ฐ์ ์๋์ผ๋ก ๋ฑ๋กํ ๊ฒฝ์ฐ์, ์ด๋ฆ์ด ๊ฐ์ผ๋ฉด ์ค๋ณต์ด ๋๊ณ , ์ถฉ๋์ด ๋ฐ์ํ ์ ์๋ค.
๊ธฐ๋ณธ์ ์ผ๋ก๋ ์๋์ผ๋ก ๋ฑ๋กํ ๋น์ด ์๋์ผ๋ก ๋ฑ๋กํ ๋น๋ณด๋ค ์ฐ์ ์์๊ฐ ๋์์ ์๋๋น์ด ์๋๋น์ ์ค๋ฒ๋ผ์ด๋ฉ ํด๋ฒ๋ฆฌ๊ฒ ๋๋ค.
ํ์ง๋ง ์คํ๋ง๋ถํธ์์๋ ์ด๋ฌํ ํผ๋์ ๋ง๊ธฐ์ํด์ ์ค๋ณต์ ๊ธ์งํ๋ค!!
์ด๋ฐ ๋ฒ๊ทธ๋ ๋ฐ๊ฒฌํ๊ธฐ๋ ์ด๋ ต๊ธฐ๋๋ฌธ์ ์ ์ด์ ์ด๋ฐ ์ฝ๋๋ฅผ ์ง์ง ์๋ ๊ฒ์ด ์ค์ํ๋ค.
CoreApplication ํด๋์ค๋ฅผ ์คํ์์ผ๋ณด๋ฉด ์ค๋ฅ ๋ฉ์ธ์ง๊ฐ ๋ฌ๋ค.
๋ง์ฝ ์ค๋ฒ๋ผ์ด๋ฉ์ ํ๋ฝํ๋ค๋ฉด application.properties์ Action๋ฌธ๊ตฌ๋ฅผ ๋ณต๋ถํ๋ฉด ๋๋ค.
ํ์ง๋ง ์ด๊ฑด ์ข์ง ์์ผ๋ ์ฌ์ฉํ์ง ์๋ ๊ฒ์ด ์ข๋ค.
@Bean ์ฌ์ฉํ๋ ๊ฒ๋ ํ๋ช ์ ์ด๋ค...! ๋ผ๊ณ ์๊ฐํ๋๋ฐ ์ด๊ฒ๋ณด๋ค ๋ ๊ฐ๊ฒฐํ @Component๊ฐ ์๋ค๋ ์ ๊ธฐํ๋ค,,
๋จธ๋ฆฟ์์ด ๋ณต์กํ๋ค! ์ฌ๋ฌ๋ฒ ๋ฐ๋ณตํ๊ณ ์ฐ์ตํด์ผ์ง ูฉฬ(ห•อ ๊ด •อห)ู
์ด ๊ธ์ ์ธํ๋ฐ์ ๊น์ํ ๊ฐ์ฌ๋ spring ํต์ฌ์๋ฆฌ-๊ธฐ๋ณธํธ ๊ฐ์๋ฅผ ๋ณด๊ณ ์์ฑ๋ ๋ณต์ต ํฌ์คํ ์ ๋๋ค.
'Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Spring ํต์ฌ์๋ฆฌ-๊ธฐ๋ณธ[ ๋น ์๋ช ์ฃผ๊ธฐ ์ฝ๋ฐฑ] (0) | 2021.07.17 |
---|---|
Spring ํต์ฌ์๋ฆฌ-๊ธฐ๋ณธ [@Autowired/@Qualifier/@Primary] (0) | 2021.07.16 |
Spring ๊ธฐ๋ณธ [ ์ฑ๊ธํค/์คํ๋ง์ปจํ ์ด๋] (0) | 2021.07.11 |
Spring ๊ธฐ๋ณธ [์คํ๋ง๋น ์กฐํ] (0) | 2021.07.09 |
Spring ๊ธฐ๋ณธ [ํ ์ธ์ ์ฑ ๋ณ๊ฒฝ/๊ฐ์ฒด ์งํฅ ์๋ฆฌ ์ ์ฉ/DI/์คํ๋ง์ปจํ ์ด๋] (0) | 2021.07.08 |