Chapter 7 - KOO-YS/toby-spring GitHub Wiki
- ์คํ๋ง์ ๋ชจ๋ ๊ธฐ์ ์ ๊ฒฐ๊ตญ ๊ฐ์ฒด์งํฅ์ ์ธ ์ธ์ด์ ์ฅ์ ์ ์ ๊ทน์ ์ผ๋ก ํ์ฉํด์ ์ฝ๋๋ฅผ ์์ฑํ๋๋ก ๋์์ฃผ๋ ๊ฒ
- ์ง๊ธ๊น์ง ์ดํด๋ดค๋ ์ธ ๊ฐ์ง ๊ธฐ์ ์ ์ ํ๋ฆฌ์ผ์ด์ ๊ฐ๋ฐ์ ํ์ฉํด์ ์๋ก์ด ๊ธฐ๋ฅ์ ๋ง๋ค์ด๋ณด๊ณ ์ด๋ฅผ ํตํด ์คํ๋ง์ ๊ฐ๋ฐ์ฒ ํ๊ณผ ์ถ๊ตฌํ๋ ๊ฐ์น, ์คํ๋ง ์ฌ์ฉ์์๊ฒ ์๊ตฌ๋๋ ๊ฒ ๋ฌด์์ธ์ง ์ดํด๋ณด๊ธฐ
๐ฑ Branch chapter07/refactor7.1์ ์ค์ต ์ ์ฉ
-
- SQL์ ์คํ๋ง์ XML ์ค์ ํ์ผ๋ก ๋นผ๋ด๋ ๊ฒ
- ์คํ๋ง์์๋ String ๊ฐ์ ์ธ๋ถ์์ DI ํด์ ์ฌ์ฉํ ์ ์๊ธฐ ๋๋ฌธ์ ์์ฝ๊ฒ SQL ๋ถ๋ฆฌ ๊ฐ๋ฅ
- But, ๋งค๋ฒ ์๋ก์ด SQL์ด ํ์ํ ๋ ๋ง๋ค ํ๋กํผํฐ๋ฅผ ์ถ๊ฐํ๊ณ DI๋ฅผ ์ํ ๋ณ์์ setter๋ ์์ฑ
-
- SQL์ ํ๋์ ์ปฌ๋ ์ ์ผ๋ก ๋ด์๋๋ ๋ฐฉ๋ฒ
- ๋งต์ผ๋ก ๋ง๋ค์ด๋๋ฉด ์๋ก์ด SQL์ด ํ์ํ ๋ ์ค์ ์๋ง ์ถ๊ฐํด์ฃผ๋ฉด ๋๋ ์์ ๋์ด ์ค๊ณ ์ฝ๋ ๊ฐ๋จ
- But, ์ค์๊ฐ ์์ด๋ ํด๋น ๋ฉ์๋๊ฐ ์คํ๋๊ธฐ ์ ์๋ ์ค๋ฅ๋ฅผ ํ์ธํ๊ธฐ ํ๋ฆ
- SQL๊ณผ DI ์ค์ ์ ๋ณด๊ฐ ์์ฌ ์์ผ๋ฉด ์ง์ ๋ถํ๊ณ ๊ด๋ฆฌ ํ๋ฆ
- SQL์ ๊ผญ ์คํ๋ง์ ๋น ์ค์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํด XML์ ๋ด์๋ ํ์๊ฐ ์๋ค
- ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ค์ ์์ํ๊ธฐ ์ ์๋ ๋ณ๊ฒฝ์ด ๋งค์ฐ ์ด๋ ต๋ค
-
- ์ด๋ค ๊ธฐ์ ์ ์ธ ์กฐ๊ฑด์ด๋ ์ ์ฝ์ฌํญ๋ ๋ด๊ฒจ์์ง์๋ค
- SQL์๋น์ค์ ๊ธฐ๋ฅ : SQL์ ๋ํ ํค ๊ฐ์ ์ ๋ฌํ๋ฉด ๊ทธ์ ํด๋นํ๋ SQL์ ๋๋ ค์ฃผ๋ ๊ฒ
๐ฑ Branch -> ์ค์ต ์ ์ธchapter07/refactor7.2์ ์ค์ต ์ ์ฉ
- XML์ ๋ด๊ธด ์ ๋ณด๋ฅผ ํ์ผ์์ ์ฝ์ด์ค๋ ๋ฐฉ๋ฒ์ผ๋ก์จ ๊ฐ์ฅ ๊ฐ๋จํ๊ฒ ์ฌ์ฉํ ์ ์๋ ๋ฐฉ๋ฒ
-
java.xml.bindํจํค์ง ์์์ JAXB ๊ตฌํ ํด๋์ค๋ฅผ ์ด์ฉ - XML ๋ฌธ์์ ๊ตฌ์กฐ๋ฅผ ์ ์ํ ์คํค๋ง๋ฅผ ์ด์ฉํด์ ๋งคํํ ์ค๋ธ์ ํธ์ ํด๋์ค๊น์ง ์๋์ผ๋ก ๋ง๋ค์ด์ฃผ๋ ์ปดํ์ผ๋ฌ๋ ์ ๊ณต
-
JAXB์์ XML ๋ฌธ์๋ฅผ ์ฝ์ด์ ์๋ฐ์ ์ค๋ธ์ ํธ๋ก ๋ณํํ๋ ๊ฒ์ ์นญํจ
-
ํน์ ์์กด ์ค๋ธ์ ํธ๊ฐ ๋๋ถ๋ถ์ ํ๊ฒฝ์์ ๊ฑฐ์ ๋ํดํธ๋ผ๊ณ ํด๋ ์ข์ ๋งํผ ๊ธฐ๋ณธ์ ์ผ๋ก ์ฌ์ฉ๋ ๊ฐ๋ฅ์ฑ์ด ์๋ค๋ฉด, ๋ํดํธ ์์กด๊ด๊ณ๋ฅผ ๊ฐ๋ ๋น์ ๋ง๋๋ ๊ฒ์ ์ถ์ฒ
-
์ธ๋ถ์์ DI ๋ฐ์ง ์๋ ๊ฒฝ์ฐ ๊ธฐ๋ณธ์ ์ผ๋ก ์๋ ์ ์ฉ๋๋ ์์กด ๊ด๊ณ
-
๋ํดํธ์ ์ ์ฉํ๊ณ ์ถ์ ์์กด ์ค๋ธ์ ํธ๋ฅผ ์์ฑ์ ์์ ์ง์ ๋ง๋ค์ด ์ค์ค๋ก DI
-
- ์ค์ ์ ํตํด ๋ค๋ฅธ ๊ตฌํ ์ค๋ธ์ ํธ๋ฅผ ์ฌ์ฉํ๊ฒ ํด๋ ๋ํดํธ ์ค๋ธ์ ํธ ์์ฑ์์์ "์ผ๋จ" ๋ํดํธ ์์กด ์ค๋ธ์ ํธ๋ฅผ ๋ค ๋ง๋ค์ด๋ฒ๋ฆฐ๋ค (๋น๋ก ๋ฐ๋ก ๋์ฒด๋๋ค ํ๋๋ผ๋!)
- ์๋ ์์ฑ์ ๋ถ๋ด์ ๋ฌด์ํ ์ ์๋ค๋ฉด, ๋ํดํธ ์์กด ์ค๋ธ์ ํธ๊ฐ ์์ ๋ง๋ค์ด์ง์ง ์์ ๋ฐฉ๋ฒ์ ์ฌ์ฉ
- ex) @PostConstructor ์ด๊ธฐํ ๋ฉ์๋๋ฅผ ์ด์ฉํด ํ๋กํผํฐ๊ฐ ์ค์ ๋๋์ง ํ์ธํ๊ณ ์๋ ๊ฒฝ์ฐ์๋ง ๋ํดํธ ์ค๋ธ์ ํธ ์์ฑ
JAXB ์ธ์๋ ์ค์ ์์ ์์ฃผ ์ฌ์ฉ๋๋ XML๊ณผ ์๋ฐ ์ค๋ธ์ ํธ ๋งคํ ๊ธฐ์ : Castor, JiBX, XmlBeans, Xstream
- XML๊ณผ ์๋ฐ ์ค๋ธ์ ํธ๋ฅผ ๋งคํํด์ ์ํธ ๋ณํํด์ฃผ๋ ๊ธฐ์
์ฌ๋ฌ๊ฐ์ง ์ข ๋ฅ์ ๋ฆฌ์์ค์ ์ ๊ทผํ๋ ๋ฐฉ์์ ๋จ์ผ ์ธํฐํ์ด์ค์ ๋ฉ์๋๋ก ์ถ์ํ
-
์คํ๋ง์์๋ ์๋ฐ์ ์กด์ฌํ๋ ์ผ๊ด์ฑ ์๋ ๋ฆฌ์์ค ์ ๊ทผ API๋ฅผ ์ถ์ํํด์
Resource์ถ์ํ ์ธํฐํ์ด์ค ์ ์-
But,
Resource๋ ์คํ๋ง์์ ๋น์ด ์๋๋ผ ๊ฐ์ผ๋ก ์ทจ๊ธ -
ResourceLoader: ๋ฌธ์์ด ์์ ๋ฆฌ์์ค ์ข ๋ฅ/์์น๋ฅผ ํํํ๋ฉฐ ์ ์๋ ๋ฆฌ์์ค๋ฅผ ์ค์ Resourceํ์ ์ค๋ธ์ ํธ๋ก ๋ณํ์ ๋์ด ์ ์ค๋ช file: file:C:/temp/file.txt ํ์ผ ์์คํ ์์ ๋ฆฌ์์ค์ ์ ๊ทผ classpath: classpath:file.txt ํด๋์คํจ์ค์ ๋ฃจํธ์ ์กด์ฌํ๋ ๋ฆฌ์์ค์ ์ ๊ทผ
-
| X | WEB-INF/test.dat | ์ ๋์ด๊ฐ ์๋ ๊ฒฝ์ฐ, ResourceLoader ๊ตฌํ์ ๋ฐ๋ผ ๋ฆฌ์์ค ์์น ๊ฒฐ์ |
| http: | http://www.testserver.com/test.dat | HTTP ํ๋กํ ์ฝ์ ์ฌ์ฉํด ์ ๊ทผํ ์ ์๋ ์น์์ ๋ฆฌ์์ค ์ง์ |
์คํ๋ง์ ์ ํ๋ฆฌ์ผ์ด์
์ปจํ
์คํธ ์ญ์ `ResourceLoader` ์ธํฐํ์ด์ค ์์
-
DI๋ฅผ ์ ์ฉํ ๋๋ ๊ฐ๋ฅํ ํ ์ธํฐํ์ด์ค๋ฅผ ์ฌ์ฉํ๊ฒ ํด์ผํ๋ค. ํด๋์ค๋ฅผ ์ง์ ์ฌ์ฉํด๋ ๋์ง๋ง, ๋ ๊ฐ์ ์ค๋ธ์ ํธ๊ฐ ์ธํฐํ์ด์ค๋ฅผ ํตํด ๋์จํ๊ฒ ์ฐ๊ฒฐ๋ผ์ผํ๊ธฐ ๋๋ฌธ
-
-
๋คํ์ฑ : ํ๋์ ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ฌ๋ฌ ๊ฐ์ ๊ตฌํ์ ๋ฐ๊ฟ๊ฐ๋ฉด์ ์ฌ์ฉํ ์ ์๊ฒ ํ๋ ๊ฒ
-
์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น์ ํตํด ํด๋ผ์ด์ธํธ์ ์์กด ์ค๋ธ์ ํธ ์ฌ์ด์ ๊ด๊ณ๋ฅผ ๋ช ํํ๊ฒ ํด์ค ์ ์๊ธฐ ๋๋ฌธ
* ์ธํฐํ์ด์ค ๋ถ๋ฆฌ ์์น : Interface Segregation Principle. ์ค๋ธ์ ํธ ๊ทธ ์์ฒด๋ก ์ถฉ๋ถํ ์์ง๋๊ฐ ๋์ ์์ ๋จ์๋ก ์ค๊ณ๋๋๋ผ๋, ๋ชฉ์ ๊ณผ ๊ด์ฌ์ด ๊ฐ๊ธฐ ๋ค๋ฅธ ํด๋ผ์ด์ธํธ๊ฐ ์๋ค๋ฉด ์ธํฐํ์ด์ค๋ฅผ ํตํด ์ด๋ฅผ ์ ์ ํ๊ฒ ๋ถ๋ฆฌํด์ค ํ์๊ฐ ์๋ค
-
๐ฑ Branch chapter07/refactor7.5์ ์ค์ต ์ ์ฉ
-
๊ธฐ์กด
HashMap์ผ๋ก๋ ๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ๋์์ ์์ ์ ์๋ํ๊ฑฐ๋ ์์ ๊ณผ ๋์์ ์์ฒญํ๋ ๊ฒฝ์ฐ ์์์น ๋ชปํ ๊ฒฐ๊ณผ๊ฐ ๋ฐ์ํ ์ ์๋ค -
๋ฉํฐ์ค๋ ๋ ํ๊ฒฝ์์ ์์ ํ๊ฒ
HashMap์ ์กฐ์ํ๋ ค๋ฉดCollections.synchronizedMap()๋ฑ์ ์ด์ฉํด ์ธ๋ถ์์ ๋๊ธฐํํด์ค์ผ ํจ -
๊ทธ๋์ ๋๊ธฐํ๋ ํด์ ๋ฐ์ดํฐ ์กฐ์์ ์ต์ ํ๋๋๋ก ๋ง๋ค์ด์ง
ConcurrentHashMap์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ์ด ์ผ๋ฐ์ ์ผ๋ก ๊ถ์ฅ*
ConcurrentHashMap: ๋ฐ์ดํฐ ์กฐ์ ์ ์ ์ฒด ๋ฐ์ดํฐ์ ๋ํด ๋ฝ์ ๊ฑธ์ง ์๊ณ ์กฐํ๋ ๋ฝ์ ์์ ์ฌ์ฉํ์ง ์๋๋ค. ์ด๋ ์ ๋ ์์ ํ๋ฉด์ ์ฑ๋ฅ์ด ๋ณด์ฅ๋๋ ๋๊ธฐํ๋HashMap์ผ๋ก ์ด์ฉํ๊ธฐ ์ ๋น
-
ConcurrentHashMap๋ ์ ์ฅ๋๋ ๋ฐ์ดํฐ์ ์์ด ๋ง์์ง๊ณ ์ฆ์ ์กฐํ&๋ณ๊ฒฝ์ด ์ผ์ด๋๋ ํ๊ฒฝ์์ ํ๊ณ -
DB์ ์ฅ์ ๊ณผ ํน์ง์ ๊ทธ๋๋ก ๊ฐ๊ณ ์์ผ๋ฉด์๋ ์ ํ๋ฆฌ์ผ์ด์ ์ธ๋ถ์ ๋ณ๋๋ก ์ค์นํ๊ณ ์ ์ ํ๋ ๋ฒ๊ฑฐ๋ก์ ์๋ ๋ด์ฅํ DB ์ฌ์ฉ
*
๋ด์ฅํ DB: ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ด์ฅ๋์ ์ ํ๋ฆฌ์ผ์ด์ ๊ณผ ํจ๊ป ์์๋๊ณ ์ข ๋ฃ๋๋ DB -
์คํ๋ง ๋น์๋ ํฉํ ๋ฆฌ ๋น์ ๋ง๋๋ ๋ฒ๊ฑฐ๋ก์ด ์์ ์ ๋์ ํด์ฃผ๋ ์ ์ฉ ํ๊ทธ๊ฐ ์กด์ฌํ๋ค
<jdbc:embedded-database id=โembeddedDatabaseโ type=โHSQLโ> <jdbc:script location=โclasspath:schema.sqlโ/> </jdbc:embedded-database>
- ์คํ๋ง์์ ํธ๋์ญ์
์ ์ ์ฉํ ๋ ํธ๋์ญ์
๊ฒฝ๊ณ๊ฐ DAO ๋ฐ์ ์๊ณ ๋ฒ์๊ฐ ๋์ ๊ฒฝ์ฐ๋ผ๋ฉด AOP๋ฅผ ์ด์ฉํ๋ ๊ฒ์ด ํธ๋ฆฌํ๊ฒ ์ง๋ง, SQL ๋ ์ง์คํธ๋ฆฌ๋ผ๋ ์ ํ๋ ์ค๋ธ์ ํธ ๋ด์์ ์๋น์ค์ ํนํ๋ ๊ฐ๋จํ ํธ๋์ญ์
์ด ํ์ํ ๊ฒฝ์ฐ ๊ฐ๋จํ
ํธ๋์ญ์ ์ถ์ํ API๋ฅผ ์ง์ ์ฌ์ฉํ๋๊ฒ ํธ๋ฆฌ
๐ฑ Branch chapter07/refactor7.6์ ์ค์ต ์ ์ฉ
-
- ์๋ฐ ์ฝ๋์ ๋ฉํ์ ๋ณด๋ฅผ ๋ฐ์ดํฐ๋ก ํ์ฉํ๋ ์คํ์ผ์ ํ๋ก๊ทธ๋๋ฐ ๋ฐฉ์์ด ๋ง์ด ํ์ฉ๋๊ธฐ ์์ํ๋ฉฐ, ์ด๋ ธํ ์ด์ ์ ์ ๊ทน ํ์ฉํ๋ค
-
์ด๋
ธํ
์ด์
: ์ ์ธ๋ง์ผ๋ก ๋ค์ํ ๋ถ๊ฐ ์ ๋ณด๋ฅผ ์์๋ผ ์ ์์ผ๋ฉฐ, XML์ฒ๋ผ ๋จ์ ํ
์คํธ๋ก ์์ฑ๋ ๋ฐ์ดํฐ๋ ๋ฒ๊ฑฐ๋กญ๊ณ ์์ ํ์ง ๋ชปํด์ ๋๋น๋จ
- ์ด๋ ธํ ์ด์ ์ ๋จ์ ? ์๋ฐ ์ฝ๋์์ ์กด์ฌํ๋ฏ๋ก ๋ณ๊ฒฝํ ๋๋ง๋ค ๋งค๋ฒ ํด๋์ค๋ฅผ ์๋ก ์ปดํ์ผํด์ค์ผ ํ๋ค
-
- ๋ฏธ๋ฆฌ ์ ์๋ ๋ง์ ๊ท์น๊ณผ ๊ด๋ก๋ฅผ ๊ธฐ์ตํด์ผํ๊ณ , ๋ฉํ์ ๋ณด๋ฅผ ๋ณด๊ณ ํ๋ก๊ทธ๋จ์ด ์ด๋ป๊ฒ ๋์ํ ์ง ์ดํดํด์ผํ๋ ๋ถ๋ด์ ์ฃผ๊ธฐ๋ ํ๊ธฐ ๋๋ฌธ์, ์คํ์ผ์ ๋ณํ
์ง๊ธ๊น์ง ๋ฐ์ ์์ผ์จ ์ฌ์ฉ์ DAO์ ์๋น์ค ๊ธฐ๋ฅ์ ์์ ์ฝ๋๋ฅผ ์คํ๋ง 3.1์ DI ์คํ์ผ๋ก ๋ฆฌํฉํ ๋ง
-
@ContextConfiguration: ์คํ๋ง ํ ์คํธ๊ฐ ํ ์คํธ์ฉ DI ์ ๋ณด๋ฅผ ์ด๋์ ๊ฐ์ ธ์์ผํ๋์ง ์ง์ ํ ๋ ์ฌ์ฉ -
@ImportResource: XML์ ์ค์ ์ ๋ณด๋ฅผ ์๋ฐ ํด๋์ค๋ก ๋ง๋ค์ด์ง DI ์ค์ ์ ๋ณด๋ก ๊ฐ์ ธ์ค๊ฒ ํ ์ ์๋ค
-
<bean>์ผ๋ก ์ ์๋ DI ์ ๋ณด ->@Bean์ด ๋ถ์ public ๋ฉ์๋์ ๊ฑฐ์ 1:1 ๋งคํ-
@Bean๋ฉ์๋ ํน์ง- bean์ ์์ด๋๋ ๋ฉ์๋ ์ด๋ฆ์ผ๋ก ์ค์
- ๋ฆฌํด ํ์ ์ ๊ตฌํ์ ๋ฐ๊ฟ ์ ์๋ ์ธํฐํ์ด์ค ํ์ ์ฌ์ฉ
- ํ๋กํผํฐ(์์ฑ)์ด ์๋ค๋ฉด ์ค๋ธ์ ํธ ์์ฑ๊ณผ ๋์์ ๋ฐ๋ก ๋ฆฌํด ๊ฐ๋ฅ
- ํ๋กํผํฐ๊ฐ ์๋ ๊ฒฝ์ฐ, ๋ก์ปฌ ๋ณ์(์ธํฐํ์ด์ค
X, ๊ตฌํ์ฒดO)๋ก ๋ฐ์๋์ด์ผํจ
-
-
@Autowired: ํ๋์ ํ์ ์ ๊ธฐ์ค์ผ๋ก ๋น์ ์ฐพ์ -
@Resource: ํ๋ ์ด๋ฆ์ ๊ธฐ์ค์ผ๋ก ๋น์ ์ฐพ์
- <tx:annotation-driven />์ผ๋ก ์ ์๋ ์ ๋ณด ->
@EnableTransactionManagement
-
๊ธฐ์กด์
@Autowired๋ ์คํ๋ง ํ ์คํธ ํด๋์ค๋ DI ์ค์ ์ฉ@Configurationํด๋์ค์์ ์คํ๋ง ์ปจํ ์ด๋๊ฐ ์์ฑํ ๋น์ ํด๋์ค์ ๋ฉค๋ฒ ํ๋๋ก ์ฃผ์ ๋ฐ๊ธฐ ์ํด ์ฌ์ฉ -
๊ธฐ์กด์ ๋น์ ํ๋กํผํฐ์ ๋ค๋ฅธ ๋น์ ๋ฃ์ด์ ๋ฐํ์ ๊ด๊ณ๋ฅผ ๋งบ์ด์ฃผ๋ ๋ฐฉ๋ฒ
- <bean>์ <property>๋ฅผ ์ฌ์ฉํด ์ ์
- ์๋ฐ ์ฝ๋๋ก ์ง์ ์์ ์ ๋ฉ์๋ ํธ์ถ
-
@Autowired๋ ์๋ ์์ด์ด๋ง ๊ธฐ๋ฒ์ ์ด์ฉํด์ ์กฐ๊ฑด์ ๋ง๋ ๋น์ ์ฐพ์ ์๋์ผ๋ก ์์ ์ ๋ฉ์๋๋ ํ๋์ ๋ฃ์ด์ค-
์ปจํ ์ด๋๊ฐ ์ด๋ฆ/ํ์ ์ ๊ธฐ์ค์ผ๋ก ์ฃผ์ ๋ ๋น์ ์ฐพ์์ฃผ๊ธฐ ๋๋ฌธ์ ๋น์ ํ๋กํผํฐ ์ค์ ์ ์ง์ ํด์ฃผ๋ ์๋ฐ ์ฝ๋๋ XML ์์ ๋ํญ ์ค์ผ ์ ์๋ค
-
ํ์ง๋ง ๋น ์ค์ ์ ๋ณด๋ฅผ ๋ณด๊ณ ๋ค๋ฅธ ๋น๊ณผ ์์กด๊ด๊ณ๊ฐ ์ด๋ป๊ฒ ๋งบ์ด์ ธ ์๋์ง ํ๋์ ํ์ ํ๊ธฐ ํ๋ค๋ค
@Autowired // dao.setDataSource(dataSource); ์์ด ์๋์ผ๋ก ๋น์ ์ฐพ์ ์ฃผ์ ๋๋ค public void setDataSource(DataSource dataSource){ this.jdbcTemplate = new JdbcTemplate(dataSource); }
-
-
@Component๊ฐ ๋ถ์ ํด๋์ค๋ ๋น ์ค์บ๋๋ฅผ ํตํด ์๋์ผ๋ก ๋น์ผ๋ก ๋ฑ๋ก๋๋ค- ๋น์ผ๋ก ๋ฑ๋ก๋ ํ๋ณด ํด๋์ค์ ๋ถ์ฌ์ฃผ๋ ์ผ์ข ์ ๋ง์ปค : marker๋ผ๊ณ ๋ณด๋ฉด ๋๋ค
- ํ๋ก์ ํธ ๋ด์ ๋ชจ๋ ํด๋์คํจ์ค๋ฅผ ๋ค ๋ค์ ธ์
@Component๋ฅผ ์ฐพ๊ธฐ์๋ ๋ถ๋ด์ด ๋ง๋ค ->@ComponentScan์ฌ์ฉ-
@ComponentScan์ basePackages ์๋ฆฌ๋จผํธ :@Component๊ฐ ๋ถ์ ํด๋์ค๋ฅผ ์ค์บํ ๊ธฐ์ค ํจํค์ง๋ฅผ ์ง์
-
* ๋ฉํ ์ด๋ ธํ ์ด์
์ด๋ ธํ ์ด์ ์ ์ ์์ ๋ถ์ฌ๋ ์ด๋ ธํ ์ด์
์ฌ๋ฌ ๊ฐ์ ์ด๋ ธํ ์ด์ ์ ๊ณตํต์ ์ธ ์์ฑ์ ๋ถ์ฌํ ๋ ๋ฉํ ์ด๋ ธํ ์ด์ ์ ์ด์ฉ
- ์์ชฝ์ ๋ชจ๋ ํ์ํ๋ฉด์ ๋น์ ๋ด์ฉ์ด ๋ฌ๋ผ์ ธ์ผํ๋ ๊ฒฝ์ฐ์ ๋น ์ค์ ์ ๋ณด ์์ฑ์ด ๊ณค๋ํด์ง๋ค
- ๋น ์ค์ ์ ๋ณด๊ฐ ๋ฌ๋ผ์ ธ์ผ ํ๋ ๊ฒฝ์ฐ์ ํ์ผ์ ์ฌ๋ฌ ๊ฐ๋ก ์ชผ๊ฐ๊ณ ์กฐํฉํ๋ ๋ฑ์ ๋ฒ๊ฑฐ๋ก์ด ๋ฐฉ๋ฒ ๋์ , ๊ฐ๋จํ ์ค์ ์ ๋ณด๋ฅผ ๊ตฌ์ฑํ ์ ์๋ ๋ฐฉ๋ฒ์ ์ ๊ณต :
@Profile,@ActiveProfiles- ์คํํ๊ฒฝ์ ๋ฐ๋ผ ๋น ๊ตฌ์ฑ์ด ๋ฌ๋ผ์ง๋ ๋ด์ฉ์ ํ๋กํ์ผ๋ก ์ ์ํด์ ๋ง๋ค์ด๋๊ณ , ์คํ ์์ ์์ ์ด๋ค ํ๋กํ์ผ์ ๋น ์ค์ ์ ์ฌ์ฉํ ์ง ์ง์