我是Spring Boot的新手,并试图构建一个简单的Web应用程序。我定义了一个包含我的url映射的控制器类,但在浏览器上它给我一个白标页面错误(404)。我无法理解为什么它无法映射。我尝试过更改我的组件扫描基础包,但它仍然没有将我重定向到控制台中的页面“abc”或打印“在控制器中”。
pom.xml
<?xml version="1.0" encoding="UTF-8"?>
<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/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<groupId>bms</groupId>
<artifactId>com.wellmanage.bms</artifactId>
<version>0.0.1-SNAPSHOT</version>
<packaging>jar</packaging>
<name>BMS</name>
<description>Demo project for Spring Boot</description>
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>1.3.5.RELEASE</version>
<relativePath/> <!-- lookup parent from repository -->
</parent>
<properties>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<java.version>1.8</java.version>
</properties>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</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>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
</project>
控制器类
package com.wellmanage.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestMethod;
import org.springframework.web.bind.annotation.ResponseBody;
@Controller
public class BookController {
@RequestMapping("/")
public String hello() {
System.out.println("in controller");
return "abc";
}
}
主类
package com.wellmanage.bms;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
public class BmsApplication {
public static void main(String[] args) {
SpringApplication.run(BmsApplication.class, args);
}
}
BmsApplication
类放置在com.wellmanage.bms
包下,默认情况下,@SpringBootApplication
注释使用此包作为根来运行组件扫描。由于BookController
位于com.wellmanage.controller
中,因此默认配置中省略了包。
你有两个选择:
@ComponentScan("com.wellmanage")
@SpringBootApplication
public class BmsApplication {
public static void main(String[] args) {
SpringApplication.run(BmsApplication.class, args);
}
}
从您发布的配置来看,您似乎没有设置任何模板引擎。因此,从控制器返回字符串“abc”将被忽略。
> 我有两个控制器(ControllerA和ControllerB) 两个控制器都调用一个服务(MyService)。 MyService调用名为MyRepository的接口,该接口有两个实现(FirstRepository和SecondRepository)。 如何可能在从ControllerA调用服务(MyService)时使用FirstRepository而在调用来自ControllerB
我正在intellij中运行Spring Boot应用程序,我所有的计划任务和一切都正常工作,但是我在@RestController和@Request estMap注册的控制器没有注册。当我尝试访问这些时,我得到404,而当我使用eclipse时,同样工作正常。甚至我的ide控制台也显示rest控制器已注册: 无法猜测可能会出什么问题?
招呼 我有一个Spring Boot应用程序(1.4.1版)。之前从中设置 -支持thymeleaf模板中不严格的html。我只在电子邮件模板中使用Thymeleaf模板。该应用程序代表tho REST API,所有控制器返回数据。 然而,在我为电子邮件设置了Thymeleaf之后,一些请求正在为它们寻找Thymeleaf模板,并返回。 Thymeleaf配置(yml,这是Thymeleaf的所有
----在2019-06-03@13:21 CET下面添加信息----因为我有一个普通的Spring(非引导)应用程序接受来自打印机的POST请求,所以我能够在传入的请求中记录信息。所以我就这么做了。 这是来自打印机的POST请求之一,Spring boot Oontroller不接受它: 这是Postman向完全相同的URL发送的POST请求之一,Spring boot Oontroller接受
我试图找出一种最简单的方法来控制基本Spring Boot RESTful服务的404 Not Found处理程序,例如Spring提供的示例: https://spring.io/guides/gs/rest-service/ 而不是让它返回默认的Json输出: 或者有比抛出并处理NoHandlerFoundException更好的方法吗?
我有一个java/Spring Boot应用程序,我想在其中构建一个APIendpoint,创建并返回一个可下载的excel文件。这是我的控制器endpoint: 然后是服务类 这段代码使用Apache POI库成功地创建了正确的excel文件。但是这不会正确地将它从控制器中返回,因为< code > ByteArrayResource::getFilename 总是返回null: 我可以使用什么