๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

spring43

Spring - ์ปดํฌ๋„ŒํŠธ ์Šค์บ” ์ปดํฌ๋„ŒํŠธ ์Šค์บ”์„ ์‚ฌ์šฉํ•˜๋ ค๋ฉด ๋จผ์ € @ComponentScan ์„ ์„ค์ • ์ •๋ณด์— ๋ถ™์—ฌ์ฃผ๋ฉด ๋œ๋‹ค. ๊ธฐ์กด์˜ AppConfig์™€๋Š” ๋‹ค๋ฅด๊ฒŒ @Bean์œผ๋กœ ๋“ฑ๋กํ•œ ํด๋ž˜์Šค๊ฐ€ ํ•˜๋‚˜๋„ ์—†๋‹ค! ์œ„ ์Šคํ”„๋ง ๋นˆ ์ €์žฅ์†Œ์—์„œ ๋นˆ ๊ฐ์ฒด๋ฅผ ๋ณด๋ฉด ์‹ฑ๊ธ€ํ†ค ์ปจํ…Œ์ด๋„ˆ์˜ ์—ญํ• ์„ @Component ์—์„œ ๊ธฐ๋ณธ์ ์œผ๋กœ ํ•ด์ค€๋‹ค๋Š”๊ฒƒ์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. @ComponentScan์—์„œ ํƒ์ƒ‰ํ•  ํŒจํ‚ค์ง€์˜ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜ ์žˆ๋‹ค. @ComponentScan( basePackages = "hello.core", } basePackages : ํƒ์ƒ‰ํ•  ํŒจํ‚ค์ง€์˜ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์ง€์ •ํ•œ๋‹ค. ์ด ํŒจํ‚ค์ง€๋ฅผ ํฌํ•จํ•ด์„œ ํ•˜์œ„ ํŒจํ‚ค์ง€๋ฅผ ๋ชจ๋‘ ํƒ์ƒ‰ํ•œ๋‹ค. basePackages = {"hello.core", "hello.service"} ์ด๋ ‡๊ฒŒ ์—ฌ๋Ÿฌ ์‹œ์ž‘ ์œ„์น˜๋ฅผ ์ง€์ •ํ•  ์ˆ˜๋„ ์žˆ๋‹ค. ba.. 2023. 7. 11.
Spring - ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด๊ณผ ์‹ฑ๊ธ€ํ†ค ์ปจํ…Œ์ด๋„ˆ ์‹ฑ๊ธ€ํ†ค ํŒจํ„ด ํด๋ž˜์Šค์˜ ์ธ์Šคํ„ด์Šค๊ฐ€ ๋”ฑ 1๊ฐœ๋งŒ ์ƒ์„ฑ๋˜๋Š” ๊ฒƒ์„ ๋ณด์žฅํ•˜๋Š” ๋””์ž์ธ ํŒจํ„ด์ด๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๋ฅผ 2๊ฐœ ์ด์ƒ ์ƒ์„ฑํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ง‰์•„์•ผ ํ•œ๋‹ค. private ์ƒ์„ฑ์ž๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์™ธ๋ถ€์—์„œ ์ž„์˜๋กœ new ํ‚ค์›Œ๋“œ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ๋ชปํ•˜๋„๋ก ๋ง‰์•„์•ผ ํ•œ๋‹ค. package hello.core.singleton; public class SingletonService { //1. static ์˜์—ญ์— ๊ฐ์ฒด๋ฅผ ๋”ฑ 1๊ฐœ๋งŒ ์ƒ์„ฑํ•ด๋‘”๋‹ค. private static final SingletonService instance = new SingletonService(); //2. public์œผ๋กœ ์—ด์–ด์„œ ๊ฐ์ฒด ์ธ์Šคํ„ด์Šค๊ฐ€ ํ•„์š”ํ•˜๋ฉด ์ด static ๋ฉ”์„œ๋“œ๋ฅผ ํ†ตํ•ด์„œ๋งŒ ์กฐํšŒํ•˜๋„๋ก ํ—ˆ์šฉํ•œ ๋‹ค. public static SingletonServi.. 2023. 7. 10.
Spring - BeanFactory์™€ ApplicationContext beanFactory์™€ ApplicationContext์— ๋Œ€ํ•ด์„œ ์•Œ์•„๋ณด์ž. BeanFactory ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์˜ ์ตœ์ƒ์œ„ ์ธํ„ฐํŽ˜์ด์Šค๋‹ค. ์Šคํ”„๋ง ๋นˆ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์กฐํšŒํ•˜๋Š” ์—ญํ• ์„ ๋‹ด๋‹นํ•œ๋‹ค. getBean() ์„ ์ œ๊ณตํ•œ๋‹ค. ์ง€๊ธˆ๊นŒ์ง€ ์šฐ๋ฆฌ๊ฐ€ ์‚ฌ์šฉํ–ˆ๋˜ ๋Œ€๋ถ€๋ถ„์˜ ๊ธฐ๋Šฅ์€ BeanFactory๊ฐ€ ์ œ๊ณตํ•˜๋Š” ๊ธฐ๋Šฅ์ด๋‹ค. ApplicationContext BeanFactory ๊ธฐ๋Šฅ์„ ๋ชจ๋‘ ์ƒ์†๋ฐ›์•„์„œ ์ œ๊ณตํ•œ๋‹ค. ๋นˆ์„ ๊ด€๋ฆฌํ•˜๊ณ  ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ธฐ๋Šฅ์„ BeanFactory๊ฐ€ ์ œ๊ณตํ•ด์ฃผ๋Š”๋ฐ, ๊ทธ๋Ÿฌ๋ฉด ๋‘˜์˜ ์ฐจ์ด๊ฐ€ ๋ญ˜๊นŒ? ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์„ ๊ฐœ๋ฐœํ•  ๋•Œ๋Š” ๋นˆ์„ ๊ด€๋ฆฌํ•˜๊ณ  ์กฐํšŒํ•˜๋Š” ๊ธฐ๋Šฅ์€ ๋ฌผ๋ก ์ด๊ณ , ์ˆ˜ ๋งŽ์€ ๋ถ€๊ฐ€๊ธฐ๋Šฅ์ด ํ•„์š”ํ•˜๋‹ค. ๋ฉ”์‹œ์ง€์†Œ์Šค๋ฅผ ํ™œ์šฉํ•œ ๊ตญ์ œํ™” ๊ธฐ๋Šฅ ์˜ˆ๋ฅผ ๋“ค์–ด์„œ ํ•œ๊ตญ์—์„œ ๋“ค์–ด์˜ค๋ฉด ํ•œ๊ตญ์–ด๋กœ, ์˜์–ด๊ถŒ์—์„œ ๋“ค์–ด์˜ค๋ฉด ์˜์–ด๋กœ ์ถœ๋ ฅ ํ™˜๊ฒฝ๋ณ€์ˆ˜ ๋กœ์ปฌ, ๊ฐœ๋ฐœ,.. 2023. 7. 9.
Spring - ์Šคํ”„๋ง ๋นˆ ์กฐํšŒ -๊ธฐ๋ณธ ์Šคํ”„๋ง ์ปจํ…Œ์ด๋„ˆ์—์„œ ์Šคํ”„๋ง ๋นˆ์„ ์ฐพ๋Š” ๊ฐ€์žฅ ๊ธฐ๋ณธ์ ์ธ ์กฐํšŒ ๋ฐฉ๋ฒ• ac.getBean(๋นˆ์ด๋ฆ„, ํƒ€์ž…) ac.getBean(ํƒ€์ž…) ์กฐํšŒ ๋Œ€์ƒ ์Šคํ”„๋ง ๋นˆ์ด ์—†์œผ๋ฉด ์˜ˆ์™ธ ๋ฐœ์ƒ NoSuchBeanDefinitionException: No bean named 'xxxxx' available public class ApplicationContextBasicFindTest { AnnotationConfigApplicationContext ac = new AnnotationConfigApplicationContext(AppConfig.class); @Test @DisplayName("๋นˆ ์ด๋ฆ„์œผ๋กœ ์กฐํšŒ") void findBeanByName(){ MemberService memberService = ac.getBea.. 2023. 7. 9.