spring43 Spring - ๋น ์๋ช ์ฃผ๊ธฐ ์ฝ๋ฐฑ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ปค๋ฅ์ ํ์ด๋, ๋คํธ์ํฌ ์์ผ์ฒ๋ผ ์ ํ๋ฆฌ์ผ์ด์ ์์ ์์ ์ ํ์ํ ์ฐ๊ฒฐ์ ๋ฏธ๋ฆฌ ํด๋๊ณ , ์ ํ๋ฆฌ์ผ์ด์ ์ข ๋ฃ ์์ ์ ์ฐ๊ฒฐ์ ๋ชจ๋ ์ข ๋ฃํ๋ ์์ ์ ์งํํ๋ ค๋ฉด, ๊ฐ์ฒด์ ์ด๊ธฐํ์ ์ข ๋ฃ ์์ ์ด ํ์ํ๋ค. ์คํ๋ง ๋น์ ๊ฐ๋จํ๊ฒ ๋ค์๊ณผ ๊ฐ์ ๋ผ์ดํ์ฌ์ดํด์ ๊ฐ์ง๋ค. ๊ฐ์ฒด ์์ฑ โก๏ธ ์์กด๊ด๊ณ ์ฃผ์ ์คํ๋ง ๋น์ ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , ์์กด๊ด๊ณ ์ฃผ์ ์ด ๋ค ๋๋ ๋ค์์์ผ ํ์ํ ๋ฐ์ดํฐ๋ฅผ ์ฌ์ฉํ ์ ์๋ ์ค๋น๊ฐ ์๋ฃ๋๋ค. ๋ฐ๋ผ์ ์ด๊ธฐํ ์์ ์ ์์กด๊ด๊ณ ์ฃผ์ ์ด ๋ชจ๋ ์๋ฃ๋๊ณ ๋ ๋ค์์ ํธ์ถํด์ผ ํ๋ค. ๊ทธ๋ฐ๋ฐ ๊ฐ๋ฐ์๊ฐ ์์กด๊ด๊ณ ์ฃผ์ ์ด ๋ชจ๋ ์๋ฃ๋ ์์ ์ ์ด๋ป๊ฒ ์ ์ ์์๊น? ์คํ๋ง์ ์์กด๊ด๊ณ ์ฃผ์ ์ด ์๋ฃ๋๋ฉด ์คํ๋ง ๋น์๊ฒ ์ฝ๋ฐฑ ๋ฉ์๋๋ฅผ ํตํด์ ์ด๊ธฐํ ์์ ์ ์๋ ค์ฃผ๋ ๋ค์ํ ๊ธฐ๋ฅ์ ์ ๊ณตํ๋ค. ๋ํ ์คํ๋ง์ ์คํ๋ง ์ปจํ ์ด๋๊ฐ .. 2023. 7. 16. Spring - ์๋๊ณผ ์๋ ์ฃผ์ ์ ์ฌ๋ฐ๋ฅธ ์ด์ ๊ธฐ์ค ์๋ ์ฃผ์ ๊ธฐ๋ฅ ๋งค์ฐ ํธ๋ฆฌํ๋ค. ๊ทธ๋ฌ๋ฉด ์ด๋ค ๊ฒฝ์ฐ์ ์ปดํฌ๋ํธ ์ค์บ๊ณผ ์๋ ์ฃผ์ ์ ์ฌ์ฉํ๊ณ , ์ด๋ค ๊ฒฝ์ฐ์ ์ค์ ์ ๋ณด๋ฅผ ํตํด์ ์๋์ผ๋ก ๋น์ ๋ฑ๋กํ๊ณ , ์์กด๊ด๊ณ๋ ์๋์ผ๋ก ์ฃผ์ ํด์ผ ํ ๊น? ์คํ๋ง์ @Component ๋ฟ๋ง ์๋๋ผ @Controller , @Service , @Repository ์ฒ๋ผ ๊ณ์ธต์ ๋ง์ถ์ด ์ผ๋ฐ์ ์ธ ์ ํ๋ฆฌ์ผ์ด์ ๋ก์ง์ ์๋์ผ๋ก ์ค์บํ ์ ์๋๋ก ์ง์ํ๋ค. ๊ฑฐ๊ธฐ์ ๋ํด์ ์ต๊ทผ ์คํ๋ง ๋ถํธ๋ ์ปดํฌ๋ํธ ์ค์บ์ ๊ธฐ๋ณธ์ผ๋ก ์ฌ์ฉํ๊ณ , ์คํ๋ง ๋ถํธ์ ๋ค์ํ ์คํ๋ง ๋น๋ค๋ ์กฐ๊ฑด์ด ๋ง์ผ๋ฉด ์๋์ผ๋ก ๋ฑ๋กํ๋๋ก ์ค๊ณํ๋ค. ์ค์ ์ ๋ณด๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ฑํ๋ ๋ถ๋ถ๊ณผ ์ค์ ๋์ํ๋ ๋ถ๋ถ์ ๋ช ํํ๊ฒ ๋๋๋๊ฒ์ด ์ด์์ ์ด์ง๋ง, ๊ฐ๋ฐํ๋ ์ ์ฅ์์ ์คํ๋ง ๋น์ ํ๋ ๋ฑ๋กํ ๋ @Component๋ง ๋ฃ์ด์ฃผ๋ฉด ๋.. 2023. 7. 16. Spring - ์กฐํํ ๋น์ด ๋ชจ๋ ํ์ํ ๋๋ List์ Map ์ฌ์ฉ ์๋์ ์ผ๋ก ์ ๋ง ํด๋น ํ์ ์ ์คํ๋ง ๋น์ด ๋ค ํ์ํ ๊ฒฝ์ฐ๋ ์๋ค. ์๋ฅผ ๋ค์ด์ ํ ์ธ ์๋น์ค๋ฅผ ์ ๊ณตํ๋๋ฐ, ํด๋ผ์ด์ธํธ๊ฐ ํ ์ธ์ ์ข ๋ฅ(rate, fix)๋ฅผ ์ ํํ ์ ์๋ค๊ณ ๊ฐ์ ํด๋ณด ์. ์คํ๋ง์ ์ฌ์ฉํ๋ฉด ์์ ๋งํ๋ ์ ๋ต ํจํด์ ๋งค์ฐ ๊ฐ๋จํ๊ฒ ๊ตฌํํ ์ ์๋ค. public class AllBeanTest { @Test void findAllBean(){ ApplicationContext ac = new AnnotationConfigApplicationContext(AutoAppConfig.class, DiscountService.class); DiscountService discountService = ac.getBean(DiscountService.class); Member member = new Mem.. 2023. 7. 16. Spring - ์กฐํ ๋น 2๊ฐ ์ด์์ผ๋ @Autowired ๋ ํ์ (Type)์ผ๋ก ์กฐํํ๋ค. DiscountPolicy ์ ํ์ ํ์ ์ธ FixDiscountPolicy , RateDiscountPolicy ๋๋ค ์คํ๋ง ๋น์ผ๋ก ์ ์ธ ํด๋ณด์. ๊ทธ๋ฆฌ๊ณ ์ด๋ ๊ฒ ์์กด ๊ด๊ณ ์๋ ์ฃผ์ ์ ์คํํ๋ฉด NoUniqueBeanDefinitionException ์ค๋ฅ๊ฐ ๋ฐ์ํ๋ค. NoUniqueBeanDefinitionException: No qualifying bean of type 'hello.core.discount.DiscountPolicy' available: expected single matching bean but found 2: fixDiscountPolicy,rateDiscountPolicy ใด ์ค๋ฅ๋ฉ์์ง๊ฐ ์น์ ํ๊ฒ๋ ํ๋์ ๋น์ ๊ธฐ๋ํ๋๋ฐ fi.. 2023. 7. 14. ์ด์ 1 2 3 4 5 6 ยทยทยท 11 ๋ค์