我正在尝试连接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();
}
}
项目结构
2条答案
按热度按时间neskvpey1#
用@Repository注解FilterDao
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/