gpt4 book ai didi

java - 在 Spring 中,如何创建具有配置默认值的 POJO?

转载 作者:行者123 更新时间:2023-12-02 03:28:10 26 4
gpt4 key购买 nike

我正在使用 Spring 框架来处理具有 key 的属性文件:

empty.value = -

我希望能够创建一个 POJO,该 POJO 将该空值作为 POJO 默认构造函数的默认值。像这样的事情:

public class Dog {

private String name;

public Dog(){
}

public Dog(String name){
this.name = name;
}
}

因此,如果调用Dog d = new Dog(),则d.name将从空变为-。值键。

Autowiring name变量将只是null,因为Spring不知道POJO以及使用@Value("${empty.value }")

实现这一目标的最佳方法是什么?

编辑:澄清一下,整个系统中有许多Dog,我需要能够根据请求初始化它们。

编辑 2:考虑以下用例 - 我有一个包含方法的界面:

Dog transform(List<String> animals);

我希望能够知道从转换方法返回的任何 Dog 都具有 - (可配置)作为 name或者在创建时传递给构造函数(或稍后的 setter )的不同值。我想确保无论 transform 在任何实现中做什么,即使失败,我都会有一个有效的 Dog ,其 name 为提到过。

最佳答案

如果您使用 Spring 框架,则必须也使用 Spring 创建所有 Spring bean。例如:

Dog d = (Dog)context.getBean("dog");

执行 Dog d = new Dog() 是一个有效的实例,但这样 Spring 就不会处理它。

有关编辑 2 的更新

如果您想确保在调用 transform 方法时始终拥有有效的狗实例,可以在调用者代码中使用 try catch block 。例如:

// caller class
Dog dog = null;
try{
dog = yourInterface.transform(animals);
if (dog == null || !validName(dog.name)){
throw new RuntimeException("Not a valid dog/name");
}
}catch(Exception ex){
dog = (Dog)context.getBean("dog");
}

关于java - 在 Spring 中,如何创建具有配置默认值的 POJO?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38503615/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com