๐ ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์์กด๊ด๊ณ ์๋ ์ฃผ์
- ์คํ๋ง ๋น์ ๋ฑ๋กํ ๋๋ ์๋ฐ ์ฝ๋์ @Bean์ด๋ XML์ <bean> ๋ฑ์ ํตํด์ ์ค์ ์ ๋ณด์ ์ง์ ๋ฑ๋กํ ์คํ๋ง ๋น์ ๋์ดํ๋ ๋ฐฉ์์ด ์๋ค.
- ํ์ง๋ง ์ด๋ ๊ฒ ๋ฑ๋กํด์ผ ํ ์คํ๋ง ๋น์ด ์์ญ, ์๋ฐฑ ๊ฐ๊ฐ ๋๋ฉด ์ผ์ผํ ๋ฑ๋กํ๊ธฐ๋ ๊ท์ฐฎ๊ณ , ์ค์ ์ ๋ณด๋ ์ปค์ง๊ณ .. ์ด๋ฐ ์ ๋ฐ ๋จ์ ๋ค์ด ๋ง์ง๋ง,,,, ๋ฌด์๋ณด๋ค ๊ท์ฐฎ๋ค ;
- ๊ทธ๋์ ์คํ๋ง์ด ์ ๊ณตํ๋ ๊ฒ์ด ์ปดํฌ๋ํธ ์ค์บ ComponentScan ์ด๋ค.
- ์ฌ๊ธฐ์ ์์กด ๊ด๊ณ๋ ์๋์ผ๋ก ์ฃผ์ ํด์ฃผ๋ @Autowired๋ผ๋ ๊ธฐ๋ฅ๋ ์ ๊ณตํ๋ค.
- ์ปดํฌ๋ํธ ์ค์บ์ ์ฌ์ฉํ๋ ค๋ฉด ๋จผ์ @ComponenetScan์ ์ค์ ์ ๋ณด์ ๋ถ์ฌ์ฃผ๋ฉด ๋๋ค.
- ๊ธฐ์กด์ AppConfig์๋ ๋ค๋ฅด๊ฒ @Bean์ผ๋ก ๋ฑ๋กํ ํด๋์ค๊ฐ ํ๋๋ ์๋ค.
์ฐธ๊ณ ์ปดํฌ๋ํธ ์ค์บ์ ์ฌ์ฉํ๋ฉด @Configuration์ด ๋ถ์ ์ค์ ์ ๋ณด๋ ์๋์ผ๋ก ๋ฑ๋ก๋๊ธฐ ๋๋ฌธ์, AppConfig, TestConfig ๋ฑ ์์ ๋ง๋ค์ด๋์๋ ์ค์ ์ ๋ณด๋ ํจ๊ป ๋ฑ๋ก๋๊ณ , ์คํ๋์ด ๋ฒ๋ฆฐ๋ค. ๊ทธ๋์ excludeFilters๋ฅผ ์ด์ฉํด์ ์ค์ ์ ๋ณด๋ ์ปดํฌ๋ํธ ์ค์บ ๋์์์ ์ ์ธํ๋ค. ๋ณดํต ์ค์ ์ ๋ณด๋ฅผ ์ปดํฌ๋ํธ ์ค์บ ๋์์์ ์ ์ธํ์ง๋ ์์ง๋ง, ์ํฉ์ ์ฌ๊ธฐ์๋ ์ด ๋ฐฉ๋ฒ์ ํํ๋ค.
- ์ปดํฌ๋ํธ ์ค์บ์ ์ด๋ฆ ๊ทธ๋๋ก @Component ์ ๋ ธํ ์ด์ ์ด ๋ถ์ ํด๋์ค๋ฅผ ์ค์บํด์ ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋กํ๋ค.
์ฐธ๊ณ @Configuration์ด ์ปดํฌ๋ํธ ์ค์บ์ ๋์์ด ๋ ์ด์ ๋ @Configuration ์์ค ์ฝ๋๋ฅผ ์ด์ด๋ณด๋ฉด @Component ์ ๋ ธํ ์ด์ ์ด ๋ถ์ด์๊ธฐ ๋๋ฌธ์ด๋ค.
- ๋น์ผ๋ก ๋ฑ๋กํ ํด๋์ค์ @Component ์ถ๊ฐํ๋ค.
- @Bean์ผ๋ก ์ง์ ์ค์ ์ ๋ณด๋ฅผ ์์ฑํ๋ฉด, ์์กด๊ด๊ณ๋ ์ง์ ๋ช ์ํด์ผํ๋ค. ํ์ฌ AppConfig์๋ ์ด๋ฐ ์ค์ ์ ๋ณด ์์ฒด๊ฐ ์๊ธฐ ๋๋ฌธ์, ์์กด๊ด๊ณ ์ฃผ์ ๋ ์ด ํด๋์ค ์์์ ํด๊ฒฐํด์ผ ํ๋ค.
- @Autowired๋ ์์กด๊ด๊ณ๋ฅผ ์๋์ผ๋ก ์ฃผ์ ํด์ค๋ค. ์์ฑ์์์ ์ฌ๋ฌ ์์กด ๊ด๊ณ๋ ํ๋ฒ์ ์ฃผ์ ๋ฐ์ ์ ์๋ค.
- AnnotationConfigApplicationContext๋ฅผ ์ฌ์ฉํ๋ ๊ฒ์ ๊ธฐ์กด๊ณผ ๋์ผํ๋ค.
- ์คํ ์ ๋ณด๋ก AutoAppConfig ํด๋์ค๋ฅผ ๋๊ฒจ์ค๋ค.
์ปดํฌ๋ํธ ์ค์บ๊ณผ ์๋ ์์กด๊ด๊ณ ์ฃผ์ ์ด ์ด๋ป๊ฒ ๋์ํ๋์ง ๊ทธ๋ฆผ์ผ๋ก ์ดํด๋ณด๋ฉด ๋ค์๊ณผ ๊ฐ๋ค.
1. @ComponentScan
- @ComponentScan์ @Component๊ฐ ๋ถ์ ๋ชจ๋ ํด๋์ค๋ฅผ ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋กํ๋ค.
- ์ด๋ ์คํ๋ง ๋น์ ๊ธฐ๋ณธ ์ด๋ฆ์ ํด๋์ค๋ช ์ ์ฌ์ฉํ๋ ๋งจ ์๊ธ์๋ง ์๋ฌธ์๋ฅผ ์ฌ์ฉํ๋ค.
๋น ์ด๋ฆ ๊ธฐ๋ณธ ์ ๋ต : MemberServlceImpl ํด๋์ค -> memberServiceImpl
๋น ์ด๋ฆ ์ง์ ์ง์ : ๋ง์ฝ ์คํ๋ง ๋น์ ์ด๋ฆ์ ์ง์ ์ง์ ํ๊ณ ์ถ์ผ๋ฉด
@Component("memberService2")์ด๋ฐ ์์ผ๋ก ์ด๋ฆ์ ๋ถ์ฌํ๋ฉด ๋๋ค.
2. @Autowired ์์กด๊ด๊ณ ์๋ ์ฃผ์
- ์์ฑ์์ @Autowired๋ฅผ ์ง์ ํ๋ฉด, ์คํ๋ง ์ปจํ ์ด๋๊ฐ ์๋์ผ๋ก ํด๋น ์คํ๋ง ๋น์ ์ฐพ์์ ์ฃผ์ ํ๋ค.
- ์ด๋ ๊ธฐ๋ณธ ์กฐํ ์ ๋ต์ ํ์ ์ด ๊ฐ์ ๋น์ ์ฐพ์์ ์ฃผ์ ํ๋ค.
getBean(MemberRepository.class)์ ๋์ผํ๋ค๊ณ ์ดํดํ๋ฉด๋๋ค.
- ์์ฑ์์ ํ๋ผ๋ฏธํฐ๊ฐ ๋ง์๋ ๋ค ์ฐพ์์ ์๋์ผ๋ก ์ฃผ์ ํ๋ค.
'์ด๋ก > Spring' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Spring Boot] Spring Security (0) | 2021.08.15 |
---|---|
[Spring Boot] Spring MVC ๊ตฌ์กฐ / ํธ๋ค๋ฌ ๋งคํ๊ณผ ํธ๋ค๋ฌ ์ด๋ํฐ (0) | 2021.08.08 |
[Spring] @Configuration๊ณผ ๋ฐ์ดํธ์ฝ๋ ์กฐ์ (0) | 2021.07.26 |
[Spring] BeanFactory์ ApplicationContext / ์คํ๋ง ์ปจํ ์ด๋ (0) | 2021.07.25 |
[Spring] ์คํ๋ง ์ปจํ ์ด๋์ ๋ฑ๋ก๋ ๋น ์กฐํ / Bean ์กฐํ / ์ถ๋ ฅ (0) | 2021.07.24 |