更改包上的SpringBoot WhiteLabel错误

时间:2018-01-04 09:43:44

标签: java spring spring-boot

这是demoApplication类

package com.example.demo;

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {
        SpringApplication.run(DemoApplication.class, args);
    }
}

这是控制器

package com.example.demo.controllers;

import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;

@RestController
public class HomeController
{
    @RequestMapping("/")
    @ResponseBody
    Response hellow() {
        return new Response("Hello World!");
    }

    class Response{
        private String message;

        Response(String message){
            this.setMessage(message);
        }

        public String getMessage() {
            return message;
        }

        public void setMessage(String message) {
            this.message = message;
        }
    }
}

如果我将控制器放在包com.example.demo.controllers上,但是如果我把它放在com.example.controllers上我得到一个whiteLabelError,我在com.example.controllers中设置控制器找不到,我有什么设置为将控制器置于com.example.controllers并且它有效吗?

2 个答案:

答案 0 :(得分:1)

这种情况正在发生,因为标注为DemoApplication的主要课程@SpringBootApplication(隐藏as you can see in the source下面的@ComponentScan)位于包com.example.demo下,默认情况下会进行扫描此包下的所有类以及下面的所有包。

所以只需在DemoApplication包下将com.example提升一级,它就应该有效。

答案 1 :(得分:0)

因为您的论坛DemoApplication中包含com.example.demo。控制器包依赖于SpringBoot主文件的包。