以下配置意味着什么(jaxb-fluent-api)?

时间:2012-06-25 13:45:49

标签: java web-services spring jaxb jax-ws

我的POM文件中有以下配置。特别是jaxb-fluent-api配置。

<plugin>
    <groupId>org.jvnet.jaxb2.maven2</groupId>
    <artifactId>maven-jaxb2-plugin</artifactId>
    <configuration>
        <extension>true</extension>
        <args>
            <arg>-Xfluent-api</arg>
        </args>
        <schemaDirectory>src/main/resources</schemaDirectory>
        <plugins>
            <plugin>
                <groupId>net.java.dev.jaxb2-commons</groupId>
                <artifactId>jaxb-fluent-api</artifactId>
                <version>2.1.8</version>
            </plugin>
        </plugins>
    </configuration>
    <executions>
        <execution>
            <goals>
                <goal>generate</goal>
            </goals>
        </execution>
    </executions>
</plugin>

如果不配置jaxb-fluent-api,可以从xsd生成实体。这里有哪些使用jaxb-fluent-api

谢谢!

1 个答案:

答案 0 :(得分:9)

jaxb-fluent-api是一个JAXB扩展,允许您以流畅的api 样式生成代码。现在,流利的api 是一种设计类方法的方法,因此它们总是返回this而不是void

project wiki上有一个很好的例子(为简洁起见我稍微缩短了一点,请访问the site以获取完整示例):

正常JAXB - 生成的代码必须像这样使用:

Project project = factory.createProject();

project.setModelVersion("4.0.0");
project.setGroupId("redmosquito")
project.setArtifactId("jaxb-fluent-api-ext")
project.setPackaging("jar")
project.setVersion("0.0.1")
project.setName("JAXB Fluent API Extensions");

使用jaxb-fluent-api扩展程序,您可以像这样对代码进行编码:

Project project = factory.createProject()
    .withModelVersion("4.0.0");
    .withGroupId("redmosquito")
    .withArtifactId("jaxb-fluent-api-ext")
    .withPackaging("jar")
    .withVersion("0.0.1")
    .withName("JAXB Fluent API Extensions");

这基本上就是流利的api 的全部内容。