当前位置: 首页 > 面试题库 >

在Spring bean上下文中声明对象数组

澹台蕴藉
2023-03-14
问题内容

我正在尝试在Spring上下文文件中创建对象数组,以便可以将其注入声明为这样的构造函数中:

public RandomGeocodingService(GeocodingService... services) { }

我正在尝试使用<array>标签:

<bean id="googleGeocodingService" class="geocoding.GoogleGeocodingService">
 <constructor-arg ref="proxy" />
 <constructor-arg value="" />
</bean>

<bean id="geocodingService" class="geocoding.RandomGeocodingService">
    <constructor-arg>
        <array value-type="geocoding.GeocodingService">
            <!-- How do I reference the google geocoding service here? -->
        </array>
    </constructor-arg>
</bean>

我尚未在文档中找到如何执行此操作的示例或其他内容。另外,对于如何实现我想做的更好的方法,您有任何建议,请告诉我:)。


问题答案:

那是因为没有<array>,只有<list>

消息是,Spring会根据需要在列表和数组之间进行自动转换,因此将数组定义为<list>,Spring会为您强制将其转换为数组。

这应该工作:

<bean id="googleGeocodingService" class="geocoding.GoogleGeocodingService">
   <constructor-arg ref="proxy" />
   <constructor-arg value="" />
</bean>

<bean id="geocodingService" class="geocoding.RandomGeocodingService">
    <constructor-arg>
        <list>
           <ref bean="googleGeocodingService"/>
        </list>
    </constructor-arg>
</bean>

如果需要,Spring还可以将单个bean强制转换为列表:

<bean id="geocodingService" class="geocoding.RandomGeocodingService">
    <constructor-arg>
       <ref bean="googleGeocodingService"/>
    </constructor-arg>
</bean>


 类似资料:
  • 问题内容: 我有一个Spring bean(dao)对象,该对象通过以下xml在ServletContext中实例化: 该bean在我的webapp-servlet.xml文件中声明,并由我的应用程序在ServletContext中使用。 我也在使用SpringSecurity。据我了解,这在不同的上下文(SecurityContext)中运行。 我的应用程序具有webapp-security.x

  • 问题内容: 我想问一个关于Java的问题。我有一个用户定义的对象类,学生,它有2个数据成员,名称和ID。在另一个类中,我必须声明那个object [](例如)。但是,我不知道对象数组的大小。是否可以声明对象数组但不知道大小?谢谢。 问题答案: 用户。添加新元素时,它将自动扩展。以后,您可以根据需要将其转换为数组。 作为另一个选择(不确定您到底想要什么),您可以声明字段,而不必立即对其进行初始化。

  • 我试图在OpenAPI 3中定义一个查询对象: 但示例值和架构未显示在 Swaager UI 中。 是有错误还是我错过了什么?

  • 问题内容: 有人可以澄清以下代码的重要性吗? 对象A被声明为final,但是我可以更改该对象的实例变量的值,也可以获取更新后的值。那么将对象声明为final的意义何在?我知道将原始数据类型声明为final,这使该变量保持不变。 问题答案: ob将无法引用任何其他对象:final关键字。 不能重新分配。但是您可以更改其内部(如果它是原始的,则是可变的)。所以这有效: 但这不是:

  • 我有以下的表达方式: 这不起作用,因为我的数组不是<code>string<code>类型,而是包含一个对象列表。如何删除数组以包含对象列表? *没有一个新的组件,它声明一个类的句子,这似乎是一种浪费

  • 我正在尝试使用Drools决策表。我面临的问题是drools没有为我的当前对象分配变量。 我从口水中得到这个错误: Drools错误:无法解决规则编译错误患者 我的excel文件如下所示: 我的部分实验室代码如下所示: 生成的drl如下所示: 很明显,我需要设置“patient”变量。但我不知道怎么做。正确的drl版本如下: