Spring Lookup方法注入不起作用

我试图用一个简单的例子来实现查找方法注入。 但是,似乎无法通过该方法注入bean。

我有一个简单的bean; DemoBean如下:

public class DemoBean {

    private String message;

    public DemoBean() {

    }

    public DemoBean(String message) {
        this.message = message;
    }

    // Getter and Setter methods

    @Override
    public String toString() {
        return "DemoBean{" +
                "message='" + message + ''' +
                '}';
    }
}

我试图将DemoBean注入另一个bean中; PropertyBean:

public abstract class PropertyBean {

    private DemoBean bean;
    private String message;
    // other members...

    public PropertyBean(String message) {
        this.message = message;
    }

    // Getter and Setter methods...

    // Method for lookup injection
    protected abstract DemoBean createBean();

    @Override
    public String toString() {
        return "PropertyBean{" +
                "bean=" + bean.toString() +
                ", message='" + message + ''' +
                ", number=" + number +
                '}';
    }
}

Noe,我的豆配置:

<bean id="demobean" class="aro.discoverspring.beans.DemoBean" scope="prototype">
<property name="message" value="The Default Message!!!" />
</bean>

<bean id="propertybean" class="aro.discoverspring.beans.PropertyBean">
<constructor-arg name="message" value="A message in PropertyBean"/>
<lookup-method name="createBean" bean="demobean" />
</bean>

尝试创建PropertyBean的实例时。 我能够这样做。 但是,当我做以下..我得到DemoBean属性空指针异常(因为该bean没有被注入!!)

PropertyBean pb = (PropertyBean) ctx.getBean("propertybean");       
System.out.println(pb.toString());

我究竟做错了什么? 我错过了什么,或者我忽略了那里的一些愚蠢!? Spring 3.0参考(第3.4.6.1节)似乎也是这样做的。


bean属性不应该被注入。 正如我了解spring为您实现createBean方法一样,所以当您调用pb.createBean()它应该返回DemoBean实例。 但是你不要在ProperyBeanbean属性ProperyBean所以没有办法使它不为null。

链接地址: http://www.djcxy.com/p/22681.html

上一篇: Spring Lookup method injection not working

下一篇: Why can't I use git log