【问题标题】:java/Spring Inject a property value in pojo (non-managed)java / Spring在pojo中注入属性值(非托管)
【发布时间】:2016-01-27 15:18:39
【问题描述】:

我有一个 pojo 类,其中的字段使用我的自定义注释进行注释。它是一个非 Spring 托管类。

public class ReportHeader {

    @Field(position = 1)
    private String jobName;

    ....
}

现在我想通过属性文件在注释中传递“position”属性的值,如下所示:

public class ReportHeader {

    @Field(position = "${read.my.position}")
    private String jobName;

    ....
}

在有或没有 spring 的 pojo 类中我如何做到这一点?

【问题讨论】:

    标签: java spring properties


    【解决方案1】:

    如果它不是由 Spring 管理的,你不能指望它注入任何东西。这是一个非此即彼的命题。

    您可以让 Spring 管理 .properties,然后为您的 ReportHeader 提供一个构造函数,以使用传入的 Properties 对象设置其状态。

    【讨论】:

    • 你的意思是我可以在其中有另一个类(弹簧管理)加载属性并将其传递给 ReportHeader?
    • 你可以让 Spring 加载一个属性文件,是的。您听起来像是要调用新的 ReportHeader。如果这是真的,请找到一种方法从 Spring 获取所需的属性并将其传递给 ReportHeader。
    • 但是我仍然如何将值传递给注释属性
    • 你没有 - 当你调用 new 来创建它时,你将它传递给 ReportHeader 的构造函数。您将从 Spring bean 工厂获取 Properties bean 并将其传递。
    猜你喜欢
    • 2014-05-27
    • 2019-12-01
    • 2014-02-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-09-19
    • 2011-10-31
    相关资源
    最近更新 更多