Java 使用CXF/JAXB2生成和自定义equals/hashcode方法
我有两个类Java 使用CXF/JAXB2生成和自定义equals/hashcode方法,java,jaxb,cxf,maven-jaxb2-plugin,Java,Jaxb,Cxf,Maven Jaxb2 Plugin,我有两个类A和B,它们是由我的WSDL中的cxfcodegenplugin生成的A继承自B 我想添加一些常用方法,如hashCode(),equals()。。。因此,我的POM中有以下配置: <plugin> <groupId>org.apache.cxf</groupId> <artifactId>cxf-codegen-plugin</artifactId> <version>2.6.0</
A
和B
,它们是由我的WSDL中的cxfcodegenplugin
生成的<代码>A继承自B
我想添加一些常用方法,如hashCode()
,equals()
。。。因此,我的POM中有以下配置:
<plugin>
<groupId>org.apache.cxf</groupId>
<artifactId>cxf-codegen-plugin</artifactId>
<version>2.6.0</version>
<executions>
<execution>
<id>generate-sources</id>
<phase>generate-sources</phase>
<configuration>
<wsdlOptions>
<wsdlOption>
<wsdl>${basedir}/wsdl/PeeringApi.wsdl</wsdl>
<extraargs>
<extraarg>-xjc-XhashCode</extraarg>
<extraarg>-xjc-Xequals</extraarg>
<extraarg>-xjc-Xsetters</extraarg>
</extraargs>
</wsdlOption>
</wsdlOptions>
</configuration>
<goals>
<goal>wsdl2java</goal>
</goals>
</execution>
</executions>
<dependencies>
<dependency>
<groupId>org.jvnet.jaxb2_commons</groupId>
<artifactId>jaxb2-basics</artifactId>
<version>${jaxb2.version}</version>
</dependency>
</dependencies> </plugin>
org.apache.cxf
cxf-codegen插件
2.6.0
生成源
生成源
${basedir}/wsdl/PeeringApi.wsdl
-xjc XhashCode
-xjc Xequals
-xjc Xsetters
wsdl2java
org.jvnet.jaxb2_commons
jaxb2基础知识
${jaxb2.version}
我有两个问题:
B
属性的equals()
方法(即不调用super.equals()
)A
的某些属性的equals()
方法(默认情况下,似乎比较了所有属性)谢谢我找到了一个解决方案,正如这里解释的那样:
您可以添加自定义绑定,以指示JAXB2插件忽略某个属性。错误的插件,而不是cxf-*-plugin。
cxf codegen插件
用于在maven构建过程中从.wsdl和.xsd文件生成源代码。在后台,它还使用jaxb2 basics
库生成equals
和hashCode
方法,如xjc参数和绑定文件中指定的那样。