Arranque de primavera con Scheduler-BeanCreationNotAllowedException: Error al crear bean con el nombre 'entityManagerFactory': creación de bean Singleton no permitida

Tenemos un proyecto de arranque de primavera con un planificador que lee los datos de la base de datos a intervalos fijos.

Al construir el proyecto desde STS usando Maven, estamos obteniendo un error inferior en la consolamientras se ejecutan los casos de prueba a pesar de que el estado final de construcción es exitoso.

org.springframework.beans.factory.BeanCreationNotAllowedException: Error al crear bean con el nombre 'entityManagerFactory': no se permite la creación de beans Singleton mientras los singletons de esta fábrica están en destrucción (¡No solicite un bean de un BeanFactory en una implementación de método de destrucción!) en org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:216) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.ja.work.fa. .abs. 276) en org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators (PersistenceExceptionTra nslationInterceptor.java:162) en org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke (PersistenceExceptionTranslationInterceptor.java:145) en org.springframework.aop.framework.ReflectiveMethodInvocation.proceedInva.meto. ''. (ExposeInvocationInterceptor.java:92) en org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:179) en org.springframework.aop.framework.JdkDynamicAopProxy.invoke (Jdk.ja.:20. proxy. $ Proxy70.findByTraIdAndTransactionNameAndExecutionTime (Fuente desconocida) en

Archivo de solicitud

@SpringBootApplication
@PropertySource("classpath:application.properties")
@EnableScheduling
public class ProvisioningApplication {

    public static void main(String[] args) {

        SpringApplication.run(ProvisioningApplication.class, args);

    }
}

Archivo de planificador

BusinessService tiene la lógica de leer la base de datos

@Component
public class SchedulerJob {

    @Autowired
    BusinessService service;

    @Scheduled(fixedRate=300000) //5mnts
    public void schdeule() {
        service.startService();

    }
}

Archivo de prueba

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = ProvisioningApplication.class)
public class ProvisioningApplicationTests {

    @Test
    public void contextLoads() {
    }

}

La pregunta aquí es ¿por qué Spring Boot ejecuta la tarea del planificador mientras construye el proyecto y por qué está lanzando la excepción anterior?

Respuestas a la pregunta(1)

Su respuesta a la pregunta