My Spring应用程序未映射@RestController
。在我看来它是一个ComponentScan
问题。我有两个项目(数据库和API应用程序),我正在扫描这两个项目(我试过basePackages
和value
)。
但仍然无法正常工作。
申请类:
//@ComponentScan({"project.name.db", "project.name"})
@ComponentScan(basePackages = "project.name")
@SpringBootApplication
public class MyApplication {
public static void main(String[] args) {
SpringApplication.run(MyApplication.class, args);
}
}
控制器:
@RestController
@ResponseStatus(HttpStatus.OK)
public class PersonController {
@Autowired
private PersonService personService;
@RequestMapping("/person")
public List<Person> getPerson(@RequestParam int someId) throws Exception {
return this.personService.getPerson(someId);
}
}
当Spring加载时,输出不包含此/person
地图。
它能是什么?
更新项目结构
project.name.db
模型
存储库
project.name
MyApplication.java
控制器
服务
斜体文本是包。
答案 0 :(得分:0)
有选项:
@SpringBootApplication(scanBasePackages = "your.toplevel.package")
或
@SpringBootApplication(scanBasePackageClasses= {PersonController.class})
答案 1 :(得分:0)
删除
@ComponentScan(basePackages = "project.name")
如果您的主要类(即@ComponentScan
)位于根包中,则您不需要MyApplication
。 Spring启动会自动扫描那些。