Spring中的Autowire(XML)不适用于大写ID吗?

时间:2015-10-26 01:37:51

标签: java xml spring spring-mvc

这不起作用:

Triangle.java

<beans>
    <bean id="PointA" class="Point">
        <property name="x" value="0"></property>
        <property name="y" value="0"></property>
    </bean>

    <bean id = "triangle" class="Triangle" autowire="byName" >
    </bean>

</beans>

spring.xml

public class Triangle {

    private Point pointA;

    public void draw(){
        System.out.println("Triangle draw.");
        System.out.println(getpointA().getX());
    }

    /**
     * @return the pointA
     */
    public Point getPointA() {
        return pointA;
    }

    /**
     * @param pointA the pointA to set
     */
    public void setPointA(Point pointA) {
        this.pointA = pointA;
    }

}

这有效:

Triangle.java

<beans>
    <bean id="pointA" class="Point">
        <property name="x" value="0"></property>
        <property name="y" value="0"></property>
    </bean>

    <bean id = "triangle" class="Triangle" autowire="byName" >
    </bean>

</beans>

spring.xml

 $offsetTime = -300;

请注意,上述两个示例之间的唯一区别是pointA对象具有大写&#34; P&#34;在一个小写的&#34; p&#34;在另一个。 我觉得这很可能会影响汽车接线。或者还有其他一些问题吗?

1 个答案:

答案 0 :(得分:0)

如果您查看有关此问题Autowiring collaborators的Spring文档,您可以看到按名称自动装配跟随JavaBeans convention

这就是为什么找到id pointA id的bean,PointA Triangle的bean不会,因为pointA类有名为PointA的属性不是p = malloc(sizeof(char) * 2)