gpt4 book ai didi

java - Spring idref 没有像我想象的那样工作

转载 作者:行者123 更新时间:2023-12-01 10:14:30 26 4
gpt4 key购买 nike

鉴于 spring.xml 的以下代码,它发现 idref 有问题......请解释一下

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN 2.0//EN" "http://www.springframework.org/dtd/spring-beans-2.0.dtd">

<beans>
<bean id="triangle" class="org.koushik.javabrains.Triangle">

<property name="pointA">
<idref bean="zeroPoint"/>
</property>

<property name="pointB">
<bean class="org.koushik.javabrains.Point">
<property name="x" value="-20" />
<property name="y" value="0" />
</bean>
</property>

<property name="pointC">
<bean class="org.koushik.javabrains.Point">
<property name="x" value="20" />
<property name="y" value="0" />
</bean>
</property>

</bean>

<bean id="zeroPoint" class="org.koushik.javabrains.Point">
<property name="x" value="0" />
<property name="y" value="0" />
</bean>
<alias name="triangle" alias="triangle-alias" />
<alias name="triangle" alias="triunghi" />
</beans>

从一些来源我发现:

<property name="pointD">
<idref bean="squarePointD"/>
</property>

等于下面的

<property name="pointD">
<value>squarePointD</value>
</property>

最佳答案

idrefs 可以被视为字符串。 idref 用于传递您的 bean 所引用的 bean 的名称(作为字符串)。你的类中是否有 PointA、pointD 等字符串?

由于您似乎引用了自定义类org.koushik.javabrains.Point,因此它可能不起作用。当您想使用 idref 时,您设置/注入(inject)的 Setter 或构造函数参数应该是字符串。容器将验证通过 idref 引用的 bean 在部署时是否确实存在。否则会抛出错误。

您可以看看https://stackoverflow.com/a/18539137/668951ref vs idref attributes in spring bean declaration了解更多详情。

关于java - Spring idref 没有像我想象的那样工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35982113/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com