【Java】初学springboot想写一个简单的接口,请问哪里错了,为什么接口不显示数据
Application.java
package com.spring.inter.starter;import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
/\*\*
\* Spring boot 入口启动程序,sprint boot内置了tomcat \* @author Administrator
\*/
@SpringBootApplication
public class Application {
public static void main(String\[\] args) {
SpringApplication.run(Application.class,args);
}
}
package com.spring.inter.controller;import java.util.HashMap;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
@RestController
@RequestMapping("/employee")
public class EmployeeController {
@GetMapping
public HashMap<String, String> index(){
HashMap<String, String> hashmap = new HashMap<String, String>();
hashmap.put("姓名", "王二");
hashmap.put("年龄", "27");
hashmap.put("工龄", "6");
return hashmap;
}
}
application.properties文件
server.port\=8083spring.jpa.show-sql \= true
logging.level.org.springframework.data\=DEBUG
spring.jpa.hibernate.ddl-auto\=
spring.datasource.url\=jdbc:mysql://localhost:3306/test
spring.datasource.username\=root
spring.datasource.password\=jason
spring.datasource.driver-class-name\=com.mysql.jdbc.Driver
启动Application.java文件,显示如下图片
回答
Spring Boot 会从启动类(即你的 Application)所在的包开始向下扫描带有特定注解(诸如 @Controller
之类)的类,由于你的启动类在 com.spring.inter.starter
内,Spring Boot 就只会自动扫描 com.spring.inter.starter
下的类文件而你的 Controller 并不在这里所以扫描不到也就注册不了.
解决办法有二:
- 如 @小刘 所说,手动指定包扫描的起始路径;
- 将启动类挪至整个项目的
src
目录下,这样就能正常扫描到了.
我复制你的代码建了一个新项目,发现是你的端口配置错误了。
server.port\=8083
为什么有个斜杠?
有个斜杠spring就无法识别你的端口是8083,它启动的时候将继续使用默认端口8080. 你可以认真检查一下你的程序跑起来之后,控制台打印出来的端口是不是8083.
INFO 57601 --- [ main] o.s.b.w.embedded.tomcat.TomcatWebServer : Tomcat started on port(s): 8080 (http) with context path ''
程序是用8080端口启起来的,而你用了8083去访问,所以就遇到了你截图的错误。
加一行代码就可以了@ComponentScan(basePackages\= {"com.spring.inter.controller"})//扫描组件
package com.spring.inter.starter; import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.context.annotation.ComponentScan;
/\*\*
\* Spring boot 入口启动程序,sprint boot内置了tomcat \* @author Administrator
\*/
@ComponentScan(basePackages\= {"com.spring.inter.controller"})//扫描组件
@SpringBootApplication
public class Application {
public static void main(String\[\] args) {
SpringApplication.run(Application.class,args);
}
}
以上是 【Java】初学springboot想写一个简单的接口,请问哪里错了,为什么接口不显示数据 的全部内容, 来源链接: utcz.com/a/89106.html