欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Spring?Boot?微服務(wù)中集成?MyBatis-Plus?與集成原生?MyBatis在配置上的不同

 更新時(shí)間:2025年04月17日 09:41:34   作者:冰糖心書房  
在Spring?Boot微服務(wù)中,MyBatis-Plus通過其Boot?Starter和豐富的配置屬性,極大的簡化了MyBatis的集成和配置工作,尤其是對于全局設(shè)置和常用插件的使用,本文給大家介紹Spring?Boot?微服務(wù)中集成?MyBatis-Plus與集成原生?MyBatis?有哪些配置上的不同,感興趣的朋友一起看看吧

在Spring Boot 微服務(wù)中集成 MyBatis-Plus (MP) 與集成原生 MyBatis (MB) 在配置上的主要不同點(diǎn)。MyBatis-Plus 是在 MyBatis 基礎(chǔ)上進(jìn)行的增強(qiáng),它兼容 MyBatis 的所有配置方式,并提供了更簡潔、更強(qiáng)大的配置選項(xiàng)。

相同點(diǎn):

基礎(chǔ)數(shù)據(jù)源配置 (DataSource Configuration):

完全相同。

無論是使用原生 MB 還是 MP,在 application.ymlapplication.properties 文件中配置數(shù)據(jù)庫連接信息的方式是一樣的。Spring Boot 會(huì)自動(dòng)配置數(shù)據(jù)源(通常是 HikariCP 連接池)。

spring:
  datasource:
    url: jdbc:mysql://localhost:3306/my_service_db?useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai
    username: root
    password: your_password
    driver-class-name: com.mysql.cj.jdbc.Driver
    # HikariCP Pool settings (optional, Spring Boot has defaults)
    hikari:
      maximum-pool-size: 10
      minimum-idle: 5
      connection-timeout: 30000

Mapper 接口掃描 (Mapper Interface Scanning):

完全相同。 兩者都需要使用 @MapperScan 注解來告訴 Spring Boot 在哪個(gè)包路徑下查找 Mapper 接口。

import org.mybatis.spring.annotation.MapperScan;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
@SpringBootApplication
@MapperScan("com.yourcompany.yourservice.mapper") // Specify the package containing your Mapper interfaces
public class YourServiceApplication {
    public static void main(String[] args) {
        SpringApplication.run(YourServiceApplication.class, args);
    }
}

類型別名包掃描 (Type Aliases Package Scanning):

基本相同。

兩者都可以使用 mybatis.type-aliases-package (原生 MB) 或 mybatis-plus.type-aliases-package (MP 推薦) 屬性來指定實(shí)體類所在的包,以便在 XML 中或內(nèi)部使用類名的簡寫。MP 也兼容原生的屬性。

# Using MyBatis-Plus recommended property
mybatis-plus:
  type-aliases-package: com.yourcompany.yourservice.entity
# Or using the native MyBatis property (MP is compatible)
# mybatis:
#  type-aliases-package: com.yourcompany.yourservice.entity

支持 mybatis-config.xml (Support for mybatis-config.xml):

兼容性相同。 兩者都支持通過 mybatis.config-location (原生 MB) 或 mybatis-plus.config-location (MP 推薦) 指定傳統(tǒng)的 mybatis-config.xml 文件路徑,用于進(jìn)行一些 MyBatis 核心的、無法通過 properties 文件配置的設(shè)置(如自定義 TypeHandler、ObjectFactory、插件等)。但在 MP 中,由于其強(qiáng)大的配置能力,對 mybatis-config.xml 的依賴通常會(huì)減少。

不同點(diǎn):

依賴項(xiàng) (Dependencies):

原生 MB: 需要引入 mybatis-spring-boot-starter。

<dependency>
    <groupId>org.mybatis.spring.boot</groupId>
    <artifactId>mybatis-spring-boot-starter</artifactId>
    <version>...</version> <!-- Use compatible version -->
</dependency>

MP: 需要引入 mybatis-plus-boot-starter注意:mybatis-plus-boot-starter 已經(jīng)包含了 mybatis-spring-boot-starter,所以不需要重復(fù)引入原生 MB 的 starter。

<dependency>
    <groupId>com.baomidou</groupId>
    <artifactId>mybatis-plus-boot-starter</artifactId>
    <version>...</version> <!-- Use compatible version, e.g., 3.5.x -->
</dependency>

Mapper XML 文件位置 (Mapper XML Location):

原生 MB: 必須通過 mybatis.mapper-locations 配置項(xiàng)指定 Mapper XML 文件的路徑,因?yàn)楹诵?SQL 都寫在 XML 中。

