Java 后端面试题库 / 全部题解免费阅读理解原理,有条理地回答

怎样真正启用 Spring Boot 能力?

查看完整题解

参考回答

直接回答

构建期可继承 starter-parent,或导入 dependencies BOM 管理版本;运行期则由 SpringApplication 等启动容器,并通过 SpringBootApplication 或 EnableAutoConfiguration 选择自动配置。只继承一个 Maven parent 不会自动启动程序,只有 main 方法也不保证依赖版本已经管理好。

讲清原理

可以把它分成两件事:构建工具决定拿到哪些库与插件,启动代码决定怎样创建和配置应用。公司已有父 POM 时,可以导入 Boot BOM,再单独配置需要的构建插件,不必为了使用 Boot 放弃原有父工程。

自动配置是可选择的容器组装机制,具体 Web、数据库等能力还取决于依赖与条件。没有显式 Web 依赖的任务应用也可以使用 Boot,而不必为它增加一个服务器。

Boot组织启动,Framework管理对象,MVC是可选Web能力
Boot组织启动,Framework管理对象,MVC是可选Web能力

例子与易错点

教材把“继承 parent 或导入 BOM”直接写作开启全部特性不够准确。可以先用非 Web 小程序验证启动、配置与 runner,再根据需求加入数据访问或 Web 测试。

以下为 Java 21 类成员示例,放入同一外部类中使用,依赖 Boot4.1.2 / Framework7.0.10。最小非Web启动,不开启全局自动配置或扫描,不连接项目数据库。

@org.springframework.boot.SpringBootConfiguration
static class App {
    @org.springframework.context.annotation.Bean
    String message() { return "ready"; }
}
static String startOnce() {
    var app=new org.springframework.boot.SpringApplication(App.class);
    app.setWebApplicationType(org.springframework.boot.WebApplicationType.NONE);
    app.setBannerMode(org.springframework.boot.Banner.Mode.OFF);
    app.setLogStartupInfo(false);
    try (var context=app.run(
            "--spring.config.location=optional:classpath:/__boot16_empty__/",
            "--spring.main.register-shutdown-hook=false")) {
        return context.getBean("message",String.class);
    }
}

相关题:第 1 题、第 9 题、第 17 题。

这道题,你掌握得怎么样?

掌握程度由你主动标记,阅读和收藏不会自动改变状态。