Java SpringBootRESTAPI返回404
我的主要课程是这样的:Java SpringBootRESTAPI返回404,java,spring,spring-boot,spring-restcontroller,Java,Spring,Spring Boot,Spring Restcontroller,我的主要课程是这样的: package com.ratings.main; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class App { public static void main( String[] args ) {
package com.ratings.main;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class App {
public static void main( String[] args ) {
SpringApplication.run(App.class, args);
System.out.println( "Hello World!" );
}
}
package com.ratings.controller;
@RestController
public class PollController {
@Autowired
Poll poll;
@GetMapping("/")
public String home() {
System.out.println("home " + "HOME");
return "Home";
}
}
和pom.xml文件:
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>com.ratings.main.App</groupId>
<artifactId>Ratings</artifactId>
<version>1.0-SNAPSHOT</version>
<packaging>jar</packaging>
<name>Ratings</name>
<url>http://maven.apache.org</url>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.5.RELEASE</version>
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-actuator</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-jpa</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<mainClass>com.ratings.main.App</mainClass>
<excludeDevtools>false</excludeDevtools>
</configuration>
</plugin>
</plugins>
</build>
</project>
4.0.0
com.ratings.main.App
评级
1.0-快照
罐子
评级
http://maven.apache.org
org.springframework.boot
spring启动程序父级
2.0.5.1发布
UTF-8
UTF-8
1.8
org.springframework.boot
弹簧靴起动器执行器
org.springframework.boot
SpringBootStarterWeb
org.springframework.boot
弹簧起动试验
测试
org.springframework.boot
弹簧靴开发工具
真的
org.springframework.boot
spring引导启动器数据jpa
mysql
mysql连接器java
org.springframework.boot
springbootmaven插件
重新包装
com.ratings.main.App
假的
当我尝试
http://localhost:9090/
我得到了404。为什么不返回字符串“Home”?您的SpringBootApplication类在包中:
package com.ratings.main;
你的控制器在哪
package com.ratings.controller;
控制器必须与SpringBootApplication位于同一位置或其下方
因此,要么将SpringBoot应用程序移动到
com.ratings
或者将控制器移动到
com.ratings.main.controller
将控制器类放入此包
com.ratings.main
。
@SpringApplication
包含@ComponentScan
。此注释扫描主包及其子组中的bean和配置。@SpringBootApplication
package:com.ratings.main代码>
@Controller
包:com.ratings.Controller代码>
控制器类
必须与用@SpringBootApplication
注释的主类位于同一个或更低的位置。您可以通过添加这样的示例包来解决这个问题;
com.ratings.main.*代码>相同顺序或更低
另一方面,您可以对控制器包使用@ComponentScan
@ComponentScan(value = {"your.controller.package"})
@SpringBootApplication
已经有了这个标签,但它只扫描相同的顺序和更低的顺序 你能添加web mvc配置类代码吗?@crowey我没听懂你的意思?什么是mvc配置?这两个类在同一个包中是spring boot appare吗?@kingGarfield YesI还为其他可配置参数添加了WebMVC配置。所以,当应用程序启动时,9090是内部tomcat服务器的相关端口吗?或者您可以完全添加404错误吗?