簡體   English   中英

考慮在你的配置中定義一個 'com.example.filter.FilterDao' 類型的 bean

[英]Consider defining a bean of type 'com.example.filter.FilterDao' in your configuration

我正在嘗試將 Spring Boot 應用程序與 MySQL 連接,因為我創建了一個名為 FilterDao 的接口,它擴展了 JpaRepository 類。 但是每當我嘗試在服務中創建已實現類的對象時,我都會收到此錯誤“考慮在您的配置中定義類型為 'com.example.filter.FilterDao' 的 bean”,因為我是 Spring Boot 的新手,我不明白這個錯誤.

FilterApplication.java

package com.example.filter;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;

@SpringBootApplication(exclude = {DataSourceAutoConfiguration.class })
public class FilterApplication {

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

}

FilterDao.java

package com.example.filter;

import com.example.filter.Filter;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.domain.Example;
import org.springframework.data.domain.Page;
import org.springframework.data.domain.Pageable;
import org.springframework.data.domain.Sort;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.repository.query.FluentQuery;

import java.util.List;
import java.util.Optional;
import java.util.function.Function;

//@Configuration
public interface FilterDao extends JpaRepository<Filter, Integer> {

}

過濾服務.java

package com.example.filter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;

@Service
public class FilterService {
    @Autowired
    private FilterDao filterDao;

    public List<Filter> getData() {
        System.out.println("----------------------HERE-------------");
        return filterDao.findAll();
    }
}

過濾器連接器.java

package com.example.filter;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RestController;

import java.util.List;

@RestController
public class FilterConnector {

    @Autowired
    private FilterService filterService;
    @GetMapping("/home")
    public List<Filter> home()
    {

        return this.filterService.getData();
    }
}

項目結構在此處輸入圖像描述

使用 @Repository 注釋 FilterDao

似乎spring沒有為FilterDao存儲庫創建bean,你正在嘗試使用它`

@Autowired 私有 FilterDao filterDao;`

此異常可能有不同的原因。 請嘗試以下解決方案。

  1. 將 @EnableJpaRepositories(basePackages = "com.example.filter") 與 FilterApplication 類一起使用。
  2. 將 @ComponentScan(basePackages = "com.example.*") 與 FilterApplication 類一起使用
  3. 使用帶有 FilterDao 接口的@Repository 注解。

希望這可以幫助。 有關更多詳細信息,請查看以下教程。

https://www.netsurfingzone.com/jpa/consider-defining-a-bean-of-type-in​​-your-configuration/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM