@SpringBootApplication标注非引导类

Laughing
2021-12-05 / 0 评论 / 968 阅读 / 搜一下 / 正在检测是否收录...
温馨提示:
本文最后更新于2024年05月31日,已超过308天没有更新,若内容或图片失效,请留言反馈。

一般情况下,@SpringBootApplication一般都是标注在项目引导类上。像下面这样:

@Slf4j
@SpringBootApplication
public class DemoApplication {

    public static void main(String[] args) {

        SpringApplication.run(DemoConfiguration.class, args);
    }

}

但是@SpringBootApplication一定要标注到引导类上吗?答案是否定的。我们可以将@SpringBootApplication标注到任意的类上。

比如我们增加以下类

package cc.lisen.demo.config;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoConfiguration {
}

然后改造引导类

@Slf4j
public class DemoApplication {

    public static void main(String[] args) {

        SpringApplication.run(DemoConfiguration.class, args);
    }

}

再次运行项目,可以发现项目可以正常运行

但是如果我们访问我们的接口,会发现提示404

注意我们DemoConfiguration所在的包cc.lisen.demo.config,@SpringBootApplication只会扫描当前包及下级包,所以,我们的接口它扫描不到,就提示404。

如果希望我们其他的类被扫描到,我们就需要添加scanBasePackages属性。

package cc.lisen.demo.config;

import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication(scanBasePackages = {"cc.lisen.demo"})
public class DemoConfiguration {
}

重启项目,在访问接口,发现能正常访问

0

评论 (0)

取消