1. 程式人生 > >解決:Initialization of bean failed; nested exception is java.lang.AbstractMethodError

解決:Initialization of bean failed; nested exception is java.lang.AbstractMethodError

環境

Spring Data Jpa + Hibernate

使用版本

hibernate
<hibernate.version>5.2.10.Final</hibernate.version>

Spring Data Jpa
<dependency>
  <groupId>org.springframework.data</groupId>
  <artifactId>spring-data-jpa</artifactId>
  <version>2.0.2.RELEASE</version
>
</dependency>

錯誤發生點

@Repository
public interface UserDao extends JpaRepository<SYS_USER,String>,JpaSpecificationExecutor<SYS_USER>{

    /**
     * 根據使用者名稱查詢使用者
     *
     * @param username 使用者名稱
     * @return SYS_USER
     */
    SYS_USER findByUsername(String username);

}

控制檯輸出

Caused by: org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'userDao': Initialization of bean failed; nested exception is java.lang.AbstractMethodError
    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:564
) at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483) at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306) at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230) at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302) at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:202) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.autowireResource(CommonAnnotationBeanPostProcessor.java:522) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.getResource(CommonAnnotationBeanPostProcessor.java:496) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor$ResourceElement.getResourceToInject(CommonAnnotationBeanPostProcessor.java:627) at org.springframework.beans.factory.annotation.InjectionMetadata$InjectedElement.inject(InjectionMetadata.java:169) at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:88) at org.springframework.context.annotation.CommonAnnotationBeanPostProcessor.postProcessPropertyValues(CommonAnnotationBeanPostProcessor.java:318) ... 74 more

原因

  1. 直接原因:不能例項化bean。
  2. 間接原因:版本衝突

解決

降低 spring-data-jpa 的版本

<version>1.11.9.RELEASE</version>