Java 将springboot属性映射到JAXB命名空间

Java 将springboot属性映射到JAXB命名空间,java,spring,spring-boot,jaxb,Java,Spring,Spring Boot,Jaxb,我有以下代码片段: @Data @XmlAccessorType(value = XmlAccessType.FIELD) @XmlRootElement(name = "loginRequest", namespace = "http://www.something.com/a") public class LoginRequest { @XmlElement(namespace = "http://www.something.com/b") private String he

我有以下代码片段:

@Data
@XmlAccessorType(value = XmlAccessType.FIELD)
@XmlRootElement(name = "loginRequest", namespace = "http://www.something.com/a")
public class LoginRequest {
    @XmlElement(namespace = "http://www.something.com/b")
    private String hello;
}
我希望在我的
应用程序.yaml
文件中有名称空间,以便将该代码更改为:

@Data
@XmlAccessorType(value = XmlAccessType.FIELD)
@XmlRootElement(name = "loginRequest", namespace = "${something.namespace.login}")
public class LoginRequest { 
    @XmlElement(namespace = "${something.namespace.hello}")
    private String hello;
}
更理想的情况是,我希望对值使用Properties对象,这样我可以:

@Data
@XmlAccessorType(value = XmlAccessType.FIELD)
@XmlRootElement(name = "loginRequest", namespace = "#{namespaces.login}")
@NoArgsConstructor
public class LoginRequest {
 @XmlTransient
 public Namespaces namespaces;

 @Autowired
 public LoginRequest(Namespaces namespaces) {
     this.namespaces = namespaces;
 }

 @XmlElement(namespace = "#{namespaces.hello}")
 private String hello;
在最后两个示例中,pojo是一个Springbean,通过
@Configuration
类中的
@bean
注释实例化


不幸的是,它似乎不起作用,因为从未注入值。有没有办法从
应用程序.yaml
文件中注入这些名称空间?

Jaxb,因为所有xml/json绑定程序都没有这种灵活性。您可以自己用JDOM序列化对象。另外,我不确定您是否意识到,将XML反序列化到您的对象中从根本上说是不可调和的。Jaxb与所有XML/json绑定器一样,没有这种灵活性。您可以自己用JDOM序列化对象。此外,我不确定您是否意识到,将XML反序列化到对象中从根本上说是不可调和的。