Inicialização de primavera com o planejador-BeanCreationNotAllowedException: Erro ao criar bean com o nome 'entityManagerFactory': criação de bean Singleton não permitida

Temos um projeto de inicialização com o agendador que lê os dados do banco de dados em intervalos fixos.

Ao criar o projeto do STS usando o maven, estamos recebendo um erro abaixo no consoleenquanto estiver executando os casos de teste mesmo que o status da compilação final seja bem-sucedido.

org.springframework.beans.factory.BeanCreationNotAllowedException: Erro ao criar bean com o nome 'entityManagerFactory': Criação de bean Singleton não permitida enquanto os singletons desta fábrica estão em destruição (Não solicite um bean de um BeanFactory em uma implementação de método de destruição!) em org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton (DefaultSingletonBeanRegistry.java:216) em org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean (AbstractBeanFactory.java:299) em org.springframework. support.AbstractBeanFactory.getBean (AbstractBeanFactory.java:199) em org.springframework.beans.factory.support.DefaultListableBeanFactory.getBeansOfType (DefaultListableBeanFactory.java:523) em org.springframework.beans.factory.BeanFactoryUtils.bactoryFeanUtils.Beans: 276) em org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.detectPersistenceExceptionTranslators (PersistenceExceptionTra nslationInterceptor.java:162) em org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke (PersistenceExceptionTranslationInterceptor.java:145) em org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (Reflective): .jpa.repository.support.CrudMethodMetadataPostProcessor $ CrudMethodMetadataPopulatingMethodIntercceptor.invoke (CrudMethodMetadataPostProcessor.java:122) em org.springframework.aop.framework.ReflectiveMethodInvocation.process/ (ExposeInvocationInterceptor.java:92) em org.springframework.aop.framework.ReflectiveMethodInvocation.proceed (ReflectiveMethodInvocation.java:179) em org.springframework.aop.framework.JdkDynamicAopProxy.invoke: JdkDynamicAopProxy.invoke:jd. proxy. $ Proxy70.findByTraIdAndTransactionNameAndExecutionTime (fonte desconhecida) em

Arquivo de aplicação

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

    public static void main(String[] args) {

        SpringApplication.run(ProvisioningApplication.class, args);

    }
}

Arquivo do Agendador

BusinessService tem a lógica de ler o banco de dados

@Component
public class SchedulerJob {

    @Autowired
    BusinessService service;

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

    }
}

Arquivo de teste

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

    @Test
    public void contextLoads() {
    }

}

A pergunta aqui é por que o boot de primavera executa a tarefa do agendador durante a criação do projeto e por que está lançando a exceção acima?

questionAnswers(1)

yourAnswerToTheQuestion