[TIL] Component Scan
๐ช๐ป Component Scan : ์ปดํฌ๋ํธ ์ค์บ
โช๏ธ ํํฐ
โธ includeFilters
: ์ปดํฌ๋ํธ ์ค์บ ๋์์ ์ถ๊ฐ๋ก ์ง์
โธ excludeFilters
: ์ปดํฌ๋ํธ ์ค์บ์์ ์ ์ธํ ๋์ ์ง์
โธ Filter Type ์ต์
โ ANNOTATION : ์ ๋ํ ์ด์ ์ผ๋ก ์ธ์ํ์ฌ ๋์
โก ASSIGNABLE_TYPE : ์ง์ ํ ํ์ ๊ณผ ์์ ํ์ ์ ์ธ์ํด์ ๋์
โข ASPECTJ : AspectJ ํจํด ์ฌ์ฉ
โฃ REGEX : ์ ๊ทํํ์์ ๋ํ๋
โค CUSTOM : TypeFilter๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ๊ตฌํํด์ ์ฒ๋ฆฌ
โธ ApplicationContext
- ์คํ๋ง ์ปจํ ์ด๋
- ๊ธฐ์กด์ AppConfig๋ฅผ ์ฌ์ฉํด์ ์ง์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ ์์กด ์ฃผ์ ํ๋ ๊ฒ์ ์คํ๋ง ์ปจํ ์ด๋๋ฅผ ํตํด ์์กด์ฃผ์
- ์คํ๋ง ์ปจํ ์ด๋๋ @Configuration์ด ๋ถ์ AppConfig๋ฅผ ์ค์ ์ ๋ณด๋ก ์ฌ์ฉ
- @Bean์ด ์ ํ ๋ฉ์๋๋ฅผ ๋ชจ๋ ํธ์ถํด์ ๋ฐํ๋ ๊ฐ์ฒด๋ฅผ ์คํ๋ง ์ปจํ ์ด๋์ ๋ฑ๋ก
๐ก ์ปดํฌ๋ํธ ์ค์บ @Autowired ์ฅ์
- ์คํ๋ง ๋น์ ์๋์ผ๋ก ์ฐพ์ ์์ฑํด์ค
- ์ง์ @Bean์ ํตํด ์ค์ ์ ๋ณด๋ฅผ ์์ฑํ๊ณ ์์กด ๊ด๊ณ ๋ช ์ํ๋ ๊ฒ์ ํด๋์ค ์์์ ํด๊ฒฐ
โธ @Configuration
- @Component๊ฐ ์ ์ฉ๋์ด ์์ด ์ปดํฌ๋ํธ ์ค์บํ ๋ ์๋์ผ๋ก ์คํ๋ง ๋น์ผ๋ก ๋ฑ๋ก
โธ @Autowired
- @ComponentScan๊ณผ @Component๋ง ์ฌ์ฉํ์ ๋์ AppConfig์ ์ด๋ค ์์กด ๊ฐ์ฒด๋ฅผ ์ฃผ์ ํ ์ง ๋ช ์ํด์ฃผ์ง X
→ @Autowired๋ฅผ ํตํด ์์กด ๊ด๊ณ ์ฃผ์