not mvc locations found example addresourcelocations addresourcehandlers addresourcehandler java spring spring-boot controller pom.xml

java - mvc - Spring Boot Controller 404



spring boot static resources not found (1)

Soy bastante nuevo en Spring Boot e intento crear una aplicación web simple. He definido una clase de controlador que contiene mi asignación para url, pero en el navegador me está dando un error de página de etiqueta blanca (404). No puedo entender por qué no es capaz de mapear. He intentado cambiar mi paquete base de exploración de componentes, pero todavía no me redirige a la página "abc" o imprimir "en el controlador" en la consola.

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>

Clase de controlador

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"; } }

Clase principal

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); } }


La clase BmsApplication se ubica debajo del paquete com.wellmanage.bms y, de forma predeterminada, la anotación @SpringBootApplication ejecuta el análisis de componentes usando este paquete como raíz. Dado que BookController está dentro de com.wellmanage.controller , el paquete se omite por configuración predeterminada.

Tienes dos opciones:

  1. Cambie la configuración predeterminada de escaneo de componentes y establezca qué paquete desea escanear:

@ComponentScan("com.wellmanage") @SpringBootApplication public class BmsApplication { public static void main(String[] args) { SpringApplication.run(BmsApplication.class, args); } }

  1. Mueva la clase de aplicación principal al paquete raíz de su aplicación para que todos los componentes que desee escanear automáticamente estén bajo su paquete, por ejemplo, para com.wellmanage .

Desde la configuración que ha publicado, parece que no configuró ningún motor de plantillas. Por lo tanto, se ignora devolver el String "abc" de su controlador.