Как переопределить конфигурацию интеграции Spring по умолчанию

#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 .