Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/spring-boot/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Spring 使用@Bean的SOAP客户端的动态配置_Spring_Spring Boot_Soap Client - Fatal编程技术网

Spring 使用@Bean的SOAP客户端的动态配置

Spring 使用@Bean的SOAP客户端的动态配置,spring,spring-boot,soap-client,Spring,Spring Boot,Soap Client,我的Spring Boot应用程序实现了如下所述的SOAP客户端: @配置 公共类MyClientConfiguration{ @豆子 公共封送员封送员{ Jaxb2Marshaller-marshaller=新的Jaxb2Marshaller; //此包必须与pom.xml中指定的中的包匹配 marshaller.setContextPathde.mypackage; 返回编组员; } @豆子 公共MyClient myclientJaxb2Marshaller marshaller{ MyC

我的Spring Boot应用程序实现了如下所述的SOAP客户端:

@配置 公共类MyClientConfiguration{ @豆子 公共封送员封送员{ Jaxb2Marshaller-marshaller=新的Jaxb2Marshaller; //此包必须与pom.xml中指定的中的包匹配 marshaller.setContextPathde.mypackage; 返回编组员; } @豆子 公共MyClient myclientJaxb2Marshaller marshaller{ MyClient=新的MyClient; client.setmarshaller; client.setunmarshaller; 返回客户; } } 根据另一个属性目标,我需要使用不同的URI配置此MyClient对象,例如

对于target=1,必须将客户端配置为使用setDefaultUrihttp://uri-1 对于target=2,必须将客户端配置为使用setDefaultUrihttp://uri-2 我很难理解怎么做。

关于你的第一个问题:

//此包必须与pom.xml中指定的中的包匹配 marshaller.setContextPathde.mypackage

您可以使用maven资源插件,使用@property.name@语法将maven属性硬编码到属性或yaml文件中。第一步是添加自定义属性,并参考插件部分中的属性:

pom.xml

我的包 ... org.plugin

关于你的第二个问题:

根据其他属性目标,我需要配置此MyClient 具有不同URI的对象,例如

一旦获得pom.xml属性,就有许多选项。如果配置没有那么复杂,那么可以使用类似的字符串注入和bean定义中的一些自定义逻辑,或者使用conditionalOn*注释来创建bean,例如:

@豆子 @ConditionalOnPropertyname=target,havingValue=1 公共MyClient myclientJaxb2Marshaller marshaller{ //…bean 1定义 } @豆子 @ConditionalOnPropertyname=target,havingValue=2 公共MyClient myclientJaxb2Marshaller marshaller{ //…bean 2定义 }

如果bean定义有点复杂,请考虑设置一个.< /p>

pluginName.generatePackage=@pluginName.generatePackage@
pluginName:
  generatePackage: '@pluginName.generatePackage@'