java接口中的@Value注解

问题描述 投票:0回答:1

我有一个接口父类,我们在这里称之为

IParent
。有两个子类实现了这个接口
ChildA
ChildB
ChildA
还扩展了另一个类
OtherClass

public interface IParent{

    @Value("${car.color:blue}")
    public final String color = "blue";

    public int doSomething();
}


public class ChildA extends OtherClass implements IParent{
    public int doSomething();

}


public class ChildB implements IParent{
    public int doSomething();
}

我想在我的应用程序中使用

iParent.color
,但我希望从设置文件中读取
color
,因为该变量在界面中是最终的,因此不起作用。我无法将其移至派生类的原因是因为我不希望在使用派生类的地方进行类型转换。知道如何让它发挥作用吗?

java spring-boot dependency-injection annotations
1个回答
0
投票

由于 Spring 中的属性(来自 yaml 或属性文件)已加载到系统属性中,因此您可以执行以下操作:

public interface IParent{

    public final String color = System.getProperty("car.color");

    public int doSomething();
}
© www.soinside.com 2019 - 2024. All rights reserved.