我正面临着使用春季杂质的问题

时间:2017-07-16 08:28:27

标签: java spring spring-data

  

在上下文初始化期间遇到异常 - 取消刷新尝试:org.springframework.beans.factory.UnsatisfiedDependencyException:创建名称为' rabbitMqController的bean时出错':通过字段" recordReprositry'表达的不满意依赖性;嵌套异常是org.springframework.beans.factory.NoSuchBeanDefinitionException:没有符合条件的类型' com.rabbitmq.config.RecordsReprositry'可用:预计至少有1个豆有资格作为autowire候选者。依赖注释:{@ org.springframework.beans.factory.annotation.Autowired(required = true)}

2 个答案:

答案 0 :(得分:0)

看起来你是一个带注释的接口......你应该把@repository放到它的实现类中。

package com.rabbitmq.config;                                                                                  

import java.util.UUID;

import org.springframework.data.repository.CrudRepository;
import org.springframework.stereotype.Repository;


@Repository
public **interface** RecordsReprositry extends CrudRepository<Records, Long>{

    public Records findById(UUID id);

}

答案 1 :(得分:0)

从春季开始尝试JPA ......(DOC:http://docs.spring.io/spring-data/jpa/docs/current/reference/html/

示例:

@Repository
public interface MyRepository extends JpaRepository<EntityName,Long> {
    // here you can write your query; example:
    EntityName findByAttribute(Type value);
    // or
    @Query("SELECT * FROM EntityName t WHERE t.ID=?1")
    EntityName findByID(Long id);
}

然后您可以在服务中使用此存储库(您必须使用自动装配)

示例:

@Service
public class MyService{
    @Autowired 
    private MyRepository repo;

    // here you can call in a method your query
    public EntityName example() {
        EntityName e = repo.findByID((long)1);
        return e;
    }
}

重要提示:您必须仅在服务中使用它的存储库以及必须在控制器中使用它的服务<​​/ p>