我从学习Spring开始,创建基本项目,创建数据库,插入值,然后在Web浏览器中打印.
我的问题是,当我将RestController放在像主类一样的包中时 – 它可以,但我想将它分发给其他包,当我创建新包时,移动RestController它不起作用.让我们解释一下:
我的项目看起来像:
|-Springtestv_01
|-src/main/java
|--com.person
|-Main.java
|-Person.java
|-PersonLineRunner.java
|-PersonRepository.java
|-PersonController.java
|-com.controller
|-src/main/resources
|-data.sql
pom.xml
我的控制器看:
@RestController
public class PersonController {
@Autowired PersonRepository personRepository;
@RequestMapping("/persons")
Collection persons(){
return this.personRepository.findAll();
}
}
当所有内容都在com.person包中时,我在web浏览器http://localhost:8080/persons中写道它正常工作……
但我想将PersonController.java移动到com.controller包,当我移动它时,我的webbrowers称我为
There was an unexpected error (type=Not Found, status=404). No message
available
我不知道应该怎么做才能修复它.也许我应该在我的pom.xml中改变一些东西?
我的pom.xml看起来像
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
com.person
person
0.0.1-SNAPSHOT
jar
SpringTest_v0_1
Demo project for Spring Boot
org.springframework.boot
spring-boot-starter-parent
1.3.0.BUILD-SNAPSHOT
UTF-8
1.8
com.h2databaseh2
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-test
test
org.springframework.boot
spring-boot-starter-data-jpa
org.springframework.boot
spring-boot-starter-data-elasticsearch
org.springframework.boot
spring-boot-maven-plugin
spring-snapshots
Spring Snapshots
https://repo.spring.io/snapshot
true
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
spring-snapshots
Spring Snapshots
https://repo.spring.io/snapshot
true
spring-milestones
Spring Milestones
https://repo.spring.io/milestone
false
它是自动生成的,我只写一个依赖项
com.h2databaseh2
解决方法:
使用basePackages:
@ComponentScan(basePackages = { "com.person","com.controller"} )
标签:java,spring,maven,spring-restcontroller,package
来源: https://codeday.me/bug/20190930/1836585.html