Spring bean未使用@Repository注释标识

时间:2017-10-18 16:53:30

标签: java spring spring-data-jpa

我编写了一个示例Spring启动应用程序,但无法使用消息

运行

` 描述: com.hibernatetutorial.service.CustomerServiceImpl中的字段customerRepository需要一个无法找到的类型为“com.hibernatetutorial.repository.CustomerRepository”的bean。

操作: 考虑在配置中定义'com.hibernatetutorial.repository.CustomerRepository'类型的bean。

我在CustomerRepository类上有一个@Repository注释,它的包就是基本包扫描中的那个。

以下是配置

   @SpringBootApplication
@ComponentScan(basePackages="com.hibernatetutorial")
public class HibernateTutorialApplication {

    public static void main(String[] args) {
        SpringApplication.run(HibernateTutorialApplication.class, args);

    }

}

@Repository
@Transactional
public interface CustomerRepository extends JpaRepository<Customer, UUID>{

}

@Service
@Transactional
public class CustomerServiceImpl implements CustomerService {

    @Autowired
    private CustomerRepository customerRepository;

    public Customer createCustomer(Customer customer) {
        return customerRepository.save(customer);
    }

}

客户实体使用@Entity进行注释。如果我错过了任何建议

2 个答案:

答案 0 :(得分:1)

要使用JpaRepository,您需要在应用程序中添加以下内容之一:

@EnableAutoConfiguration让Spring Boot自行解决或

@EnableJpaRespositories(basePackageScan="com.example")自己指定

For more information

答案 1 :(得分:0)

请验证您的CustomerRepository和CustomerServiceImpl Java文件是否在同一个包装com.hibernatetutorial下。