当前位置: 首页 > 面试题库 >

如何在运行时使用JAXB批注

惠诚
2023-03-14
问题内容

我有以下豆类

@XmlRootElement(name = "book")
//Optional
@XmlType(propOrder = {"name" })
public class Book {

private String name;
private int num;

@XmlTransient
public int getNum() {
    return num;
}

public void setNum(int num) {
    this.num = num;
}

// name for your XML-Output:
@XmlElement(name = "bookName")
public String getName() {
    return name;
}
public void setName(String name) {
    this.name = name;
}
}

以及相应的编组代码

private static void marshalXML(Book bookstore) {

    Writer w = null;
    try {
        // create JAXB context and instantiate marshaller
        JAXBContext context = getContext();
        if (context != null) {
            Marshaller m = context.createMarshaller();
            m.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, Boolean.TRUE);
            m.marshal(bookstore, System.out);
            w = new FileWriter(BOOKSTORE_XML);
            m.marshal(bookstore, w);
        }
    } catch (Exception e) {
        System.out.println("error in marshalling");
    } finally {
        try {
            w.close();
        } catch (Exception e) {
        }
    }
}

我想使属性在运行时可配置,我想在运行时在“ num”上指定@xmltransient而不进行编译。我该怎么办?


问题答案:

注意: 我是 EclipseLink
JAXB(MOXy)的
负责人,并且是 JAXB
2(JSR-222)
专家组的成员。

MOXy JAXB实现提供了通过其MetadataSource扩展在运行时操纵映射元数据的功能。有关详细示例,请参见:

  • http://blog.bdoughan.com/2011/06/moxy-extensible-models-refresh-example.html


 类似资料:
  • 我想使用java程序运行一个批处理文件,当我双击. bat文件时,它要求我输入“D”,然后在C驱动器中创建一些文件夹,以下是. bat文件的内容: 我的Java代码如下: 它没有给我任何错误,但它既没有要求我输入任何值,也没有创建任何文件夹。 我想知道在java代码中我需要做什么,这样它会要求我输入' D ',然后输入。bat文件应该以正常流程继续。 感谢任何帮助。

  • 问题内容: 在整个类路径中搜索带注释的类的最佳方法是什么? 我正在做一个库,我想允许用户注释他们的类,所以当Web应用程序启动时,我需要扫描整个类路径以查找某些注释。 你知道执行此操作的库或Java工具吗? 编辑:我正在考虑类似Java EE 5 Web服务或EJB的新功能。你使用或注释类,系统在加载时会找到这些类,因此可以远程访问它们。 问题答案: 使用 API 组件提供程序,它从基本程序包扫描

  • 问题内容: 我一直在研究如何使用Java 8和spring在运行时更改作业的频率。这个问题非常有用,但是并不能完全解决我的问题。 现在,我可以配置下次上班的日期。但是,如果将延迟设置为1年,那么我需要等待1年才能考虑新配置。 我的想法是,如果更改了配置值(因此来自另一个类),则停止计划的任务。然后重新计算下一次应执行的任务。也许有更简单的方法可以做到这一点。 这是我到目前为止的代码。 这就是我想做

  • 问题内容: 我需要一些有关JAXB Annotations的帮助,但找不到好的文档可以帮助我解决这个问题。 我有一个要编入XML的类。我的班级看起来像这样: 召回类如下所示: 因此,它将产生以下XML输出: 但是我希望ArrayList以不同的方式显示,如下所示: 知道我该怎么做吗?我认为问题出在我的架构上,但我将其用于编组: 任何想法如何解决这一问题?谢谢! 问题答案: 试试这个: 从文档中:

  • 我正在使用Spring Boot+Spring Batch(注释),遇到了一个我必须运行2个作业的场景。 我有员工和工资记录,需要使用spring批处理更新。我已经按照本教程spring-batch入门教程为Employee和Salary对象配置了

  • 问题内容: 我创建了一个独立的Java应用程序,试图在Ubuntu 10.04终端中使用“ cd”命令更改目录。我使用了以下代码。 但是上面的代码给出了以下错误 谁能告诉我如何实施? 问题答案: 没有称为的可执行文件,因为它 不能 在单独的进程中实现。 问题在于,每个进程都有自己的当前工作目录,将其实现为一个单独的进程只会更改 该 进程的当前工作目录。 在Java程序中,您 不能 更改当前的工作目