我正在尝试使用YamlBeans序列化fxml属性。具体是一个属性。该类有一个私有属性字段和fxml标准getter和setter方法,但序列化发生时信息不会保存到文件中。
入口点:
import java.io.IOException;
public class Main {
public static void main(String[] args) throws IOException{
Person person = new Person(5);
YamlSerializer.serialize(person, System.getProperty("user.dir") + "/person.yml");
}
}
人物.java
import javafx.beans.property.Property;
import javafx.beans.property.SimpleDoubleProperty;
public class Person{
private Property<Number> age;
public Person(){
age = new SimpleDoubleProperty();
age.setValue(3);
}
public Person(Number age){
this.age = new SimpleDoubleProperty(age.doubleValue());
}
public Property<Number> ageProperty() {
return this.age;
}
public Number getAge() {
return this.ageProperty().getValue();
}
public void setAge(final Number age) {
this.ageProperty().setValue(age);
}
}
YamlSerializer.java
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import com.esotericsoftware.yamlbeans.YamlReader;
import com.esotericsoftware.yamlbeans.YamlWriter;
public class YamlSerializer {
public static void serialize(Object object, String path) throws IOException{
File file = new File(path);
if(!file.exists())
file.getParentFile().mkdirs();
YamlWriter writer = new YamlWriter(new FileWriter(path));
writer.write(object);
writer.close();
}
public static Object deserialize(String path) throws IOException{
File file = new File(path);
if(!file.exists()){
if(!file.getParentFile().exists())
if (!file.getParentFile().mkdirs()){
System.out.println("Error creating files");
}
}
YamlReader reader = new YamlReader(new FileReader(path));
return reader.read();
}
}
输出文件person.yml:
!Person {}
您的代码看起来正常。Beans 获得
属性为您的类返回什么?这就是 YamlWriter 使用的。
结果,Beans正在查找所有属性,然后查找get/set方法。它看起来应该找到number
字段,然后找到setNumber
和getNumber
方法,但没有提供完整的类代码。
我建议提供一个SSCCE。试图帮助没有这种能力的人是徒劳的,也是浪费时间。
编辑:Beans 查找字段的方式,然后是匹配的二传手/获取者,属性
要解决这个问题,您需要修补Beans,以便更智能地找到没有相应字段的setter/getter。这样做的公关会被合并。
但是房产没有被选中。例如,下面的代码创建一个${log-path}文件夹来存储日志文件,而不是所需的logs文件夹。 我做错了什么?
我有一个基类,它使用php魔术方法__get和__set,可以修改扩展类中的私有属性。然后,我为相关的私有属性构建setter getter函数(类似于http://www.beaconfire-red.com/epic-stufle/better-getters-and-setters-php)
我要求Spring Boot应用程序加载一些理想地适合某种迷你电子表格的配置。几乎所有配置都由绑定到POJO的YAML属性文件组成,因此: 如果YAML被构造为这样的对象序列,则这可以很好地工作: 然而,从这个配置的用户/作者的角度来看,如果数据被组织成一个“电子表格”,那就太好了,因为他们将能够在彼此的上下文中看到各种值,而不是上面的大列表(大约有十几个条目)。类似这样的东西: 这是有效的YAM
我想从YAML向Spring上下文注入一些值。YAML的结构类似,因此我不想重复代码,但Spring启动失败,因为它无法将值注入占位符。 请注意我的: 然后我将这些值注入YAML, 然后我将其导入到配置属性上下文: 但是< code > @ Value(" $ { auto agents . supplier } ")不起作用。 请建议。
主要内容:节点锚点,节点标签,节点内容每个表示节点包括两个主要特征,称为锚和标记。可以使用节点内容指定节点属性,从字符流中省略。 节点表示的基本示例如下 - 节点锚点 属性表示将来参考的节点。 节点中YAML表示的字符流用符号表示。 YAML处理器不需要保留锚名称以及其中包含的表示细节。以下代码解释了这一点 - 锚节点生成的YAML输出如下所示 - 节点标签 属性表示完全定义节点的本机数据结构的类型。 标签用()指示符表示。 标签被视
我在Java spring-boot应用程序的src/main/resources中定义了以下application-errors.yml文件: 请注意,我尝试了两种不同的格式来指定属性。 我通过@Configuration注释类中的以下Bean加载该属性文件: 我看到属性是通过Spring环境变量加载的,但不是我所期望的模式。调试时,我可以看到加载的属性文件的源包含以下值: 看起来 yaml 文