如何从spring批处理管理上下文访问FormattingConversionServiceFactoryBean
我有一个spring mvc web应用程序,在父上下文spring-application-context.xml中有一个FormattingConversionServiceFactoryBean注册表 在我的父上下文中,我有一个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
@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批处理管理覆盖文件中。将其移动到作业文件后,将拾取注释
很奇怪,我想找到答案,为什么你要做很多我不想做的挖掘工作。希望这能帮助别人