jpa - SpringBoot : How to stop all JPA auto-load

标签 jpa spring-boot

我有一个 Web 应用程序,它是 Hibernate 4.3.7 和 Spring Boot 1.2.0.RELEASE。 我不做 JPA。我直接使用 Hibernate SessionFactory、hbm.xmls 等。

出于某种原因,Spring Boot 不断尝试自动加载 JPA 内容。我为我的 Spring LocalSessionFactory 创建了一个名为“entityManagerFactory”的别名,并且关闭了一个错误。如今,此事又再次掀起热潮。如何在 Spring Boot 中完全关闭所有 JPA 自动加载内容?

2015-01-02 16:51:20,147 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] (main) Creating shared instance of singleton bean 'openEntityManagerInViewInterceptor'
2015-01-02 16:51:20,147 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] (main) Creating instance of bean 'openEntityManagerInViewInterceptor'
2015-01-02 16:51:20,147 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] (main) Returning cached instance of singleton bean 'org.springframework.transaction.config.internalTransactionAdvisor'
2015-01-02 16:51:20,147 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] (main) Returning cached instance of singleton bean 'org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration'
2015-01-02 16:51:20,160 DEBUG [org.springframework.beans.factory.support.DefaultListableBeanFactory] (main) Eagerly caching bean 'openEntityManagerInViewInterceptor' to allow for resolving potential circular references
2015-01-02 16:51:20,160 TRACE [org.springframework.beans.CachedIntrospectionResults] (main) Getting BeanInfo for class [org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor]
2015-01-02 16:51:20,223 TRACE [org.springframework.beans.CachedIntrospectionResults] (main) Caching PropertyDescriptors for class [org.springframework.orm.jpa.support.OpenEntityManagerInViewInterceptor]
2015-01-02 16:51:20,223 TRACE [org.springframework.beans.CachedIntrospectionResults] (main) Found bean property 'beanFactory' of type [org.springframework.beans.factory.BeanFactory]
2015-01-02 16:51:20,223 TRACE [org.springframework.beans.CachedIntrospectionResults] (main) Found bean property 'class' of type [java.lang.Class]
2015-01-02 16:51:20,223 TRACE [org.springframework.beans.CachedIntrospectionResults] (main) Found bean property 'entityManagerFactory' of type [javax.persistence.EntityManagerFactory]
2015-01-02 16:51:20,223 TRACE [org.springframework.beans.CachedIntrospectionResults] (main) Found bean property 'jpaProperties' of type [java.util.Properties]
2015-01-02 16:51:20,223 TRACE [org.springframework.beans.CachedIntrospectionResults] (main) Found bean property 'jpaPropertyMap' of type [java.util.Map]
2015-01-02 16:51:20,223 TRACE [org.springframework.beans.CachedIntrospectionResults] (main) Found bean property 'persistenceUnitName' of type [java.lang.String]
2015-01-02 16:51:20,256 WARN  [org.springframework.boot.context.embedded.AnnotationConfigEmbeddedWebApplicationContext] (main) Exception encountered during context initialization - cancelling refresh attempt
org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'requestMappingHandlerMapping' defined in class path resource [org/springframework/web/servlet/config/annotation/DelegatingWebMvcConfiguration.class]: Bean instantiation via factory method failed; nested exception is org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping]: Factory method 'requestMappingHandlerMapping' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'openEntityManagerInViewInterceptor' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration$JpaWebConfiguration.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:602)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.instantiateUsingFactoryMethod(AbstractAutowireCapableBeanFactory.java:1111)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBeanInstance(AbstractAutowireCapableBeanFactory.java:1006)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:504)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:762)
    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:757)
    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:480)
    at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:109)
    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:691)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:321)
    at org.springframework.boot.SpringApplication.run(SpringApplication.java:961)
    at springboot.Application.main(Application.java:32)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.boot.loader.MainMethodRunner.run(MainMethodRunner.java:53)
    at java.lang.Thread.run(Unknown Source)
Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [org.springframework.web.servlet.mvc.method.annotation.RequestMappingHandlerMapping]: Factory method 'requestMappingHandlerMapping' threw exception; nested exception is org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'openEntityManagerInViewInterceptor' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration$JpaWebConfiguration.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:189)
    at org.springframework.beans.factory.support.ConstructorResolver.instantiateUsingFactoryMethod(ConstructorResolver.java:591)
    ... 22 more
Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'openEntityManagerInViewInterceptor' defined in class path resource [org/springframework/boot/autoconfigure/orm/jpa/JpaBaseConfiguration$JpaWebConfiguration.class]: Initialization of bean failed; nested exception is org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:547)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:476)
    at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:302)
    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:298)
    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:193)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:322)
    at org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration$$EnhancerBySpringCGLIB$$a50a6fd9.openEntityManagerInViewInterceptor()
    at org.springframework.boot.autoconfigure.orm.jpa.JpaBaseConfiguration$JpaWebConfiguration.addInterceptors(JpaBaseConfiguration.java:168)
    at org.springframework.web.servlet.config.annotation.WebMvcConfigurerComposite.addInterceptors(WebMvcConfigurerComposite.java:112)
    at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration.addInterceptors(DelegatingWebMvcConfiguration.java:55)
    at org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.getInterceptors(WebMvcConfigurationSupport.java:259)
    at org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport.requestMappingHandlerMapping(WebMvcConfigurationSupport.java:228)
    at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerBySpringCGLIB$$7c201664.CGLIB$requestMappingHandlerMapping$24()
    at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerBySpringCGLIB$$7c201664$$FastClassBySpringCGLIB$$c4e37a95.invoke()
    at org.springframework.cglib.proxy.MethodProxy.invokeSuper(MethodProxy.java:228)
    at org.springframework.context.annotation.ConfigurationClassEnhancer$BeanMethodInterceptor.intercept(ConfigurationClassEnhancer.java:309)
    at org.springframework.web.servlet.config.annotation.DelegatingWebMvcConfiguration$$EnhancerBySpringCGLIB$$7c201664.requestMappingHandlerMapping()
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
    at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
    at java.lang.reflect.Method.invoke(Unknown Source)
    at org.springframework.beans.factory.support.SimpleInstantiationStrategy.instantiate(SimpleInstantiationStrategy.java:162)
    ... 23 more
