Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/spring-mvc/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何从spring批处理管理上下文访问FormattingConversionServiceFactoryBean_Spring_Spring Mvc_Spring Batch_Spring Batch Admin - Fatal编程技术网

如何从spring批处理管理上下文访问FormattingConversionServiceFactoryBean

如何从spring批处理管理上下文访问FormattingConversionServiceFactoryBean,spring,spring-mvc,spring-batch,spring-batch-admin,Spring,Spring Mvc,Spring Batch,Spring Batch Admin,我有一个spring mvc web应用程序,在父上下文spring-application-context.xml中有一个FormattingConversionServiceFactoryBean注册表 在我的父上下文中,我有一个FormattingConversionServiceFactoryBean,定义如下 @Component("applicationConversionService") public class ApplicationConversionServiceFacto

我有一个spring mvc web应用程序,在父上下文spring-application-context.xml中有一个FormattingConversionServiceFactoryBean注册表

在我的父上下文中,我有一个FormattingConversionServiceFactoryBean,定义如下

@Component("applicationConversionService")
public class ApplicationConversionServiceFactoryBean extends 
FormattingConversionServiceFactoryBean {
<context:component-scan base-package="com.myCompany.reporting.converter" />
<mvc:annotation-driven conversion-service="applicationConversionService"/>  
它在我的父上下文中加载,如下所示

@Component("applicationConversionService")
public class ApplicationConversionServiceFactoryBean extends 
FormattingConversionServiceFactoryBean {
<context:component-scan base-package="com.myCompany.reporting.converter" />
<mvc:annotation-driven conversion-service="applicationConversionService"/>  
到目前为止还不错

我现在有一个案例,我想在我的一个spring批处理作业bean中使用这个转换工厂服务bean。作业bean在spring批处理管理控制台批处理作业覆盖文件中定义。我尝试将转换服务bean从父上下文自动连接到jdbc编写器中。编译在中工作,但自动连线转换服务在运行时始终为空。下面是我如何安装自动布线的

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

    @Autowired
    private ApplicationConversionServiceFactoryBean applicationConversionService;
这是否与spring批处理管理bean处于不同的上下文中有关,就像在myweb.xml中定义spring批处理管理servlet一样?见下文

<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>
在我的spring批处理作业bean中,访问conversionService bean的正确方法是什么?我想在spring批处理作业Bean中使用它,就像在控制器中使用它一样

如前所述,我的Jdbc编写器bean是在spring batch admin batch jobs目录中的job.xml文件中定义的,如下所示

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

我找到了答案。我需要将以下内容添加到我的job.xml文件中

<!-- ====================================================================== -->
<!-- activate annotations for beans already registered in the               -->
<!-- application context.                                                   -->
<!-- ====================================================================== --> 
<context:annotation-config/>
在尝试将其放入作业文件之前,我没有成功地将其放入spring批处理管理覆盖文件中。将其移动到作业文件后,将拾取注释

很奇怪,我想找到答案,为什么你要做很多我不想做的挖掘工作。希望这能帮助别人