복붙노트

[SPRING] 스프링 부트 컨트롤러 404

SPRING

스프링 부트 컨트롤러 404

나는 Spring Boot에서 매우 새롭고 간단한 웹 앱을 만들려고 노력하고있다. url에 대한 매핑을 포함하는 컨트롤러 클래스를 정의했지만 브라우저에서는 흰색 라벨 페이지 오류 (404)를 표시합니다. 왜 그것이지도를 만들 수 없는지 나는 이해할 수 없다. 구성 요소 스캔 기본 패키지를 변경하려고했지만 여전히 "abc"페이지로 리다이렉트하지 않거나 콘솔의 "컨트롤러에서"인쇄하지 않습니다.

Pom.hml

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

해결법

  1. ==============================

    1.BmsApplication 클래스는 com.wellmanage.bms 패키지 아래에 배치되며 기본적으로 @SpringBootApplication 주석은이 패키지를 루트로 사용하여 구성 요소 검색을 실행합니다. BookController가 com.wellmanage.controller 안에 있기 때문에 패키지는 기본 구성에 의해 생략됩니다.

    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"를 반환하는 것은 무시됩니다.

  2. from https://stackoverflow.com/questions/37342977/spring-boot-controller-404 by cc-by-sa and MIT license