2015-02-10 2 views
0

У меня есть веб-приложение весны mvc с форматом FormattingConversionServiceFactoryBean в родительском контексте (spring-application-context.xml).Как получить доступ к форматированиюConversionServiceFactoryBean из контекста весеннего пакета управления

В моем родительском контексте У меня есть FormattingConversionServiceFactoryBean определяется следующим образом ...

@Component("applicationConversionService") 
public class ApplicationConversionServiceFactoryBean extends 
FormattingConversionServiceFactoryBean { 

Он загружается в моем родительском контексте, как следует ...

<context:component-scan base-package="com.myCompany.reporting.converter" /> 

Я использую его в моем ребенке/servlet следующим образом:

<mvc:annotation-driven conversion-service="applicationConversionService"/> 

Тогда в моих контроллерах я могу просто взять это фасоль с использованием ...

@Autowired 
private ApplicationConversionServiceFactoryBean applicationConversionService; 

Пока все хорошо.

У меня теперь есть случай, когда я хочу использовать этот компонент службы переоборудования в одном из моих боковых рабочих партий весов. Бланки задания определяются в файле переопределения заданий пакетной загрузки весеннего пакета управления. Я попытался выполнить аутсорсинг компонента службы преобразования из моего родительского контекста в свой jdbc-writer. Компиляция работает, но служба автоматического переноса всегда равна нулю во время выполнения. Вот как я автолюбитель.

public class BulletinBarUpdateItemWriter extends AbstractDao implements ItemWriter<Map<String,String>> { 

    @Autowired 
    private ApplicationConversionServiceFactoryBean applicationConversionService; 

ли это что-то делать с весной партия администратора бобы находятся в другом контексте, как на пути весной партия администратор сервлет определяется в моей web.xml? См ниже ....

<servlet> 
    <servlet-name>Batch Servlet</servlet-name> 
    <servlet-class>org.springframework.web.servlet.DispatcherServlet</servlet-class> 
    <init-param> 
     <param-name>contextConfigLocation</param-name> 
     <param-value> 
      classpath*:/org/springframework/batch/admin/web/resources/servlet-config.xml, 
      classpath*:/org/springframework/batch/admin/web/resources/webapp-config.xml</param-value> 
    </init-param> 
    <load-on-startup>2</load-on-startup> 
</servlet> 

Что такое правильный способ получить доступ к фасоли conversionService в моей весенней фасоли пакетного задания? Я хочу использовать его в своем весеннем пакетном задании так же, как и в моих контроллерах.

Как уже упоминалось ранее, компонент JDbc-writer определен в файле job.xml внутри каталога пакетных заданий весеннего пакетного администрирования, как показано ниже.

<bean id="bulletinBarUpdateItemWriter" 
    class="com.mycompany.reporting.dao.itemwriter.BulletinBarUpdateItemWriter" 
    parent="abstractCustDbJdbcDao"/> 

ответ

0

Я нашел ответ на этот вопрос. Мне нужно добавить следующие строки в моем job.xml файл

<!-- ====================================================================== --> 
<!-- activate annotations for beans already registered in the    --> 
<!-- application context.             --> 
<!-- ====================================================================== --> 
<context:annotation-config/> 

я неудачно выразился в файле админ переназначения весной пакетном, прежде чем пытаться поместить его в свой файл задания. После перемещения в файл задания аннотации подбираются.

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

Смежные вопросы