This question already has an answer here:
What is a NoSuchBeanDefinitionException and how do I fix it?
(1个答案)
去年关闭。
我试图遵循一个Spring Boot的示例,我在互联网上搜索了几个小时而没有找到适合我的情况的解决方案。大多数解决方案我发现他们说要使用@ComponentScan扫描程序包,我是否缺少任何东西,任何帮助都是值得的。
SpringBootApplication类:
PersonRepository类:
人员服务:
PersonServiceImpl:
人员休息类别:
包结构更新如建议:
这等于
您需要指定所有软件包才能实例化bean
有关如何扫描所有bean(服务,存储库和Web)的示例
或者,您可以执行以下操作:
移动包中的所有内容,
一个例子:
您所有的应用程序都位于
如果将
(1个答案)
去年关闭。
我试图遵循一个Spring Boot的示例,我在互联网上搜索了几个小时而没有找到适合我的情况的解决方案。大多数解决方案我发现他们说要使用@ComponentScan扫描程序包,我是否缺少任何东西,任何帮助都是值得的。
SpringBootApplication类:
package ben;
@SpringBootApplication
@EnableAutoConfiguration
@ComponentScan({"services","repository", "web"})
public class SpringBootWebApplication
{
public static void main (String [] args) {
SpringApplication.run(SpringBootWebApplication.class, args);
}
}
PersonRepository类:
package ben.repository;
@Repository
public interface PersonRepository extends CrudRepository<Bde, Integer> {
}
人员服务:
package ben.services;
import models.Bde;
public interface PersonService
{
public Iterable <Bde> findAll();
}
PersonServiceImpl:
package ben.services;
@Service
public class PersonServiceImpl implements PersonService
{
@Autowired
private PersonRepository personRepository;
@Override
public Iterable<Bde> findAll()
{
return personRepository.findAll();
}
}
人员休息类别:
package ben.web;
@RestController
public class PersonRest
{
@Autowired
//@Qualifier("PersonServiceImpl")
private PersonService personService;
@RequestMapping("/person")
@ResponseBody
public Iterable <Bde> findAll() {
Iterable <Bde> persons=personService.findAll();
return persons;
}
}
包结构更新如建议:
最佳答案
您将自己限制为包service
@ComponentScan("services")
这等于
@ComponentScan(basePackages = "services")
您需要指定所有软件包才能实例化bean
有关如何扫描所有bean(服务,存储库和Web)的示例
@ComponentScan({"services","repository", "web"})
或者,您可以执行以下操作:
移动包中的所有内容,
SpringBootWebApplication
类将位于该包的根目录中。一个例子:
您所有的应用程序都位于
com.yourapp
上。如果将
SpringBootWebApplication
放在com.yourapp
中,则不再需要@ComponentScan
批注,并且仅使用@SpringBootApplication
即可简化类:package com.yourapp;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class SpringBootWebApplication {
public static void main(String[] args) {
SpringApplication.run(SpringBootWebApplication.class, args);
}
}
10-04 14:30