如何指定不是原始值的构造函数参数(或类似String的简单类型),但仍然是XML配置文件中Java库的类部分?
到目前为止,XML对于简单的值也适用,例如
<bean id="foo" class="app.model.provider.IFoo">
<constructor-arg name="bar" value="baz"/>
</bean>
如何定义需要的依赖项,例如构造函数中的java.time.Instant实例?
答案 0 :(得分:1)
Spring允许您使用factory methods来获取实例。
假设你想做相同的
Instant.now();
你会用
<bean id="anInstant" class="java.time.Instant" factory-method="now"/>
如果你想做
Instant.parse("2015-07-24T17:10:00Z")
你会用
<bean id="anInstant" class="java.time.Instant" factory-method="parse">
<constructor-arg value="2015-07-24T17:10:00Z" />
</bean>
但是,我不会创建可访问的Instant
bean。如果需要将它们传递给其他bean的构造函数,请直接提供它们,不带名称
<bean id="example" class="com.example.Example">
<constructor-arg name="startTime">
<bean class="java.time.Instant" factory-method="parse">
<constructor-arg value="2015-07-24T17:10:00Z" />
</bean>
</constructor-arg>
</bean>