Могу ли я переопределить уже объявленный HTTP Outbound Gateway? - PullRequest
0 голосов
/ 16 января 2019

В исходном контекстном файле уже определен исходящий шлюз, который я должен переопределить. Изменение самого файла не является вариантом, так как это файл только для чтения, который является частью базового кода, который нельзя изменить или удалить из контекста приложения. Мне интересно, есть ли механизм для отмены его декларации?

Я проверил официальные документы по интеграции Spring Http, но не смог найти много. Я был бы удивлен, если это выполнимо, но я рискну впервые спросить на этой столь любимой платформе.

Определение подлежит повторному объявлению:

<int-http:outbound-gateway id='httpGETOutboundGateway'
 request-channel='httpGETRequestChannel'
 url="{scheme}://{host}:{port}${configurationServiceLocation}"
 http-method='GET'
 expected-response-type='java.lang.String'
 charset='UTF-8'>
        <int-http:uri-variable name="scheme" expression="T(org.springframework.web.context.request.RequestContextHolder).
        requestAttributes.request.getScheme()"/>
        <int-http:uri-variable name="host" expression="T(com.company.app.UriVariablesResolver).resolveHost()" />
        <int-http:uri-variable name="port" expression="T(com.company.app.UriVariablesResolver).resolvePort()" />
     </int-http:outbound-gateway>

Переопределено с различными выражениями для Resolver.

<int-http:outbound-gateway id='httpGETOutboundGateway'
 request-channel='httpGETRequestChannel'
 url="{scheme}://{host}:{port}${configurationServiceLocation}"
 http-method='GET'
 expected-response-type='java.lang.String'
 charset='UTF-8'>
    <int-http:uri-variable name="scheme" expression="T(org.springframework.web.context.request.RequestContextHolder).
        requestAttributes.request.getScheme()"/>
    <int-http:uri-variable name="host" expression="T(com.company.app2.MyResolver).resolveHost()" />
    <int-http:uri-variable name="port" expression="T(com.company.app2.MyResolver).resolvePort()" />
</int-http:outbound-gateway>
...