【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\=8083

spring.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文件,显示如下图片

【Java】初学springboot想写一个简单的接口,请问哪里错了,为什么接口不显示数据

回答

Spring Boot 会从启动类(即你的 Application)所在的包开始向下扫描带有特定注解(诸如 @Controller 之类)的类,由于你的启动类在 com.spring.inter.starter 内,Spring Boot 就只会自动扫描 com.spring.inter.starter 下的类文件而你的 Controller 并不在这里所以扫描不到也就注册不了.

解决办法有二:

  1. 如 @小刘 所说,手动指定包扫描的起始路径;
  2. 将启动类挪至整个项目的 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

回到顶部