Spring Data存储库自动注入失败

时间:2018-05-29 11:33:49

标签: java spring spring-mvc spring-boot spring-data-jpa

我正在尝试将我的项目升级到Spring 5.0.6和Spring Data 2.0.6,我们正在使用WebSphere托管的JPA 2.1

在创建Spring上下文时获得以下异常:

  

[5/29/18 6:30:41:929 CDT] 00000052 SystemOut O 06:30:41.876 [默认值:5] ERROR org.springframework.web.context.ContextLoader - 上下文初始化失败   org.springframework.beans.factory.UnsatisfiedDependencyException:使用name' userService'创建bean时出错:通过字段' userRepository'表达的不满意的依赖关系嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有类型' com.mmm.arc.dao.UserRepository'的限定bean。可用:预计至少有1个豆有资格作为autowire候选者。

     

...

服务类:

@Transactional(propagation = Propagation.REQUIRED )

public class UserServiceImpl implements UserService, UserDetailsService {


    @PersistenceContext
    private EntityManager em;

    @Autowired
    UserRepository userRepository;
}

存储库类:

public interface UserRepository extends JpaRepository<User, String>, JpaSpecificationExecutor< User >,UserRepositoryCustom{

}

public class UserRepositoryImpl implements  UserRepositoryCustom{

    @PersistenceContext
    EntityManager em;
-----------methods
}
架构中的

我没有提到任何弹簧版本

<jpa:repositories base-package="repo class package" /><bean class="org.springframework.orm.jpa.LocalContainerEntityManagerFactoryBean" id="entityManagerFactory">
    <property name="persistenceUnitName" value="persistance unit name"/>
    <property name="dataSource" ref="dataSource"/>
</bean>

我们有单独的persistence.xml文件来映射所有基于完全注释的实体

1 个答案:

答案 0 :(得分:0)

您的bean UserRepositoryImpl未实现interface UserRepository,这是UserServiceImpl正在使用的类型。因此,我认为实际上没有在任何地方创建UserRepository实例。

也许您打算将UserRepositoryImpl改为implement UserRespository而不是UserRepositoryCustom