mybatis:
  mapper-locations: classpath*:/mapper/**/*.xml

MP: 如果你還需要編寫自定義的 SQL 在 XML 文件中(MP 完全支持混合使用),那么也需要配置 mybatis-plus.mapper-locations (推薦) 或 mybatis.mapper-locations。但如果你主要依賴 MP 提供的通用 Mapper (BaseMapper) 和 Wrapper 條件構(gòu)造器進(jìn)行開發(fā),對于基礎(chǔ) CRUD 和許多動(dòng)態(tài)查詢,你可能不需要編寫任何 XML 文件,此時(shí)這個(gè)配置項(xiàng)就不是必需的(但通常建議配置以備不時(shí)之需或保持一致性)。

mybatis-plus:
  mapper-locations: classpath*:/mapper/**/*.xml # Configure if using custom XML SQL

全局配置 (Global Configuration):

原生 MB: 大部分全局配置需要在 mybatis-config.xml 中設(shè)置,或者通過有限的 mybatis.configuration.* 屬性配置(如 map-underscore-to-camel-case)。

MP: 提供了更豐富的 application.yml/properties 配置項(xiàng)來控制全局行為,主要通過 mybatis-plus.global-config.*mybatis-plus.configuration.*。

mybatis-plus:
  configuration:
    map-underscore-to-camel-case: true # Same as mybatis.configuration.map-underscore-to-camel-case
    log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # Configure logging implementation
  global-config:
    db-config:
      id-type: assign_id # Default primary key strategy (Snowflake)
      logic-delete-field: deleted # Global logic delete field name
      logic-delete-value: 1 # Logic deleted value
      logic-not-delete-value: 0 # Logic not deleted value
    banner: false # Disable MP banner on startup

MP 的 global-config 提供了對 ID 生成策略、邏輯刪除、數(shù)據(jù)庫基本配置(表名/字段名處理)、Banner 開關(guān)等 MP 特有功能的全局默認(rèn)設(shè)置。

插件配置 (Plugin Configuration):

  • 原生 MB: 插件(如分頁插件 PageHelper)通常需要單獨(dú)引入依賴,并在 mybatis-config.xml 或通過 Java Bean 的方式進(jìn)行配置和注冊。
  • MP: 內(nèi)置了許多常用插件(分頁、樂觀鎖、多租戶、防全表更新等),可以通過 application.yml/propertiesmybatis-plus.plugins.* 配置項(xiàng)直接啟用和配置,更加方便和標(biāo)準(zhǔn)化。
mybatis-plus:
  plugins:
    # Pagination Plugin
    pagination:
      max-limit: 500 # Max items per page
    # Optimistic Locker Plugin
    optimistic-locker:
      enabled: true
    # Block Attack Plugin (Prevent full table update/delete)
    block-attack:
      enabled: true

總結(jié):

配置項(xiàng)/方面原生 MyBatis (MB)MyBatis-Plus (MP)異同說明
依賴 Startermybatis-spring-boot-startermybatis-plus-boot-starter (包含前者)不同: 使用不同的 Starter
數(shù)據(jù)源配置spring.datasource.*spring.datasource.*相同: 由 Spring Boot 統(tǒng)一管理
Mapper 接口掃描@MapperScan@MapperScan相同: 都需要指定 Mapper 包路徑
類型別名包mybatis.type-aliases-packagemybatis-plus.type-aliases-package (推薦, 兼容前者)基本相同: 功能一致,MP 推薦使用其命名空間
Mapper XML 位置mybatis.mapper-locations (通常必需)mybatis-plus.mapper-locations (推薦, 僅當(dāng)使用 XML 時(shí)必需)異同: 屬性名推薦不同,對 XML 的依賴程度 MP 更低
mybatis-config.xmlmybatis.config-location (較常用)mybatis-plus.config-location (推薦, 兼容前者, 依賴度降低)異同: 都支持,但 MP 通過 properties 提供了更多配置項(xiàng),減少了對 XML 的需要
全局配置主要在 XML 或有限的 mybatis.configuration.*更豐富的 mybatis-plus.global-config.*mybatis-plus.configuration.* 屬性不同: MP 的 Properties 配置能力更強(qiáng)
插件配置通常需額外依賴 + XML/Bean 配置內(nèi)置常用插件,可通過 mybatis-plus.plugins.* 屬性配置不同: MP 極大簡化了常用插件的配置

總的來說,在 Spring Boot 微服務(wù)中,MyBatis-Plus 通過其 Boot Starter 和豐富的配置屬性,極大的簡化了 MyBatis 的集成和配置工作,尤其是對于全局設(shè)置和常用插件的使用。它在保持與原生 MyBatis 兼容性的同時(shí),提供了更符合 Spring Boot “約定優(yōu)于配置” 理念的方式。

