我正在sts ..simple项目中创建一个java启动器
com.entities
中的员工类
com.repository
中的EmployRepository扩展了CrudRepository
EmployeeApi在com.employee
main()
当我在包中有类时,我尝试运行应用程序并浏览到localhost:8080
我没有获得实体链接。
我只得到如下的个人资料
{
"_links" : {
"profile" : {
"href" : "http://localhost:8080/profile"
}
}
}
虽然预期结果是
{
"_links" : {
"employees" : {
"href" : "http://localhost:8080/employees"
},
"profile" : {
"href" : "http://localhost:8080/profile"
}
}
}
然而,当我将所有类放在一个包中时,我得到了预期的输出。
答案 0 :(得分:0)
来自the docs:
我们通常建议您找到主应用程序类 其他类之上的根包。 @SpringBootApplication 注释通常放在您的主类上,并且它是隐式的 为某些项目定义基础“搜索包”。例如,如果你 正在写一个JPA应用程序,包的 @SpringBootApplication带注释的类用于搜索@Entity 项目。使用根包还允许仅应用组件扫描 在你的项目上。
总结一下:默认情况下,在应用程序类包和子包中搜索存储库和实体。可以使用@SpringBootApplication(scanBasePackages = "this.is.a.package.name")
更改此行为。
将您的实体和存储库移动到应用程序类的子包中,或将其包添加到扫描路径。
答案 1 :(得分:0)