首頁 > Java > java教程 > 彈簧 - 配置與兩個盒子分解

彈簧 - 配置與兩個盒子分解

Patricia Arquette
發布: 2025-01-29 16:15:10
原創
451 人瀏覽過

spring-: configuration-with-two-out-of-the-box-solutions

Spring Boot 配置的兩種方案

Spring Boot 認識到不同的項目有不同的配置需求,因此提供了兩種方法:

  1. 手動配置 (@SpringBootConfiguration) – 對於需要精細化控制的項目。
  2. 自動配置 (@EnableAutoConfiguration) – 對於受益於約定優於配置(即更少的手動設置)的項目。

選擇取決於項目的具體需求。

何時使用哪種方法?

使用場景 方法 原因
需要完全控制 Bean 和配置
使用场景 方法 原因
需要完全控制 Bean 和配置 @SpringBootConfiguration 手动定义所有内容(就像在经典 Spring 项目中一样)。
需要 Spring Boot 自动配置常用组件 @EnableAutoConfiguration 通过基于依赖项自动配置 Bean 来节省时间。
需要同时使用两种方法 两种方法都使用 自动配置已启用,但手动配置会覆盖默认值。
需要使用特定配置测试 Spring Boot 应用程序 @SpringBootConfiguration 可用于使用自定义测试配置进行单元测试。
需要禁用或调整自动配置 @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class}) 根据需要可以禁用特定的自动配置。
手動定義所有內容(就像在經典 Spring 項目中一樣)。
需要 Spring Boot 自動配置常用組件 通過基於依賴項自動配置 Bean 來節省時間。
需要同時使用兩種方法 兩種方法都使用 自動配置已啟用,但手動配置會覆蓋默認值。
需要使用特定配置測試 Spring Boot 應用程序 可用於使用自定義測試配置進行單元測試。
需要禁用或調整自動配置 @EnableAutoConfiguration(exclude = {DataSourceAutoConfiguration.class}) 根據需要可以禁用特定的自動配置。

實踐場景

1️⃣ 完全手動配置(傳統的 Spring)

如果您的項目需要完全控制(例如,遺留系統遷移或高度自定義的系統):

<code class="language-java">@SpringBootConfiguration
public class MyAppConfig {
    @Bean
    public DataSource dataSource() {
        return new HikariDataSource(); // 手动配置数据库
    }
}</code>
登入後複製
  • 無自動配置: 您必須手動定義所有 Bean。
  • 當您想要避免隱藏行為時非常有用。

2️⃣ 完全自動配置(Spring Boot 默認)

如果您想讓 Spring Boot 處理所有事情,請使用:

<code class="language-java">@SpringBootApplication // 包含 @EnableAutoConfiguration
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}</code>
登入後複製
  • 自動配置數據庫、Web 服務器、安全等。
  • 非常適合快速開發和微服務。

3️⃣ 混合方法(自動 手動配置)

如果您需要自動配置,但想要覆蓋某些部分,請執行以下操作:

<code class="language-java">@SpringBootApplication
public class MyApp {
    public static void main(String[] args) {
        SpringApplication.run(MyApp.class, args);
    }
}

@Configuration
class ManualConfig {
    @Bean
    public DataSource dataSource() {
        return new HikariDataSource(); // 覆盖默认自动配置的 DataSource
    }
}</code>
登入後複製
  • 手動 Bean (dataSource) 優先於自動配置的 Bean。
  • 當自動配置大部分都很好,但您需要自定義關鍵部分時非常有用。

總結

是的,Spring Boot 提供了兩種解決配置問題的方案,最佳選擇取決於項目的需要:

  • 對於快速開發,使用 @EnableAutoConfiguration
  • 對於完全控制,使用 @SpringBootConfiguration
  • 對於均衡的方法,讓自動配置處理大部分事情,但在必要時進行覆蓋。 ?

以上是彈簧 - 配置與兩個盒子分解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板