Caused by: org.springframework.beans.factory.NoSuchBeanDefinitionException: No qualifying bean of type [javax.persistence.EntityManagerFactory] is defined
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:371)
    at org.springframework.beans.factory.support.DefaultListableBeanFactory.getBean(DefaultListableBeanFactory.java:331)
    at org.springframework.orm.jpa.EntityManagerFactoryUtils.findEntityManagerFactory(EntityManagerFactoryUtils.java:143)
    at org.springframework.orm.jpa.EntityManagerFactoryAccessor.setBeanFactory(EntityManagerFactoryAccessor.java:137)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeAwareMethods(AbstractAutowireCapableBeanFactory.java:1585)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1553)
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:539)
    ... 45 more

最佳答案

您可以使用@EnableAutoConfigurationexclude 属性来禁用特定部分。在你的情况下,你可能想要:

@EnableAutoConfiguration(exclude=HibernateJpaAutoConfiguration.class)

关于jpa - SpringBoot : How to stop all JPA auto-load,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27750418/

相关文章:

java - MySQL max_allowed_pa​​cket 随机更改为 1024 字节

spring - 在 AWS Elastic BeanStalk 上运行的 Spring Boot 应用程序中配置 AWS RDS

java - Spring Boot 验证请求参数

java - 如何在 Spring Boot JPA 项目中设置 JDBC 映射?

java - 有没有办法将 HibernateException 转换为其他内容,然后将 Spring 中的 DataAccessException 转换为其他内容

java - Spring : Parameter with that position did not exist exception

java - 如何用表和一些数据在内存中预填充 Derby?

spring-boot - 启动 Spring Boot 应用程序时,jetty 服务器出现 NoClassDefFoundError

java - 无法找到 Spring Boot javabean

java - 使用jpa持久化对象的问题