Java I';我正试图将我的应用程序从Spring转移到Spring Boot,我';我对此有些意见。特别是以下例外情况

Java I';我正试图将我的应用程序从Spring转移到Spring Boot,我';我对此有些意见。特别是以下例外情况,java,spring,hibernate,spring-boot,exception,Java,Spring,Hibernate,Spring Boot,Exception,我根本没有使用实体管理器。相反,我使用的是Hibernate(会话工厂)。这是我的应用程序属性 mysql.driver=com.mysql.cj.jdbc.Driver spring.datasource.url=jdbc:mysql://localhost:3306/spring_hiber?verifyServerCertificate=false&useSSL=false&requireSSL=false&useLegacyDatetimeCode=false&a

我根本没有使用实体管理器。相反,我使用的是Hibernate(会话工厂)。这是我的应用程序属性

mysql.driver=com.mysql.cj.jdbc.Driver
spring.datasource.url=jdbc:mysql://localhost:3306/spring_hiber?verifyServerCertificate=false&useSSL=false&requireSSL=false&useLegacyDatetimeCode=false&amp&serverTimezone=UTC
spring.datasource.username=root
spring.datasource.password=password

# Hibernate properties
spring.jpa.show-sql=true
spring.jpa.hibernate.ddl-auto=create



Exception in thread "task-2" java.lang.IllegalStateException: EntityManagerFactory is closed
at org.hibernate.internal.SessionFactoryImpl.validateNotClosed(SessionFactoryImpl.java:507)
at org.hibernate.internal.SessionFactoryImpl.getProperties(SessionFactoryImpl.java:501)
at org.springframework.boot.autoconfigure.orm.jpa.DataSourceInitializedPublisher.findDataSource(DataSourceInitializedPublisher.java:105)
at org.springframework.boot.autoconfigure.orm.jpa.DataSourceInitializedPublisher.publishEventIfRequired(DataSourceInitializedPublisher.java:97)
at org.springframework.boot.autoconfigure.orm.jpa.DataSourceInitializedPublisher.access$100(DataSourceInitializedPublisher.java:50)
at org.springframework.boot.autoconfigure.orm.jpa.DataSourceInitializedPublisher$DataSourceSchemaCreatedPublisher.lambda$postProcessEntityManagerFactory$0(DataSourceInitializedPublisher.java:200)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1128)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:628)
at java.base/java.lang.Thread.run(Thread.java:830)

SpringBoot会自动配置与Spring数据相关的bean,即使您是否使用它。 如果不想使用EntityManager,请排除这些与关系数据库相关的自动配置类

在spring引导应用程序中,您需要执行以下操作

@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@SpringBootApplication
public class SpringApplication {
  //...
}

SpringBoot会自动配置与Spring数据相关的bean,即使您是否使用它。 如果不想使用EntityManager,请排除这些与关系数据库相关的自动配置类

在spring引导应用程序中,您需要执行以下操作

@EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class, DataSourceTransactionManagerAutoConfiguration.class, HibernateJpaAutoConfiguration.class})
@SpringBootApplication
public class SpringApplication {
  //...
}

排除
HibernateJpaAutoConfiguration
对我来说足够了,有相同的异常。排除
HibernateJpaAutoConfiguration
对我来说足够了,有相同的异常。