#spring-integration
#spring-интеграция
Вопрос:
Например: xmlns:int-jdbc=»http://www.springframework.org/schema/integration/jdbc «
<int-jdbc:inbound-channel-adapter.......
Я хочу, чтобы это использовало мою пользовательскую реализацию, поэтому мне нужно знать
1) Какой класс он использует (чтобы я мог расширить его и переопределить что угодно)
2) чем как мне указать ему использовать мой новый класс, а не класс по умолчанию.
возможно ли это?
Спасибо
Ответ №1:
В настоящее время нет способа внедрить собственную реализацию с использованием пространства имен XML, но вы можете просто подключить <bean/>
определения. В конце концов, это все, что делает анализатор пространства имен.
В этом случае вам нужен компонент класса SourcePollingChannelAdapterFactoryBean
, который нуждается PollerMetadata
в и a source
(и создает a SourcePollingChannelAdapter
), при source
этом он является компонентом класса JdbcPollingChannelAdapter
(который является a MessageSource
).
Итак, вы бы подклассили JdbcPollingChannelAdapter
.
Если вы считаете, что ваша реализация будет иметь широкую привлекательность, пожалуйста, откройте проблему JIRA и рассмотрите возможность ее внесения.
Комментарии:
1. Спасибо, Гэри, есть ли простой способ узнать, какие определения </bean> создаются конфигурацией на основе схемы.
2. В настоящее время нет; вам нужно разобраться с анализаторами пространства имен, такими как анализатор адаптера JDBC и его суперкласс. Другой альтернативой (с Spring Integration 4.0) является использование java
@Configuration
и@InboundChannelAdapter
аннотации для@Bean
типаMessageSource
.