Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

453
Vistas
Spring Batch Configuración de Java JobLauncherTestUtils

Actualmente estoy trabajando en un proyecto de arranque de primavera que usa lote de primavera. Estoy tratando de usar JavaConfig en lugar de xml pero es difícil con todos los documentos actualmente en xml.

Seguí https://blog.codecentric.de/en/2013/06/spring-batch-2-2-javaconfig-part-5-modular-configurations pero tengo dificultades para usar JobLauncherTestUtils . Sé que necesito decirle a la prueba que use el contexto de primavera correcto, pero parece que no puedo encontrar la manera de hacerlo. Obtuve el siguiente error:

 Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type 'org.springframework.batch.test.JobLauncherTestUtils' available: expected at least 1 bean which qualifies as autowire candidate. Dependency annotations: {@org.springframework.beans.factory.annotation.Autowired(required=true)}

Mi prueba se parece a la siguiente:

 @RunWith(SpringRunner.class) @SpringBootTest(classes = {MyApplication.class, MyJobConfiguration.class}) public class RetrieveDividendsTest { @Autowired private JobLauncherTestUtils jobLauncherTestUtils; @Test public void testSomething() throws Exception { jobLauncherTestUtils.launchJob(); } }
about 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Me encontré con el mismo problema y eché un vistazo a esta configuración XML de las muestras de Spring Batch. Basado en eso, logré que funcionara con:

 @RunWith(SpringJUnit4ClassRunner.class) @SpringBootTest(classes = { BatchTest.BatchTestConfig.class }) public class BatchTest { @Autowired private JobLauncherTestUtils jobLauncherTestUtils; @Test public void demo() throws Exception { JobExecution jobExecution = jobLauncherTestUtils.launchJob(); Assert.assertEquals(BatchStatus.COMPLETED, jobExecution.getStatus()); } @Configuration @EnableBatchProcessing static class BatchTestConfig { @Bean JobLauncherTestUtils jobLauncherTestUtils() { return new JobLauncherTestUtils(); } // rest omitted for brevity } }

La prueba tiene éxito y mi ItemWriter registra los elementos procesados como se esperaba.

about 4 years ago · Santiago Trujillo Denunciar

0

Para la versión spring Batch 4.1.x o superior, podemos usar la anotación @SpringBatchTest que inyectará automáticamente jobLauncherTestUtils , consulte el ejemplo de muestra para obtener más detalles aquí

Así es como puede crear si no puede actualizar a 4.1.x o superior

 @Bean public JobLauncherTestUtils getJobLauncherTestUtils(){ return new JobLauncherTestUtils() { @Override @Autowired public void setJob(@Qualifier("myjobname") Job job) { super.setJob(job); } }; }
about 4 years ago · Santiago Trujillo Denunciar

0

¿Tiene lo siguiente en su pom.xml?

 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-batch</artifactId> </dependency>

Si no me equivoco, y usa Spring Boot, debería cargar los beans de configuración automática de Spring Batch para que estén disponibles para inyección.

about 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda