1. μ€νλ§ νλ μμν¬μ κ°λ κ³Ό νμμ±
μ€νλ§ νλ μμν¬λ μλ° κΈ°λ°μ μ€ν μμ€ μ ν리μΌμ΄μ νλ μμν¬λ‘, μν°νλΌμ΄μ¦κΈ μ ν리μΌμ΄μ μ κ°λ°νκΈ° μν μ μ©ν λꡬμ κΈ°λ₯μ μ 곡ν©λλ€. μ€νλ§μ κ²½λ 컨ν μ΄λλ‘μ Java EE νκ²½μμ κ°λ°μ κ°μννκ³ , λ€μν κΈ°λ₯μ ν¬ν¨ν λͺ¨λνλ μν€ν μ²λ₯Ό μ 곡ν©λλ€. μ€νλ§μ IoC (Inversion of Control) 컨ν μ΄λμ DI (Dependency Injection), AOP (Aspect-Oriented Programming) λ±μ κ°λ μ κΈ°λ°μΌλ‘ νλ€λ νΉμ§μ΄ μμ΅λλ€.
μ€νλ§ νλ μμν¬λ₯Ό μ¬μ©νλ μ΄μ λ λ€μκ³Ό κ°μ΅λλ€:
- κ°λ° μμ°μ± ν₯μ: μ€νλ§μ κ°λ°μκ° μ ν리μΌμ΄μ λ‘μ§μ μ§μ€ν μ μλλ‘ κΈ°λ³Έμ μΈ μ€μ κ³Ό 보μΌλ¬νλ μ΄νΈ μ½λλ₯Ό μ 곡νμ¬ κ°λ° μμ°μ±μ ν₯μμν΅λλ€.
- νμ₯μ±: μ€νλ§μ λͺ¨λνλ μν€ν μ²λ₯Ό μ 곡νμ¬ μ ν리μΌμ΄μ μ κΈ°λ₯μ νμμ λ°λΌ μΆκ°νκ±°λ μ κ±°ν μ μμ΅λλ€.
- μ μ§λ³΄μ μ©μ΄μ±: μ€νλ§μ κ°κ°μ μ»΄ν¬λνΈλ€ μ¬μ΄μ μμ‘΄μ±μ λμ¨νκ² μ μ§ν¨μΌλ‘μ¨, μ μ§λ³΄μμ ν μ€νΈκ° μ©μ΄ν΄μ§λλ€.
- ν μ€νΈ μ©μ΄μ±: μ€νλ§μ DIμ IoC 컨ν μ΄λλ₯Ό ν΅ν΄ ν μ€νΈμ μ©μ΄ν νκ²½μ μ 곡νμ¬ λ¨μ ν μ€νΈ, ν΅ν© ν μ€νΈ, κΈ°λ₯ ν μ€νΈ λ±μ μ½κ² μνν μ μμ΅λλ€.
- κΈ°μ νκ²½μ μ ν©: μ€νλ§μ κΈ°μ νκ²½μμ λ§μ΄ μ¬μ©λλ 보μ, νΈλμμ κ΄λ¦¬, λ‘κΉ λ± λ€μν κΈ°λ₯μ μ§μνμ¬ κΈ°μ μ ν리μΌμ΄μ κ°λ°μ μ ν©ν©λλ€.
μμΌλ‘ μ΄ κΈμμλ μ€νλ§ νλ μμν¬λ₯Ό λ€μ΄λ‘λνκ³ μ€μΉνλ λ°©λ²μ λν΄ μμ보λλ‘ νκ² μ΅λλ€.
2. μ€νλ§ νλ μμν¬ λ€μ΄λ‘λμ λ€μν λ°©λ²
μ€νλ§ νλ μμν¬λ₯Ό λ€μ΄λ‘λνλ λ°©λ²μ μ¬λ¬ κ°μ§κ° μμ΅λλ€. μ£Όλ‘ μ¬μ©λλ λ°©λ²μ Mavenμ΄λ Gradleμ ν΅ν μμ‘΄μ± κ΄λ¦¬ λꡬλ₯Ό μ¬μ©νλ κ²μ λλ€. μλλ μ€νλ§ νλ μμν¬λ₯Ό λ€μ΄λ‘λνλ λ€μν λ°©λ²μ λν μ€λͺ μ λλ€:
2.1. Mavenμ ν΅ν λ€μ΄λ‘λ
Mavenμ μ¬μ©νλ©΄ μ€νλ§ νλ μμν¬μ λ€μν λͺ¨λμ κ΄λ¦¬νκ³ μμ‘΄μ±μ μ€μ ν μ μμ΅λλ€. λ€μμ Mavenμ ν΅ν΄ μ€νλ§ νλ μμν¬λ₯Ό λ€μ΄λ‘λνλ λ°©λ²μ λλ€:
pom.xml
νμΌμ μ€νλ§ νλ μμν¬μ μμ‘΄μ±μ μΆκ°ν©λλ€. μλλ μ€νλ§ νλ μμν¬μ κ°μ₯ κΈ°λ³Έμ μΈ μμ‘΄μ± μ€μ μμμ λλ€:<dependencies> <dependency> <groupId>org.springframework</groupId> <artifactId>spring-context</artifactId> <version>5.3.10</version> </dependency> </dependencies>
Mavenμ ν΅ν΄ νλ‘μ νΈλ₯Ό λΉλν©λλ€. Mavenμ μ€νλ§ νλ μμν¬ μμ‘΄μ±μ μλμΌλ‘ λ€μ΄λ‘λνκ³ νλ‘μ νΈμ μΆκ°ν©λλ€. μ΄λ₯Ό μν΄ νλ‘μ νΈ λλ ν 리μμ λ€μ λͺ λ Ήμ μ€νν©λλ€:
mvn clean install
Mavenμ λ‘컬 μ μ₯μμ μ€νλ§ νλ μμν¬μ JAR νμΌμ λ€μ΄λ‘λν©λλ€. μ΄ JAR νμΌμ νλ‘μ νΈμμ μ°Έμ‘°νμ¬ μ¬μ©ν μ μμ΅λλ€.
2.2. Gradleμ ν΅ν λ€μ΄λ‘λ
Gradleμ Mavenκ³Ό λΉμ·ν κΈ°λ₯μ μ 곡νλ λΉλ λꡬμ λλ€. μ€νλ§ νλ μμν¬λ₯Ό Gradleμ ν΅ν΄ λ€μ΄λ‘λνλ λ°©λ²μ μλμ κ°μ΅λλ€:
build.gradle
νμΌμ μ€νλ§ νλ μμν¬μ μμ‘΄μ±μ μΆκ°ν©λλ€. μλλ μ€νλ§ νλ μμν¬μ κ°μ₯ κΈ°λ³Έμ μΈ μμ‘΄μ± μ€μ μμμ λλ€:dependencies { implementation 'org.springframework:spring-context:5.3.10' }
Gradleμ ν΅ν΄ νλ‘μ νΈλ₯Ό λΉλν©λλ€. Gradleμ μ€νλ§ νλ μμν¬ μμ‘΄μ±μ μλμΌλ‘ λ€μ΄λ‘λνκ³ νλ‘μ νΈμ μΆκ°ν©λλ€. μ΄λ₯Ό μν΄ νλ‘μ νΈ λλ ν 리μμ λ€μ λͺ λ Ήμ μ€νν©λλ€:
./gradlew build
Gradleμ λ‘컬 μ μ₯μμ μ€νλ§ νλ μμν¬μ JAR νμΌμ λ€μ΄λ‘λν©λλ€. μ΄ JAR νμΌμ νλ‘μ νΈμμ μ°Έμ‘°νμ¬ μ¬μ©ν μ μμ΅λλ€.
2.3. μ€νλ§ κ³΅μ μΉμ¬μ΄νΈμμ λ€μ΄λ‘λ
μ€νλ§ κ³΅μ μΉμ¬μ΄νΈμμλ μ€νλ§ νλ μμν¬μ μ΅μ λ²μ μ μ 곡νκ³ μμ΅λλ€. λ€μμ μ€νλ§ κ³΅μ μΉμ¬μ΄νΈμμ μ€νλ§ νλ μμν¬λ₯Ό λ€μ΄λ‘λνλ λ°©λ²μ λλ€:
- μ€νλ§ κ³΅μ μΉμ¬μ΄νΈ(https://spring.io)μ μ μν©λλ€.
- μλ¨ λ©λ΄μμ "Projects" μΉμ μΌλ‘ μ΄λνμ¬ "Spring Framework"λ₯Ό μ νν©λλ€.
- ν΄λΉ νμ΄μ§μμ "Download" νμΌλ‘ μ΄λν©λλ€.
- λ€μ΄λ‘λ νμ΄μ§μμλ λ€μν νμμ λ€μ΄λ‘λ μ΅μ μ΄ μ 곡λ©λλ€. μνλ νμμ μ ννκ³ λ€μ΄λ‘λ λ²νΌμ ν΄λ¦ν©λλ€.
μ€νλ§ κ³΅μ μΉμ¬μ΄νΈλ₯Ό ν΅ν΄ λ€μ΄λ‘λ λ°μ νμΌμ μμΆ νμΌ ννλ‘ μ 곡λλ©°, μμΆμ ν΄μ νμ¬ μ¬μ©ν μ μμ΅λλ€.
μ΄μ κ°μ΄ λ³ΈμΈμ κ°λ° νκ²½μ΄λ νλ‘μ νΈμ κ°μ₯ μ ν©ν λ°©λ²μΌλ‘ μ€νλ§ νλ μμν¬λ₯Ό λ€μ΄λ‘λν μ μμ΅λλ€.
3. μ€νλ§ νλ μμν¬ μ€μΉ μ μ νμν μ¬μ μμ
μ€νλ§ νλ μμν¬λ₯Ό μ€μΉνκΈ° μ μ λͺ κ°μ§ μ¬μ μμ μ μνν΄μΌ ν©λλ€. μ΄λ₯Ό ν΅ν΄ μ€μΉ κ³Όμ μ΄ μννκ² μ§νλ μ μμ΅λλ€. μλλ μ€νλ§ νλ μμν¬ μ€μΉ μ μ νμν μ¬μ μμ μ λν μ€λͺ μ λλ€:
3.1. μλ° κ°λ° νκ²½ μ€μΉ
μ€νλ§ νλ μμν¬λ μλ°λ‘ κ°λ°λλ©°, λ°λΌμ μλ° κ°λ° νκ²½μ΄ μ€μΉλμ΄ μμ΄μΌ ν©λλ€. λ€μμ μλ° κ°λ° νκ²½μ μ€μΉνλ λ°©λ²μ λλ€:
Oracle λλ OpenJDKμμ μ 곡νλ JDK(Java Development Kit) μ€μΉ νμΌμ λ€μ΄λ‘λν©λλ€. JDKλ μλ° κ°λ°μ νμν λꡬμ μ€ν νκ²½μ μ 곡ν©λλ€.
λ€μ΄λ‘λν JDK μ€μΉ νμΌμ μ€ννκ³ , μ€μΉ κ³Όμ μ λ°λΌκ°λλ€. μΌλ°μ μΌλ‘λ κΈ°λ³Έ μ€μ μ κ·Έλλ‘ μ¬μ©νμ¬ μ€μΉνλ©΄ λ©λλ€.
μ€μΉκ° μλ£λλ©΄, νκ²½ λ³μλ₯Ό μ€μ ν΄μΌ ν©λλ€. μλ° κ°λ° νκ²½κ³Ό κ΄λ ¨λ νκ²½ λ³μλ
JAVA_HOME
,PATH
λ±μ λλ€. κ° μ΄μ체μ λ³λ‘ μ€μ λ°©λ²μ΄ λ€λ₯Ό μ μμΌλ―λ‘, ν΄λΉ μ΄μ체μ μ μ€μ κ°μ΄λλ₯Ό μ°Έκ³ νμ¬ νκ²½ λ³μλ₯Ό μ€μ ν©λλ€.
3.2. μμ‘΄μ± κ΄λ¦¬ λꡬ μ€μΉ
μ€νλ§ νλ μμν¬λ Mavenμ΄λ Gradleκ³Ό κ°μ μμ‘΄μ± κ΄λ¦¬ λꡬλ₯Ό ν΅ν΄ κ΄λ¦¬λλ κ²½μ°κ° λ§μ΅λλ€. λ°λΌμ μ€νλ§ νλ μμν¬λ₯Ό μ¬μ©ν λλ μ΄λ¬ν λκ΅¬κ° μ€μΉλμ΄ μμ΄μΌ ν©λλ€. λ€μμ Mavenκ³Ό Gradleμ μ€μΉνλ λ°©λ²μ λλ€:
3.2.1. Maven μ€μΉ
Apache Maven 곡μ μΉμ¬μ΄νΈ(https://maven.apache.org)μμ Maven μ€μΉ νμΌμ λ€μ΄λ‘λν©λλ€.
λ€μ΄λ‘λν Maven μ€μΉ νμΌμ μμΆ ν΄μ ν ν, μνλ κ²½λ‘μ μ μ₯ν©λλ€.
νκ²½ λ³μλ₯Ό μ€μ ν΄μΌ ν©λλ€.
M2_HOME
νκ²½ λ³μλ₯Ό Maven μ€μΉ κ²½λ‘λ‘ μ€μ νκ³ ,PATH
νκ²½ λ³μμ%M2_HOME%\bin
μ μΆκ°ν©λλ€.
3.2.2. Gradle μ€μΉ
Gradle 곡μ μΉμ¬μ΄νΈ(https://gradle.org)μμ Gradle μ€μΉ νμΌμ λ€μ΄λ‘λν©λλ€.
λ€μ΄λ‘λν Gradle μ€μΉ νμΌμ μμΆ ν΄μ ν ν, μνλ κ²½λ‘μ μ μ₯ν©λλ€.
νκ²½ λ³μλ₯Ό μ€μ ν΄μΌ ν©λλ€.
GRADLE_HOME
νκ²½ λ³μλ₯Ό Gradle μ€μΉ κ²½λ‘λ‘ μ€μ νκ³ ,PATH
νκ²½ λ³μμ%GRADLE_HOME%\bin
μ μΆκ°ν©λλ€.
3.3. IDE μ€μΉ
μ€νλ§ νλ μμν¬ κ°λ°μ μν΄μλ ν΅ν© κ°λ° νκ²½(IDE)λ₯Ό μ€μΉνλ κ²μ΄ μ’μ΅λλ€. νν μ¬μ©λλ IDEμΈ IntelliJ, Eclipse, Spring Tools Suite λ±μ μ ννμ¬ μ€μΉν μ μμ΅λλ€. κ° IDEμ μ€μΉ κ³Όμ μ ν΄λΉ μ νμ 곡μ μΉμ¬μ΄νΈλ₯Ό μ°Έκ³ νλ©΄ λ©λλ€.
μμ μ¬μ μμ μ μννλ©΄ μ€νλ§ νλ μμν¬λ₯Ό μννκ² μ€μΉνκ³ μ¬μ©ν μ μλ μ€λΉκ° λλ©λλ€.
4. μ€νλ§ νλ μμν¬ λ€μ΄λ‘λ λ° μ€μΉ λ°©λ²
μ€νλ§ νλ μμν¬λ₯Ό λ€μ΄λ‘λνκ³ μ€μΉνλ λ°©λ²μ κ°λ¨ν©λλ€. μλλ μ€νλ§ νλ μμν¬λ₯Ό λ€μ΄λ‘λνκ³ μ€μΉνλ λ¨κ³μ λν μμΈν μ€λͺ μ λλ€:
4.1. μ€νλ§ νλ μμν¬ λ€μ΄λ‘λ
μ€νλ§ νλ μμν¬λ μ€νλ§ κ³΅μ μΉμ¬μ΄νΈ(https://spring.io)μμ λ€μ΄λ‘λν μ μμ΅λλ€. λ€μμ μ€νλ§ νλ μμν¬λ₯Ό λ€μ΄λ‘λνλ λ¨κ³μ λλ€:
μ€νλ§ κ³΅μ μΉμ¬μ΄νΈμ μ μν©λλ€.
μλ¨ λ©λ΄μμ "Projects" μΉμ μΌλ‘ μ΄λνμ¬ "Spring Framework"λ₯Ό μ νν©λλ€.
ν΄λΉ νμ΄μ§μμ "Download" νμΌλ‘ μ΄λν©λλ€.
λ€μ΄λ‘λ νμ΄μ§μμλ λ€μν νμμ λ€μ΄λ‘λ μ΅μ μ΄ μ 곡λ©λλ€. μνλ νμμ μ ννκ³ λ€μ΄λ‘λ λ²νΌμ ν΄λ¦ν©λλ€. μΌλ°μ μΌλ‘λ "ZIP" νμμ μ ννμ¬ λ€μ΄λ‘λνλ κ²μ΄ μΌλ°μ μ λλ€.
λ€μ΄λ‘λκ° μλ£λλ©΄ μμΆμ ν΄μ ν©λλ€. μμΆ νμΌμ μνλ λλ ν 리μ μ μ₯νκ³ μμΆμ ν΄μ ν©λλ€.
4.2. μ€νλ§ νλ μμν¬ μ€μΉ
μ€νλ§ νλ μμν¬μ μ€μΉ κ³Όμ μ λ€μ΄λ‘λν νμΌμ μνλ μμΉμ μμΆ ν΄μ νλ κ²μ λλ€. μ¬κΈ°μλ Windows μ΄μ체μ κΈ°μ€μΌλ‘ μ€λͺ νκ² μ΅λλ€:
μμΆμ ν΄μ ν ν΄λμ λ€μ΄κ°λ©΄ λ€μν νμΌκ³Ό λλ ν λ¦¬κ° μμ΅λλ€. μ΄ μ€
lib
λλ ν 리λ μ€νλ§ νλ μμν¬μ ν΅μ¬ JAR νμΌμ΄ μμΉν κ³³μ λλ€.νμν JAR νμΌμ νλ‘μ νΈμ μΆκ°νκΈ° μν΄ μμΆμ ν΄μ ν ν΄λ κ²½λ‘λ₯Ό 볡μ¬ν©λλ€.
νλ‘μ νΈλ₯Ό κ°λ°νκ³ μλ IDEμμ νλ‘μ νΈλ₯Ό μ½λλ€.
νλ‘μ νΈμ λΉλ μ€μ μ μ΄κ±°λ κ΄λ¦¬νλ λ°©λ²μ IDEλ§λ€ λ€λ₯Ό μ μμ΅λλ€. μ μ ν μμΉμμ νλ‘μ νΈμ μ’ μμ±(dependency) μ€μ μ μ°Ύμ΅λλ€.
μ’ μμ± μ€μ μμμμ
lib
λλ ν 리 κ²½λ‘λ₯Ό μΆκ°νκ³ , νμν JAR νμΌμ μ ννμ¬ μΆκ°ν©λλ€. IDEμ λ°λΌ μ€μ λ°©λ²μ΄ λ€λ₯Ό μ μμΌλ―λ‘ ν΄λΉ IDEμ λ¬Έμλ₯Ό μ°Έκ³ νμΈμ.
μ΄λ κ²νλ©΄ μ€νλ§ νλ μμν¬μ JAR νμΌμ νλ‘μ νΈμ μΆκ°νμ¬ μ¬μ©ν μ μμ΅λλ€. μΆκ°λ JAR νμΌμ νλ‘μ νΈμμ μ€νλ§ νλ μμν¬λ₯Ό μ¬μ©νλ λ° νμν ν΄λμ€μ κΈ°λ₯μ μ 곡ν©λλ€.
5. μ€νλ§ νλ μμν¬ μ€μΉ ν μΆκ° μ€μ λ° μ€ν μμ
μ€νλ§ νλ μμν¬λ₯Ό μ€μΉν νμλ λͺ κ°μ§ μΆκ° μ€μ μ ν΄μ£Όμ΄μΌ ν©λλ€. λν, μ€μΉκ° μ¬λ°λ₯΄κ² μ΄λ£¨μ΄μ‘λμ§ νμΈνκΈ° μν΄ κ°λ¨ν μ€ν μμ λ₯Ό μ€νν΄λ³΄λ κ²μ΄ μ’μ΅λλ€. μλλ μ€νλ§ νλ μμν¬ μ€μΉ ν μΆκ° μ€μ λ° μ€ν μμ μ λν μμΈν μ€λͺ μ λλ€:
5.1. μ€νλ§ νλ‘μ νΈ μμ±
μ€νλ§ νλ μμν¬λ₯Ό μ΄μ©νμ¬ κ°λ°μ μμνκΈ° μν΄ λ¨Όμ μ€νλ§ νλ‘μ νΈλ₯Ό μμ±ν΄μΌ ν©λλ€. μ€νλ§ νλ μμν¬λ μΌλ°μ μΌλ‘ Maven λλ Gradleμ μ΄μ©νμ¬ νλ‘μ νΈλ₯Ό κ΄λ¦¬νλ―λ‘, μ΄λ€ λΉλ λꡬλ₯Ό ν΅ν΄ νλ‘μ νΈλ₯Ό μμ±ν©λλ€. μλλ Mavenμ μ¬μ©νμ¬ μ€νλ§ νλ‘μ νΈλ₯Ό μμ±νλ λ°©λ²μ λλ€:
ν°λ―Έλ λλ λͺ λ Ή ν둬ννΈλ₯Ό μ΄κ³ μνλ μμΉλ‘ μ΄λν©λλ€.
λ€μ λͺ λ Ήμ μ€ννμ¬ Mavenμ μ΄μ©νμ¬ μ€νλ§ νλ‘μ νΈλ₯Ό μμ±ν©λλ€:
mvn archetype:generate -DgroupId=com.example -DartifactId=myproject
μμ λͺ λ Ήμ μ€ννλ©΄
com.example
κ·Έλ£Ή IDμmyproject
μν°ν©νΈ IDλ₯Ό κ°μ§ Maven νλ‘μ νΈκ° μμ±λ©λλ€. μ΄λ λ³ΈμΈμ νλ‘μ νΈμ λ§κ² λ³κ²½ν μ μμ΅λλ€.μμ±λ νλ‘μ νΈ ν΄λλ‘ μ΄λν ν ν΄λΉ ν΄λλ₯Ό IDEμ importνκ±°λ, ν μ€νΈ μλν°μμ νλ‘μ νΈλ₯Ό μ½λλ€.
5.2. μΆκ° μ€μ
μ€νλ§ νλ‘μ νΈλ₯Ό μμ±ν νμλ λͺ κ°μ§ μΆκ° μ€μ μ΄ νμν©λλ€. μλλ μ€νλ§ νλ‘μ νΈμ λν μΆκ° μ€μ μ λν μ€λͺ μ λλ€:
5.2.1. μ€νλ§ νλ μμν¬ μμ‘΄μ± μΆκ°
μ€νλ§ νλ‘μ νΈμμ μ€νλ§ νλ μμν¬λ₯Ό μ¬μ©νκΈ° μν΄ μμ‘΄μ±(dependency)μ μΆκ°ν΄μΌ ν©λλ€. Mavenμ μ¬μ©νλ κ²½μ°, pom.xml
νμΌμ μ΄κ³ λ€μκ³Ό κ°μ΄ μ€νλ§ νλ μμν¬μ μμ‘΄μ±μ μΆκ°ν©λλ€:
<dependencies>
<!-- μ€νλ§ νλ μμν¬ μμ‘΄μ± -->
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-context</artifactId>
<version>5.3.8</version>
</dependency>
</dependencies>
μμ μμ μμλ spring-context
μμ‘΄μ±μ μΆκ°νμ΅λλ€. μ΄λ μ€νλ§ νλ μμν¬μ ν΅μ¬ κΈ°λ₯μ μ 곡νλ λͺ¨λμ
λλ€. νμν λ€λ₯Έ μμ‘΄μ±λ νλ‘μ νΈμ μΆκ°ν μ μμ΅λλ€.
5.2.2. μ€νλ§ μ€μ νμΌ μμ±
μ€νλ§ νλ‘μ νΈμμλ μ€νλ§ μ€μ νμΌμ΄ νμν©λλ€. μ€νλ§ μ€μ νμΌμ μ€νλ§ λΉ(bean)κ³Ό κ·Έλ€ κ°μ μμ‘΄μ±μ μ μνλ μν μ ν©λλ€. μΌλ°μ μΌλ‘ XML νμΌλ‘ μμ±λκ±°λ, μ΅κ·Όμλ μλ° μ΄λ
Έν
μ΄μ
μ μ΄μ©νμ¬ μμ±λκΈ°λ ν©λλ€. μ€νλ§ μ€μ νμΌμ μ΄λ¦κ³Ό μμΉλ μμ λ‘κ² μ§μ ν μ μμ§λ§, μΌλ°μ μΌλ‘ applicationContext.xml
μ΄λΌλ μ΄λ¦μΌλ‘ src/main/resources
ν΄λμ μμΉμν΅λλ€.
applicationContext.xml
νμΌμ μμ±νκ³ μ€νλ§ λΉκ³Ό κ·Έλ€μ μμ‘΄μ±μ μ€μ ν©λλ€. μλλ κ°λ¨ν μμ μ
λλ€:
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans
http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean id="helloBean" class="com.example.HelloBean">
<property name="name" value="John" />
</bean>
</beans>
μμ μμ μμλ HelloBean
μ΄λΌλ μ€νλ§ λΉμ μμ±νκ³ , name
μ΄λΌλ νλ‘νΌν°μ "John"μ΄λΌλ κ°μ μ€μ νμ΅λλ€. νμμ λ°λΌ μ€νλ§ λΉκ³Ό κ·Έλ€μ μμ‘΄μ±μ λ μΆκ°ν μ μμ΅λλ€.
5.3. μ€ν μμ
μ€νλ§ νλ‘μ νΈμ μΆκ° μ€μ μ΄ μλ£λλ©΄ κ°λ¨ν μ€ν μμ λ₯Ό λ§λ€μ΄ λ³΄κ² μ΅λλ€. μ€ν μμ λ μ€νλ§ μ»¨ν
μ€νΈλ₯Ό μμ±νκ³ μ€νλ§ λΉμ κ°μ Έμ μ¬μ©νλ κ°λ¨ν μμ μ
λλ€. μμ λ₯Ό μ€ννκΈ° μν΄ λ€μκ³Ό κ°μ΄ App.java
νμΌμ μμ±ν©λλ€:
import org.springframework.context.ApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;
import com.example.HelloBean;
public class App {
public static void main(String[] args) {
ApplicationContext context = new ClassPathXmlApplicationContext("applicationContext.xml");
HelloBean helloBean = (HelloBean) context.getBean("helloBean");
System.out.println(helloBean.sayHello());
}
}
μμ μμ μμλ applicationContext.xml
νμΌμ λ‘λνμ¬ μ€νλ§ μ»¨ν
μ€νΈλ₯Ό μμ±ν©λλ€. κ·Έλ¦¬κ³ helloBean
μ΄λΌλ μ΄λ¦μ μ€νλ§ λΉμ κ°μ Έμ λ©μλλ₯Ό νΈμΆνμ¬ κ²°κ³Όλ₯Ό μΆλ ₯ν©λλ€.
μ΄μ μμ λ₯Ό μ€νν΄λ³΄λ©΄ Hello, John!
μ΄λΌλ λ©μμ§κ° μΆλ ₯λ κ²μ
λλ€. μ΄λ HelloBean
μ΄ "John"μ΄λΌλ κ°μ κ°μ§ name
νλ‘νΌν°λ₯Ό μ¬μ©νμ¬ λ©μμ§λ₯Ό μμ±νκΈ° λλ¬Έμ
λλ€.
μμ μμ μμλ Mavenμ μ¬μ©νλ κ²½μ°, Mavenμ μ΄μ©νμ¬ μμ λ₯Ό μ»΄νμΌνκ³ μ€νν μ μμ΅λλ€. λ€μ λͺ λ Ήμ μ€ννμ¬ μμ λ₯Ό μ»΄νμΌνκ³ μ€νν©λλ€:
mvn compile
mvn exec:java -Dexec.mainClass="com.example.App"
μ€νλ§ νλ μμν¬ μ€μΉ ν μΆκ° μ€μ λ° μ€ν μμ μ λν λ΄μ©μ μμΈν μ€λͺ νμ΅λλ€. μ΄λ₯Ό μ°Έκ³ νμ¬ μ€νλ§ νλ μμν¬λ₯Ό μννκ² μ¬μ©ν μ μμ΅λλ€.
λκΈ