Spring启动报错org.springframework.boot.builder.SpringApplicationBuilder

本文探讨了SpringBoot和SpringCloud版本不匹配导致的NoSuchMethodError错误,并提供了最新的版本对应指南来解决此问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

java.lang.NoSuchMethodError: org.springframework.boot.builder.SpringApplicationBuilder.<in

启动报错的这个原因是SpringBoot的版本和SpringCloud的版本存在不同导致的报错,
调整对应版本,目前最新的版本对应如下:
这里写图片描述

这个问题坑了我好久。

`SpringApplicationBuilder` 是 Spring Boot 提供的一个构建工具,用于简化 Spring Boot 应用程序的配置和启动流程,特别是在需要自定义配置或部署到外部容器时非常有用。它支持链式调用,可以方便地设置启动类、配置文件、环境变量等。 ### 基本用途 `SpringApplicationBuilder` 主要用于创建 `SpringApplication` 实例,通常在需要对启动过程进行更精细控制时使用。例如,在部署到外部 Servlet 容器(如 Tomcat)时,可以通过继承 `SpringBootServletInitializer` 并重写 `configure` 方法来指定主启动类。 ```java public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder application) { return application.sources(Day64Sboot01MybatisTxApplication.class); } } ``` 此方式确保在外部容器中部署时,Spring Boot 能够正确加载并启动应用程序[^1]。 ### 常见使用场景 1. **排除自动配置** 在某些情况下,可能需要排除特定的自动配置类,以避免与自定义配置冲突。可以通过 `SpringApplicationBuilder` 的 `exclude` 方法实现。 ```java @SpringBootApplication public class Application { public static void main(String[] args) { SpringApplication.run(Application.class, args); } } ``` 如果需要排除 `DataSourceAutoConfiguration`,可以这样使用: ```java public class Application { public static void main(String[] args) { new SpringApplicationBuilder(Application.class) .exclude(DataSourceAutoConfiguration.class) .run(args); } } ``` 这种方式允许开发者灵活地控制 Spring Boot 的自动配置行为[^2]。 2. **设置环境配置** 可以通过 `SpringApplicationBuilder` 设置环境配置,例如指定不同的配置文件或自定义环境变量。 ```java new SpringApplicationBuilder(Application.class) .profiles("dev") .properties("spring.config.location=classpath:/custom-config/") .run(args); ``` 上述代码设置了当前运行的环境为 `dev`,并指定了自定义配置文件的位置。 3. **构建可执行 JAR/WAR** 在构建可执行的 JAR 或 WAR 文件时,`SpringApplicationBuilder` 也可以用于控制打包方式。例如,构建 WAR 文件时,可以通过继承 `SpringBootServletInitializer` 来指定主类。 ```java public class ServletInitializer extends SpringBootServletInitializer { @Override protected SpringApplicationBuilder configure(SpringApplicationBuilder builder) { return builder.sources(Application.class); } } ``` 这种方式确保了在外部容器中部署时,Spring Boot 应用能够正确加载并运行[^3]。 ### 注意事项 - **链式调用**:`SpringApplicationBuilder` 支持链式调用,可以连续调用多个方法来配置应用程序。 - **兼容性**:在使用 `SpringApplicationBuilder` 时,需确保 Spring Boot 的版本与相关依赖兼容。 - **文档参考**:建议参考 Spring Boot 官方文档,以获取最新的 API 说明和最佳实践。 ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值