java – Spring-Batch代理类不能转换为Class?

前端之家收集整理的这篇文章主要介绍了java – Spring-Batch代理类不能转换为Class?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我有一个春季批量@Job定义.但是在运行它时(在tomcat中),由于com.sun.proxy,我得到了一个ClassCastException.$Proxy.

为什么会出现这种情况?以下摘录可能有什么问题?

  1. @Service
  2. public class JobService {
  3. @Autowired
  4. private JobLauncher launcher;
  5. public void run() {
  6. Job job = jobRegistry.getJob("jobname");
  7. launcher.run(job,params); //line 59
  8. }
  9. }
  10. @Configuration
  11. @EnableBatchProcessing(modular = true)
  12. public class JobConfig {
  13. @Bean
  14. @JobScope
  15. public MultiResourceItemReader

结果:

  1. java.lang.ClassCastException: com.sun.proxy.$Proxy135 cannot be cast to org.springframework.batch.item.file.MultiResourceItemReader
  2. at org.springframework.batch.item.file.MultiResourceItemReader$$FastClassBySpringCGLIB$$ad846cb.invoke(
最佳答案
如果您不需要读者的具体类型,则返回ItemReader< T>来自reader()函数.
@JobScope默认使用CGLIB代理代理目标类.

猜你在找的Spring相关文章