2016-06-02 3 views
1

У меня есть два разных способа объявления компонента интеграции весны. Они оба работают. Я использую IDE Spring STS Eclipse.Какой способ уточнить мои бобы в spring-integration.xml лучше?

Таким образом:

<bean id="int-ftp:request-handler-advice-chain" 
     class="org.springframework.integration.handler.advice.ExpressionEvaluatingRequestHandlerAdvice"> 
     <property name="trapException" value="true"></property> 
     <property name="onFailureExpression" value="#root"></property> 
     <property name="failureChannel" ref="errorChannel"></property> 
</bean> 

или таким образом:

<int-ftp:request-handler-advice-chain> 
    <bean class="org.springframework.integration.handler.advice.ExpressionEvaluatingRequestHandlerAdvice"> 
     <property name="trapException" value="true" /> 
     <property name="onFailureExpression" value="#root" /> 
     <property name="failureChannel" ref="errorChannel" /> 
    </bean> 
</int-ftp:request-handler-advice-chain> 

Какой способ лучше?

ответ

2

Для цели <int-ftp:outbound-gateway> это не имеет значения. Хорошо работает, как вы уже заметили.

Только разница в том, что второе объявление вложенное, а последний компонент доступен только из контекста <int-ftp:request-handler-advice-chain>.

Первое определение - это глобальный компонент верхнего уровня, который виден повсюду и может быть использован повторно из другого компонента.

Более подробную информацию о Inner Beans вы найдете в Spring Framework.