如何使用在 spring 中的另一个类中定义的参数从静态方法初始化 bean



我想创建一个新的 DateTimeFormatter 作为 bean,并将其交给另一个 bean。

这就是我在代码中的做法...

DateTimeFormatter formatter = DateTimeFormat.forPattern("blah");

但是如何在春季初始化格式化程序?

这是我从有用的回复中提出的解决方案

<bean id="dateFormatter" class="org.joda.time.format.DateTimeFormat" factory-method="forPattern">
  <constructor-arg value="blah"/>
</bean>

自从我使用Spring以来已经有一段时间了,但是这里是:

DateTimeFormatter不是从接口扩展的(我只找到了对 Joda 接口的引用),因此使用它的任何内容都必须完全引用该类型。 这意味着您不会从依赖注入中获得任何好处(因为使用格式化程序的内容与格式化程序的确切类型紧密耦合)。 所以你真的要这样做吗?

假设您这样做,从文档中查看第 4.3.2.2 节及更高版本,它为您提供了创建 Bean 的所有方法。 您可以通过静态方法创建格式化程序,然后将其传递给使用它的构造函数(构造函数注入,第 4.4.1.1 节)

最新更新