因此。在阅读了官方文档并发现我正在做的事情没有任何问题之后,我只是用尽了想法。
我的application.properties:
vz.info.version=0.2.8
我的属性组件
import lombok.Getter;
import lombok.Setter;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
@Configuration
public class VZProperties {
@Value("${vz.info.version}")
@Getter
@Setter
private String apiVersion;
}
apiVersion
我到处都是空的。
龙目岛似乎不是问题。我从文档中遗漏了什么?
修改
我想这样称呼:
import com.fasterxml.jackson.annotation.JsonProperty;
import com.google.common.collect.Lists;
import lombok.Getter;
import java.io.Serializable;
import java.util.List;
public class VZNFCTagResponse implements Serializable{
private static final long serialVersionUID = -2824767225275894898L;
@Autowired
private VZProperties properties;
public VZNFCTagResponse(List<VZNFCTagAction> tagList){
this.tags = tagList;
}
/*...*/
@JsonProperty
public String apiVersion(){
return this.properties.getApiVersion();
}
}
在通过注入环境进行检查以使其运行之后,该属性也不存在。
答案 0 :(得分:2)
您的班级VZNFCTagResponse未注册为Spring Beans。 将其注释为@Component并使用DI注入他。
答案 1 :(得分:1)
避免将其变为组件并且仍然从DI中受益的唯一方法是将其标记为@Configurable
并启用加载时编织。你不能将它注入创建VZNFCTagResponse
的组件并将该版本作为构造函数参数传递吗?