μ¬μ μ μΌλ‘λ "μ£Όμ"μ΄λΌλ μλ―Έλ₯Ό κ°μ§κ³ μμΌλ©°, μλ° μ½λμ @λ₯Ό μ΄μ©ν΄ μ£Όμμ²λΌ λ¬μ νΉμν μλ―Έλ₯Ό λΆμ¬ν΄μ€λ€.
νλ‘κ·Έλ¨ μ½λμ μΌλΆκ° μλ νλ‘κ·Έλ¨μ κ΄ν λ°μ΄ν°λ₯Ό μ 곡νκ³ , μ½λμ μ 보λ₯Ό μΆκ°νλ μ ννλ λ°©λ²μ΄λ€.
μ΄λ Έν μ΄μ μ μ¬μ©νλ©΄ μ½λκ° κΉλν΄μ§κ³ μ¬μ¬μ©μ΄ κ°λ₯νλ€. λν bean(κ°μ²΄)μ λ±λ‘ν λ XMLνμΌμ λ°λ‘ λ±λ‘νμ§ μμλ λλ€.
κ°λ°μκ° μ§μ μμ±ν Classλ₯Ό BeanμΌλ‘ λ±λ‘νκΈ° μν μ΄λ Έν μ΄μ μ΄λ€.
@Component("sender")
// Sender sender = new Sender();
public class Sender implements SenderInter{
public void show() {
System.out.println("show method μν");
}
}
μ¬κΈ°μ μ°Έμ‘°λ³μλ sender
λ‘ μ§μ ν΄μ£Όλ λͺ¨μ΅μ΄λ€. λ°λ‘ μ μ΄μ£Όμ§ μμλ λλ€!
μλμΌλ‘ λ±λ‘λλ λΉμ λ€μμ ν΄λμ€μ 첫문μκ° μλ¬Έμλ‘ λ°λμ΄ μλ μ μ©λλ€.
μ¬κΈ°μ μ΄λ Έν μ΄μ μ μ μΈνλ€κ³ λμ΄ μλλ€.
XMLνμΌμ κ°μ μ»΄ν¬λνΈ μ€μΊμ ν΅ν΄ μ€νλ§ μ»¨ν μ΄λμκ² μ΄λ€ ν΄λμ€κ° λΉμΌλ‘ λ±λ‘λμ΄μΌ νλμ§λ₯Ό μλ €μ£ΌκΈ° μν΄ λ±λ‘μ ν΄μΌλλ€.
<context:component-scan base-package="anno1_auto" />
λΉμ¦λμ€ λ‘μ§μ΄ λ€μ΄κ°λ Serviceλ‘ μ¬μ©λλ ν΄λμ€μμ λͺ μνλ μ΄λ Έν μ΄μ μ΄λ€.
λ΄λΆμ μΌλ‘ @Component λ²μ΄μ§κΈ° λλ¬Έμ beanλ μμ±μ΄ λλ€.
@Service("ap") // AbcProcess ap = new AbcProcess();
public class AbcProcess {
// ... code
}
μμ‘΄μ± μ£Όμ μ ν λ μ¬μ©νλ AnnotationμΌλ‘ μμ‘΄ κ°μ²΄μ νμ μ ν΄λΉνλ beanμ μ°Ύμ μ£Όμ νλ μν μ νλ€.
@Autowiredλ κΈ°λ³Έμ μΌλ‘ μμ±μ
, Setter
, νλ
μμΉμμ μ¬μ©ν μ μλ€.
@Autowiredλ μμ‘΄ κ°μ²΄μ νμ μ ν΄λΉνλ beanμ μ°Ύμ μ£Όμ νκΈ° λλ¬Έμ ν΄λΉ νμ μ beanμ μ€μ ν΄μ£Όλ μ΄λ Έν μ΄μ μ΄ λ°λμ νμνλ€.
@Service
public class SenderProcess {
// type(Sender)μ μν 맀ν (νλ‘μ νΈμμ μ°Ύκ³ λ§€νν΄μ€λ€.) ν΄λμ€μ ν¬ν¨κ΄κ³ (μμ x)
@Autowired
private Sender sender;
}
@Service
public class SenderProcess {
public Sender sender;
@Autowired
public TestService(Sender sender) {
this.sender = sender;
}
}
@Autowired // λ©μλμ μλμΌλ‘ Sender νμ
κ°μ²΄λ₯Ό 맀νν΄μ€λ€ sender νμ
κ°μ²΄λ₯Ό μ°Ύλλ€.
public void setSender(Sender sender) {
this.sender = sender;
}