- AppConfig ํ์ผ์ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ฒด๋ฅผ ๊ตฌ์ฑํ๊ณ ์ค์ ํ๋ค.
- AppConfig ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ค์ ๋์์ ํ์ํ '๊ตฌํ ๊ฐ์ฒด' ๋ฅผ ์์ฑํ๋ค.
AppConfig๋ ์์ฑํ ๊ฐ์ฒด ์ธ์คํด์ค์ ์ฐธ์กฐ(๋ ํผ๋ฐ์ค)๋ฅผ ์์ฑ์๋ฅผ ํตํด์ ์ฃผ์ (์ฐ๊ฒฐ)ํด์ค๋ค.
- MemberServiceImpl ์์ MemoryMemberRepository() ์ฐ๊ฒฐ
- OrderServiceImpl ์์ MemoryMemberRepository() ์ FixDiscountPolicy() ์ฐ๊ฒฐ
service == interface
MemberService ๋ ์ธํฐํ์ด์ค ์ด๊ณ , MemberSerivce๋ฅผ ๊ตฌํํ๋๊ฒ์ด MemberSerivceImpl ์ด๋ค.
MemberSerivceImpl ๋ MemberReository๋ผ๋ ์ธํฐํ์ด์ค๋ฅผ ์์กดํ๋ค.
Appconfig ๊ฐ MemberSerivceImpl ๊ฐ์ฒด๋ฅผ ์์ฑํ๊ณ , ๋
MemberSerivceImpl ๊ฐ ์์ฑํ๋ MemoryMemberReposioty ๋ AppConfig ๊ฐ ์์ฑํ๋ค.
๊ฐ์ฒด์ ์์ฑ๊ณผ ์ฐ๊ฒฐ์ Appconfig ๊ฐ ๋ด๋นํ๋ค.
OrderServiceImpl ์์ฑ์ ์ฃผ์
1. ์ค๊ณ ๋ณ๊ฒฝ์ผ๋ก OrderSerivceImpl ์ FixDiscountPolicy ๋ฅผ ์์กดํ์ง ์๋๋ค.
2. ๋จ์ง DiscountPolicy ์ธํฐํ์ด์ค ๋ง ์์กดํ๋ค.
3. OrderServiceImpl ์ ์ฅ์์ ์์ฑ์๋ฅผ ํตํด ์ด๋ค ๊ตฌํ ๊ฐ์ฒด๊ฐ ๋ค์ด์ฌ์ง (์ฃผ์ ๋ ์ง) ์ ์ ์๋ค.
=> ์ด๋ง์ ์ฆ, ๋ก๋ฏธ์ค์ ์ค๋ฆฌ์ฃ ๊ณต์ฐ์ ์๋ก ๋ค๋ฉด, ์ด๋ค ๋ฐฐ์ฐ๊ฐ ๋ก๋ฏธ์ค ์ญํ ์ ๋งก์์ง ์ ์ ์๋ค. ๊ทธ์ ๋ก๋ฏธ์ค ์ญํ ์ด ์๋ค๋ ๊ฒ๋ง ์ธ์ง ํ ๋ฟ.
4. OrderServiceImpl์ ์์ฑ์๋ฅผ ํตํด ์ด๋ค ๊ตฌํ ๊ฐ์ฒด๋ฅผ ์ฃผ์ ํ ์ง๋ ์ค์ง ์ธ๋ถ AppConfig ์์ ๊ฒฐ์ ํ๋ค.
=> ๋ก๋ฏธ์ค ์ญํ ์ ๋งก์ ๋ฐฐ์ฐ๋ ์ค์ง AppConfig ์์ ๊ฒฐ์ ํ๋ค.
5. OrderServiceImpl ์ ์ด์ ์คํ์๋ง ์ง์คํ๋ฉด ๋๋ค.
'Spring๐ > Spring ๊ธฐ๋ณธ๐๐' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
ํ์ ๋๋ฉ์ธ ์คํ๊ณผ ํ ์คํธ (0) | 2022.09.25 |
---|---|
ํ์ ๋๋ฉ์ธ ์ค๊ณ (3) | 2022.09.25 |
ํ๋ก์ ํธ ์์ฑ (1) | 2022.09.25 |
์ข์ ๊ฐ์ฒด ์งํฅ ์ค๊ณ์ 5๊ฐ์ง ์์น(SOLID)+๊ฐ์ฒด์งํฅ์ค๊ณ์ ์คํ๋ง (3) | 2022.09.24 |
๊ฐ์ฒด ์งํฅ ์ค๊ณ์ ์คํ๋ง ์ ๋ฆฌ.txt๐ (2) | 2022.09.24 |