到此這篇關(guān)于Spring Boot 微服務(wù)中集成 MyBatis-Plus 與集成原生 MyBatis在配置上的不同的文章就介紹到這了,更多相關(guān)Spring Boot 集成 MyBatis-Plus 與 MyBatis內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java中JDBC實(shí)現(xiàn)往MySQL插入百萬級數(shù)據(jù)的實(shí)例代碼

    java中JDBC實(shí)現(xiàn)往MySQL插入百萬級數(shù)據(jù)的實(shí)例代碼

    這篇文章主要介紹了java中JDBC實(shí)現(xiàn)往MySQL插入百萬級數(shù)據(jù)的實(shí)例代碼,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下。
    2017-01-01
  • JavaCV實(shí)現(xiàn)將視頻以幀方式抽取

    JavaCV實(shí)現(xiàn)將視頻以幀方式抽取

    這篇文章主要為大家詳細(xì)介紹了JavaCV實(shí)現(xiàn)將視頻以幀方式抽取,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-07-07
  • JAVA實(shí)戰(zhàn)練習(xí)之圖書管理系統(tǒng)實(shí)現(xiàn)流程

    JAVA實(shí)戰(zhàn)練習(xí)之圖書管理系統(tǒng)實(shí)現(xiàn)流程

    隨著網(wǎng)絡(luò)技術(shù)的高速發(fā)展,計(jì)算機(jī)應(yīng)用的普及,利用計(jì)算機(jī)對圖書館的日常工作進(jìn)行管理勢在必行,本篇文章手把手帶你用Java實(shí)現(xiàn)一個(gè)圖書管理系統(tǒng),大家可以在過程中查缺補(bǔ)漏,提升水平
    2021-10-10
  • Spring?DI依賴注入過程解析

    Spring?DI依賴注入過程解析

    依賴注入是由“依賴”和“注入”兩個(gè)詞匯組合而成,那么我們再一次順藤摸瓜,分別分析這兩個(gè)詞語,這篇文章主要介紹了Spring?DI依賴注入詳解,需要的朋友可以參考下
    2022-11-11
  • 解決springboot3:mybatis-plus依賴錯(cuò)誤:org.springframework.beans.factory.UnsatisfiedDependencyException

    解決springboot3:mybatis-plus依賴錯(cuò)誤:org.springframework.beans.fac

    這篇文章主要介紹了解決springboot3:mybatis-plus依賴錯(cuò)誤:org.springframework.beans.factory.UnsatisfiedDependencyException問題,具有很好的參考價(jià)值,希望對大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • SpringBoot自動(dòng)配置深入探究實(shí)現(xiàn)原理

    SpringBoot自動(dòng)配置深入探究實(shí)現(xiàn)原理

    在springboot的啟動(dòng)類中可以看到@SpringBootApplication注解,它是SpringBoot的核心注解,也是一個(gè)組合注解。其中@SpringBootConfiguration、@EnableAutoConfiguration、@ComponentScan三個(gè)注解尤為重要。今天我們就來淺析這三個(gè)注解的含義
    2022-08-08
  • mybatis中關(guān)于mapper的使用以及注意事項(xiàng)

    mybatis中關(guān)于mapper的使用以及注意事項(xiàng)

    這篇文章主要介紹了mybatis中關(guān)于mapper的使用以及注意事項(xiàng),具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-06-06
  • 使用System.exit()來優(yōu)雅地終止SpringBoot項(xiàng)目的代碼示例

    使用System.exit()來優(yōu)雅地終止SpringBoot項(xiàng)目的代碼示例

    System.exit() 方法是 Java 中用于退出程序的方法,它接受一個(gè)整數(shù)參數(shù),通常被用來指示程序的退出狀態(tài),本文給大家介紹了如何使用System.exit()來優(yōu)雅地終止SpringBoot項(xiàng)目,需要的朋友可以參考下
    2024-08-08
  • Log4j關(guān)閉Spring和Hibernate日志打印方式

    Log4j關(guān)閉Spring和Hibernate日志打印方式

    這篇文章主要介紹了Log4j關(guān)閉Spring和Hibernate日志打印方式,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2021-12-12
  • SpringBoot整合Scala構(gòu)建Web服務(wù)的方法

    SpringBoot整合Scala構(gòu)建Web服務(wù)的方法

    這篇文章主要介紹了SpringBoot整合Scala構(gòu)建Web服務(wù)的方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-03-03

最新評論