μΉκ³΅λ·°/μ€νλ§
DI(Dependency Injection) - κ°μ²΄ μμ±μ μ΄λμ μ΄λ»κ² νλλ
μ΄λ
Έν€_
2021. 7. 6. 08:59
μ€νλ§ νλ μμν¬μμλ Container(IoC)λ₯Ό λ§λ€μ΄ λκ³ , κ·Έ μμμ κ°μ²΄(bean)λ₯Ό μμ±νμ¬ νμ©νλ€.
νμν λλ§λ€ κ°μ²΄λ₯Ό μμ±νλ κ²μ΄ μλλΌ λ¦¬μμ€μμ κ°μ²΄λ₯Ό κΊΌλ΄ μ¬μ©νλ€κ³ μκ°νλ©΄ λλ€.
Beanμ μμ±νλ λ°©λ²
1. xml νμΌ μ΄μ©
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xmlns:context="http://www.springframework.org/schema/context" xmlns:tx="http://www.springframework.org/schema/tx"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd http://www.springframework.org/schema/context http://www.springframework.org/schema/context/spring-context.xsd http://www.springframework.org/schema/tx http://www.springframework.org/schema/tx/spring-tx.xsd">
<bean id="tWalk" class="testPjt.TransportationWalk"/>
</beans>
public class MainClass {
public static void main(String[] args)
{
//1. κΈ°μ‘΄ μλ° λ°©λ²
TransportationWalk tw = new TransportationWalk();
tw.move();
//2. xml μ¬μ© λ°©λ²
GenericXmlApplicationContext ctx = new GenericXmlApplicationContext("classpath:appConfig.xml");
TransportationWalk tw2 = ctx.getBean("tWalk", TransportationWalk.class);
tw2.move();
ctx.close();
}
}
DI λΌλ 컨μ μ μ€νλ§μ κ³ μ κΈ°λ₯μ μλλ€.
κ°μ²΄λ₯Ό λ 립νν΄μ νμ₯&μ μ§λ³΄μ μ©μ΄νκ² κ°λ°κ°λ₯νκ² νλλ‘ νλ κ°μ²΄μ§ν₯ κ°λ° λ°©λ² μ€μ νλμ.
-> μ μ°ν΄μ§
DI κΈ°λ²
1. μμ±μμμ μ£Όμ (new)
2. setterμμ μ£Όμ
3. μμ±μμμ λν΄νΈλ‘ μ£Όμ ν ν, setterλ₯Ό μ΄μ©νμ¬ λ³κ²½ κ°λ₯νκ² ν¨.