java - Spring:PropertyPlaceHolderConfigurer 用于设置非字符串/整数属性的值

标签 java spring properties

我见过的所有使用 PropertyPlaceHolderConfigurer 的示例似乎都在设置简单的值,例如字符串和整数。

如何使用 PPC 来设置类的值。

例如如果我有一个类签名Source(String name,DistributionSample批处理,DistributionSample延迟)

我将如何设置批量和延迟属性。

还有一个小问题。 DistributionSample 是一个抽象类。好的一面是,使用 propertyPlaceHolder 的类知道需要实例化的“Solid”类的 beanName。

任何帮助将不胜感激。

最佳答案

正如您所说,PropertyPlaceHolderConfigurer 仅适用于 String 可以转换为目标类型的 String 值。

所以你可以告诉 Spring 如何 convert a StringDistributionSample 对象中,或者您可以使用属性占位符来引用 bean 名称,例如

<bean class="Source">
   <constructor-arg value="source name"/>
   <constructor-arg ref="${batch.beanName}"/>
   <constructor-arg ref="${delay.beanName}"/>
</bean>

<bean id="batch" class="....."/>
<bean id="delay" class="....."/>

如果您的属性文件包含

batch.beanName = batch
delay.beanName = delay

然后 bean 引用将被解析。如果这对您有用,您还可以对 bean 类使用属性占位符语法:

<bean id="sample" class="${batch.classname}/>

关于java - Spring:PropertyPlaceHolderConfigurer 用于设置非字符串/整数属性的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2357460/

相关文章:

java - 用java创建一个 super 简单的表格小程序

Spring Batch Process 指示器模式

python - 使用 Matplotlib 绘制散点图矩阵的刻度属性

java - 如何在命令行上避免Java系统属性?

java - eclipse 。调试时如何查看标准函数的来源?

java - Thread.yield 和 Java 中的非阻塞 IO 一样吗

java - 从java向ms access插入数据

java - Maven Spring hibernate

java - Spring MVC 调度程序 servlet,不带应用程序名称的 URI

c# - C# 3.0+ 中属性和字段的区别