hibernate 考虑在您的配置中定义一个‘com.example.filter.FilterDao’类型的Bean

sqxo8psd  于 2022-11-14  发布在  其他
关注(0)|答案(2)|浏览(139)

我正在尝试连接Spring Boot应用程序和MySQL,因为我已经创建了一个名为FilterDao的接口,它扩展了JpaRepository类。但是,每当我尝试在Service中创建已实现类的对象时,我都会收到这样的错误:“考虑在您的配置中定义一个类型为‘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> {

}

FilterService.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();
    }
}

FilterConnector.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();
    }
}

项目结构

neskvpey

neskvpey1#

用@Repository注解FilterDao

hjzp0vay

hjzp0vay2#

似乎Spring还没有为FilterDao存储库创建Bean,而您正试图使用它@autowired 私有FilterDao filterDao;
这一例外可能有不同的原因。请尝试以下解决方案。
1.在FilterApplication类中使用@EnableJpaRepositories(base Packages=“com.example.Filter”)。
1.将@ComponentScan(base Packages=“com.ample.*”)与FilterApplication类一起使用
1.在FilterDao接口中使用@Repoody注解。
希望这能帮上忙。有关更多详细信息,请查看下面的教程。
https://javatute.com/jpa/consider-defining-a-bean-of-type-in-your-configuration/

相关问题