gpt4 book ai didi

java - 如何将自定义代码添加到 JAXWS 生成的源代码

转载 作者:搜寻专家 更新时间:2023-11-01 02:22:41 24 4
gpt4 key购买 nike

是否可以为 JAXWS 类自定义代码。我想要做的是向生成的类添加一些辅助方法以帮助从中提取信息。我知道我可以将生成的源子类化,但这意味着我必须将它转换到任何我想要信息的地方。

是否可以让 jaxws(或其他工具)将 WSDL 生成的源代码与一些包含我的方法的自定义代码合并在一起? (在 C# 中,我可以使用部分类来做到这一点,但 java 似乎没有等效项)...

最佳答案

实现此目的的一种方法是通过方面引入这些辅助方法。 AspectJ将是一个潜在的候选人,或者如果您使用的是 Spring,那么 Spring AOP也可以完成这项工作。

因此,使用 AspectJ,您将利用名为 "inter-type declaration" 的功能,它允许将新功能引入现有类。如果您生成的 JAXWS 类称为 MyTypeGen,那么您将使用一个方面(任意命名为 MyTypeAspect)引入新方法,如下所示:

// generated class
class MyTypeGen {
int x, y;

public void setX(int x) { this.x = x; }
public void setY(int y) { this.y = y; }
}

// introduce two new methods into MyTypeGen
aspect MyTypeAspect {
public int MyTypeGen.multiply() {
return x * y;
}
public int MyTypeGen.sum() {
return x + y;
}
}

在运行时,您可以调用这两个在构建时编入MyTypeGen 的新方法。无需类型转换。

MyTypeGen mytype = new MyTypeGen();
mytype.setX(3);
mytype.setY(4);
int product = mytype.multiply();
// product = 12

如果您决定改用 Spring AOP,您将创建一个带有 @Aspect 注释的普通 Java 类,您将在其中利用 introductions功能。

关于java - 如何将自定义代码添加到 JAXWS 生成的源代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35330284/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com