一般情况下,@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)