Message.java
public class Message {<br />public void play(){<br />System.out.println(new Date());<br />}<br />}
MessageManager.java
public abstract class MessageManager {<br />public void display() {<br />Message m = createMessage();<br />m.play();<br />}</p><p>public abstract Message createMessage();<br />}
context.xml
<bean id="message" class="class3.Message" abstract="false" scope="prototype"<br />lazy-init="default" autowire="default" dependency-check="default"><br /></bean><br /><bean id="messageManager" class="class3.MessageManager"><br /><lookup-method name="createMessage" bean="message" /><br /></bean>
對於Lookup Method Injection,spring將使用CGLIB產生一個MessageManager子類實現,並且在每次調用createMessage方法時,建立一個Message對象並傳回。
需要使用cglib.jar庫,一般包含在Spring AOP套件中。
Lookup Method Injection是Spring提供的Method Injection方案之一,它可以指令方法createMessage(),由spring提供實現,將執行的Message對象注入MessageManager之中。