λ³Έλ¬Έ λ°”λ‘œκ°€κΈ°

Spring/Spring Quick Start

Setter μΈμ μ…˜ μ΄μš©ν•˜κΈ° (p λ„€μž„μŠ€νŽ˜μ΄μŠ€)

λ¨Όμ € μƒμ„±μž λŒ€μ‹  setter λ©”μ†Œλ“œλ₯Ό μΆ”κ°€ν•œλ‹€.

public class SamsungTV {
	private Speaker speaker;
	private int price;

	public void SamsungTV(){ }

	// μƒμ„±μž λŒ€μ‹  setter λ©”μ†Œλ“œ
	public setSpeaker (Speaker speaker){ this.speaker = speaker; }
	public void setPrice(int price){ this.price = price; }
}

Setter μΈμ μ…˜μ„ μ΄μš©ν•˜λ €λ©΄ <constructor-arg> λŒ€μ‹  <property>λ₯Ό μ‚¬μš©ν•œλ‹€.

<bean id="tv" class="polymorphism.SamsungTV"> 
	<property name="speaker" ref="sony"></property> 
	<property name="price" value="2700000"></property>
</bean>

<bean id="sony" class="polymorphism.SonySpeaker"></bean>
<bean id="apple" class="polymorphism.AppleSpeaker"></bean>

<property>의 name 속성값이 ν˜ΈμΆœν•˜κ³ μž ν•˜λŠ” λ©”μ†Œλ“œ 이름이닀.

  • name="speaker"이면 setSpeaker()κ°€ 호좜되고

  • name="addressList"이면 setAddressList()κ°€ 호좜되고

  • name="boardDAO"이면 setBoardDAO()κ°€ ν˜ΈμΆœλœλ‹€.

p λ„€μž„μŠ€νŽ˜μ΄μŠ€λ₯Ό μ‚¬μš©ν•  μˆ˜λ„ μžˆλ‹€.

p λ„€μž„μŠ€νŽ˜μ΄μŠ€μ— λŒ€ν•œ λ³„λ„μ˜ schemaLocation은 μ—†μœΌλ―€λ‘œ μ•„λž˜μ˜ λ„€μž„μŠ€νŽ˜μ΄μŠ€λ§Œ 적절히 μ„ μ–Έν•˜κ³  μ‚¬μš©ν•˜λ©΄ λœλ‹€.

xmlns:p="http://www.springframework.org/shema/p"

p:λ³€μˆ˜λͺ…-ref="μ°Έμ‘°ν•  객체의 μ΄λ¦„μ΄λ‚˜ 아이디"
p:λ³€μˆ˜λͺ…="μ„€μ •ν•  직접적인 κ°’"
<bean id="tv" class="polymorphism.SamsungTV" p:speaker-ref="sony" p:price="270000"/>

<bean id="sony" class="polymorphism.SonySpeaker"/> <!-- 지λͺ©λ‹Ήν•œ 친ꡬ -->
<bean id="apple" class="polymorphism.AppleSpeaker"/>