spring43 Spring - ์คํ๋ง ์ปจํ ์ด๋์ ๋ฑ๋ก๋ ๋ชจ๋ ๋น ์กฐํ //ApplicationContextInfoTest.java package hello.core.beanfind; import hello.core.AppConfig; import org.junit.jupiter.api.DisplayName; import org.junit.jupiter.api.Test; import org.springframework.beans.factory.config.BeanDefinition; import org.springframework.context.annotation.AnnotationConfigApplicationContext; class ApplicationContextInfoTest { AnnotationConfigApplicationContext ac = new Anno.. 2023. 7. 9. Spring - ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ //์คํ๋ง ์ปจํ ์ด๋ ์์ฑ ApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); ApplicationContext๋ ์คํ๋ง ์ปจํฐ์ด๋์ด์, ์ธํฐํ์ด์ค์ด๋ค. ์คํ๋ง ์ปจํ ์ด๋๋ XML์ ๊ธฐ๋ฐ์ผ๋ก ๋ง๋ค ์ ์๊ณ , ์ ๋ ธํ ์ด์ ๊ธฐ๋ฐ์ ์๋ฐ ์ค์ ํด๋์ค๋ก ๋ง๋ค ์ ์๋ค. ์ฐธ๊ณ : ๋ ์ ํํ๋ ์คํ๋ง ์ปจํ ์ด๋๋ฅผ ๋ถ๋ฅผ ๋ BeanFactory , ApplicationContext ๋ก ๊ตฌ๋ถํด์ ์ด์ผ๊ธฐํ๋ค. BeanFactory ๋ฅผ ์ง์ ์ฌ์ฉํ๋ ๊ฒฝ์ฐ๋ ๊ฑฐ์ ์์ผ๋ฏ๋ก ์ผ๋ฐ์ ์ผ๋ก ApplicationContext ๋ฅผ ์คํ๋ง ์ปจํ ์ด๋๋ผ ํ๋ค. 1. ์คํ๋ง ์ปจํ ์ด๋ ์์ฑ new AnnotationConfigAppl.. 2023. 7. 9. Spring - ์ง๊ธ๊น์ง์ ์ ์ฒด ํ๋ฆ ์ ๋ฆฌ ์ง๊ธ๊น์ง์ ์ฝ๋ ์๋ก์ด ํ ์ธ ์ ์ฑ ๊ฐ๋ฐ ์๋ก์ด ํ ์ธ ์ ์ฑ ์ ์ฉ๊ณผ ๋ฌธ์ ์ (dip, ocp ์๋ฐ) ๊ด์ฌ์ฌ์ ๋ถ๋ฆฌ (์ถ์ํ์๋ง ์์กด, ๊ตฌ์ฒดํ์๋ ์์กด๋ ์๋๋ก) AppConfig ๋ฆฌํฉํฐ๋ง (์ ์ฒด ์ฑ์ ๊ตฌ์ฑํ๋ ๊ธฐ๋ฅ์ ๋ฐ๋ก appconfig๋ก ๋นผ๋ ) ์๋ก์ด ๊ตฌ์กฐ์ ํ ์ธ ์ ์ฑ ์ ์ฉ ์๋ก์ด ํ ์ธ ์ ์ฑ ๊ฐ๋ฐ ๋คํ์ฑ ๋๋ถ์ ์๋ก์ด ์ ๋ฅ ํ ์ธ ์ ์ฑ ์ฝ๋๋ฅผ ์ถ๊ฐ๋ก ๊ฐ๋ฐํ๋ ๊ฒ ์์ฒด๋ ์๋ฌด ๋ฌธ์ ๊ฐ ์์ ์๋ก์ด ํ ์ธ ์ ์ฑ ์ ์ฉ๊ณผ ๋ฌธ์ ์ ์๋ก ๊ฐ๋ฐํ ์ ๋ฅ ํ ์ธ ์ ์ฑ ์ ์ ์ฉํ๋ ค๊ณ ํ๋ ํด๋ผ์ด์ธํธ ์ฝ๋์ธ ์ฃผ๋ฌธ ์๋น์ค ๊ตฌํ์ฒด๋ ํจ๊ป ๋ณ๊ฒฝํด์ผํจ ์ฃผ๋ฌธ ์๋น์ค ํด๋ผ์ด์ธํธ๊ฐ ์ธํฐํ์ด์ค์ธ DiscountPolicy ๋ฟ๋ง ์๋๋ผ, ๊ตฌ์ฒด ํด๋์ค์ธ FixDiscountPolicy ๋ ํจ๊ป ์์กด -> DIP ์๋ฐ AppConfig ๋ฆฌํฉํฐ๋ง ๊ตฌ์ฑ .. 2023. 7. 7. Spring - DIP, OCP๋ฅผ ์งํค๋ ๋๋ฉ์ธ ์๋น์ค ๊ธฐ์กด ์ฝ๋๋ ์ด๋ ๊ฒ ์ถ์ํ์ ๊ตฌํ์ฒด์ ๋ชจ๋ ์์กดํ๊ณ ์์ง๋ง ์ด๋ฅผ ์์ฑ์๋ฅผ ํตํด์ ๋ถ๋ฆฌํด์ฃผ๋ฉด ์๋์ ๊ฐ์ ์ฝ๋๊ฐ ๋๋ฉด์ MemberServiceImpl์์๋ MemoryMemberRepository()์ธ ๊ตฌํ์ฒด์ ๋ํด์๋ ์์กดํ์ง ์๊ธฐ ๋๋ฌธ์, DIP๋ฅผ ์๋ฐํ์ง ์๊ฒ๋๋ค. ๋์ AppConfig์์ MemberService์ธํฐํ์ด์ค๋ ๊ทธ์ ๊ตฌํ์ฒด์ธ MemberServiceImpl์ ๋ถ๋ฅด๊ณ , ๊ตฌํ์ฒด๋ฅผ ๋ถ๋ฅผ๋ ์ธ์๋ฅผ ํตํด MemoryMemberRepository๋ฅผ ์์ฑํด์ ๋ฃ์ด์ฃผ๊ฒ ๋๋ค. (์์ฑ์ ์ฃผ์ ) ์ค๊ณ ๋ณ๊ฒฝ์ผ๋ก MemberServiceImpl ์ MemoryMemberRepository ๋ฅผ ์์กดํ์ง ์๋๋ค! ๋จ์ง MemberRepository ์ธํฐํ์ด์ค๋ง ์์กดํ๋ค. MemberServiceImpl ์ ์ฅ.. 2023. 7. 7. ์ด์ 1 ยทยทยท 3 4 5 6 7 8 9 ยทยทยท 11 ๋ค์