亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

SpringBoot中MyBatis-Flex的集成和使用實(shí)現(xiàn)

 更新時(shí)間:2023年12月13日 10:34:25   作者:小筱在線  
MyBatis-Flex是一個(gè)基于MyBatis的數(shù)據(jù)訪問框架,MyBatis-Flex能夠極大地提高我們的開發(fā)效率和開發(fā)體驗(yàn),本文主要介紹了SpringBoot中MyBatis-Flex的集成和使用實(shí)現(xiàn),具有一定的參考價(jià)值,感興趣的可以了解一下

一、MyBatis-Flex 是什么?

MyBatis-Flex是一個(gè)基于MyBatis的數(shù)據(jù)訪問框架,專門為Flex應(yīng)用程序而設(shè)計(jì)的。它提供了一種靈活而高效的方式來處理Flex應(yīng)用程序中的數(shù)據(jù)訪問,可以輕松地連接到各種數(shù)據(jù)源,并提供了一些方便的工具和功能,包括對(duì)象關(guān)系映射(ORM)、動(dòng)態(tài)查詢、分頁、事務(wù)處理等等。它的主要目的是簡(jiǎn)化數(shù)據(jù)訪問的過程,使得開發(fā)人員可以更加專注于業(yè)務(wù)邏輯的開發(fā),而不是一些瑣碎的數(shù)據(jù)訪問細(xì)節(jié)。

總而言之,MyBatis-Flex 能夠極大地提高我們的開發(fā)效率和開發(fā)體驗(yàn),讓我們有更多的時(shí)間專注于自己的事情。

官方文檔:MyBatis Flex官方網(wǎng)站

二、特征?

1、輕量型

  • 輕依賴:除了 MyBatis,沒有任何第三方依賴輕依賴、沒有任何攔截器
  • 輕實(shí)現(xiàn):原理是通過 SqlProvider 的方式實(shí)現(xiàn)
  • 輕運(yùn)行:沒有任何的 Sql 解析,帶來了這么幾個(gè)好處:1、極高的性能;2、方便對(duì)代碼進(jìn)行跟蹤和調(diào)試; 3、更高的把控性

2、使用靈活

  • 支持 Entity 的增刪改查、以及分頁查詢
  • MyBatis-Flex 提供了 Db + Row^靈活 工具,可以無需實(shí)體類對(duì)數(shù)據(jù)庫進(jìn)行增刪改查以及分頁查詢
  • MyBatis-Flex 內(nèi)置的 QueryWrapper^靈活 可以輕易的幫助我們實(shí)現(xiàn)多表查詢、子查詢和鏈接查詢等常見的 SQL 查詢場(chǎng)景

3、功能強(qiáng)大

  • 支持任意關(guān)系型數(shù)據(jù)庫,還可以通過方言持續(xù)擴(kuò)展
  • 支持多主鍵,邏輯刪除、數(shù)據(jù)脫敏、數(shù)據(jù)填充和樂觀鎖配置等

三、MyBatis Flex的使用

1、創(chuàng)建數(shù)據(jù)庫表

創(chuàng)建sql如下:

CREATE TABLE IF NOT EXISTS `tb_account`
(
    `id`        INTEGER PRIMARY KEY auto_increment,
    `user_name` VARCHAR(100),
    `age`       INTEGER,
    `birthday`  DATETIME
);

INSERT INTO tb_account(id, user_name, age, birthday)
VALUES (1, '張三', 18, '2020-01-11'),
       (2, '李四', 19, '2021-03-21');

2、創(chuàng)建 Spring Boot 項(xiàng)目,添加 依賴

可以使用 Spring Initializer 快速初始化一個(gè) Spring Boot 工程。

需要添加的 Maven 主要依賴示例:

pom.xml配置如下:

<dependencies>
    <dependency>
        <groupId>com.mybatis-flex</groupId>
        <artifactId>mybatis-flex-spring-boot-starter</artifactId>
        <version>1.7.5</version>
    </dependency>
    <dependency>
        <groupId>com.mysql</groupId>
        <artifactId>mysql-connector-j</artifactId>
        <scope>runtime</scope>
    </dependency>
    <dependency>
        <groupId>com.zaxxer</groupId>
        <artifactId>HikariCP</artifactId>
    </dependency>
    <!-- for test only -->
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
        <scope>test</scope>
    </dependency>
</dependencies>

3、對(duì) Spring Boot 項(xiàng)目進(jìn)行配置

在 application.yml 中配置數(shù)據(jù)源:

# DataSource Config
spring:
  datasource:
    url: jdbc:mysql://localhost:3306/flex_test
    username: root
    password: 12345678

在 Spring Boot 啟動(dòng)類中添加 @MapperScan 注解,掃描 Mapper 文件夾:

@SpringBootApplication
@MapperScan("com.mybatisflex.test.mapper")
public class MybatisFlexTestApplication {

    public static void main(String[] args) {
        SpringApplication.run(MybatisFlexTestApplication.class, args);
    }

}

4、編寫實(shí)體類和 Mapper 接口

這里使用了 Lombok 注解來簡(jiǎn)化代碼,類代碼如下:

@Data
@Table("tb_account")
public class Account {

    @Id(keyType = KeyType.Auto)
    private Long id;
    private String userName;
    private Integer age;
    private Date birthday;

}
  • 使用 @Table("tb_account") 設(shè)置實(shí)體類與表名的映射關(guān)系
  • 使用 @Id(keyType = KeyType.Auto) 標(biāo)識(shí)主鍵為自增

Mapper 接口繼承 BaseMapper 接口:

public interface AccountMapper extends BaseMapper<Account> {

}

這部分也可以使用 MyBatis-Flex 的代碼生成器來生,功能非常強(qiáng)大的。詳情進(jìn)入:代碼生成器章節(jié) 了解。

5、開始使用

添加測(cè)試類,進(jìn)行功能測(cè)試:

import static com.mybatisflex.test.entity.table.AccountTableDef.ACCOUNT;

@SpringBootTest
class MybatisFlexTestApplicationTests {

    @Autowired
    private AccountMapper accountMapper;

    @Test
    void contextLoads() {
        QueryWrapper queryWrapper = QueryWrapper.create()
                .select()
                .where(ACCOUNT.AGE.eq(18));
        Account account = accountMapper.selectOneByQuery(queryWrapper);
        System.out.println(account);
    }

}

控制臺(tái)輸出:

Account(id=1, userName=張三, age=18, birthday=Sat Jan 11 00:00:00 CST 2020)

以上的 示例 中, ACCOUNT 為 MyBatis-Flex 通過 APT 自動(dòng)生成,只需通過靜態(tài)導(dǎo)入即可,無需手動(dòng)編碼。

點(diǎn)擊查看更多APT文檔 APT 文檔。

若覺得 APT 使用不習(xí)慣,也可以使用代碼生成器來生成。點(diǎn)擊 代碼生成器文檔 了解。

四、同類框架「功能」對(duì)比

MyBatis-Flex 主要是和 MyBatis-Plus 與 Fluent-MyBatis 對(duì)比,內(nèi)容來源其官網(wǎng)、git 或者 網(wǎng)絡(luò)文章,若有錯(cuò)誤歡迎糾正。

  • MyBatis-Plus:老牌的 MyBatis 增強(qiáng)框架,開源于 2016 年。
  • Fluent-MyBatis:阿里云開發(fā)的 MyBatis 增強(qiáng)框架(來自于阿里云·云效產(chǎn)品團(tuán)隊(duì))

功能對(duì)比:

功能或特點(diǎn)MyBatis-FlexMyBatis-PlusFluent-MyBatis
對(duì) entity 的基本增刪改查???
分頁查詢???
分頁查詢之總量緩存???
分頁查詢無 SQL 解析設(shè)計(jì)(更輕量,及更高性能)???
多表查詢: from 多張表???
多表查詢: left join、inner join 等等???
多表查詢: union,union all???
單主鍵配置???
多種 id 生成策略???
支持多主鍵、復(fù)合主鍵???
字段的 typeHandler 配置???
除了 MyBatis,無其他第三方依賴(更輕量)???
QueryWrapper 是否支持在微服務(wù)項(xiàng)目下進(jìn)行 RPC 傳輸??未知
邏輯刪除???
樂觀鎖???
SQL 審計(jì)???
數(shù)據(jù)填充???
數(shù)據(jù)脫敏??? (收費(fèi))?
字段權(quán)限??? (收費(fèi))?
字段加密??? (收費(fèi))?
字典回寫??? (收費(fèi))?
Db + Row???
Entity 監(jiān)聽???
多數(shù)據(jù)源支持?借助其他框架或收費(fèi)?
多數(shù)據(jù)源是否支持 Spring 的事務(wù)管理,比如 @Transactional 和 TransactionTemplate 等???
多數(shù)據(jù)源是否支持 "非Spring" 項(xiàng)目???
多租戶???
動(dòng)態(tài)表名???
動(dòng)態(tài) Schema???

以上內(nèi)容來自第三方相關(guān)產(chǎn)品的官方文檔或第三方平臺(tái),若有錯(cuò)誤,歡迎糾正。

五、同類框架「性能」對(duì)比

本文主要是展示了 MyBatis-Flex 和 Mybaits-Plus 的「性能」對(duì)比。Mybaits-Plus 是一個(gè)非常優(yōu)秀 Mybaits 增強(qiáng)框架, 其開源于 2016 年,有很多的成功案例。

測(cè)試方法:

使用 h2 數(shù)據(jù)庫,在初始化的時(shí)候分別為 mybatis-flex 和 mybatis-plus 創(chuàng)建兩個(gè)不同的數(shù)據(jù)庫, 但是完全一樣的數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)內(nèi)容和數(shù)據(jù)量(每個(gè)庫 2w 條數(shù)據(jù))。

開始之前先進(jìn)行預(yù)熱,之后通過打印時(shí)間戳的方式進(jìn)行對(duì)比,誰消耗的時(shí)間越少,則性能越高(每次測(cè)試 10 輪)。

1、測(cè)試單條數(shù)據(jù)查詢?

MyBatis-Flex 的代碼如下:

QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.where(FLEX_ACCOUNT.ID.ge(100)
.or(FLEX_ACCOUNT.USER_NAME.eq("admin" + ThreadLocalRandom.current().nextInt(10000))));
mapper.selectOneByQuery(queryWrapper);

MyBatis-Plus 的代碼如下:

QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.ge("id", 100);
queryWrapper.or();
queryWrapper.eq("user_name", "admin" + ThreadLocalRandom.current().nextInt(10000));
queryWrapper.last("limit 1");
mapper.selectOne(queryWrapper);

10 輪的測(cè)試結(jié)果:

---------------
>>>>>>>testFlexSelectOne:134
>>>>>>>testPlusSelectOneWithLambda:989
>>>>>>>testPlusSelectOne:830
---------------
>>>>>>>testFlexSelectOne:75
>>>>>>>testPlusSelectOneWithLambda:732
>>>>>>>testPlusSelectOne:795
---------------
>>>>>>>testFlexSelectOne:65
>>>>>>>testPlusSelectOneWithLambda:938
>>>>>>>testPlusSelectOne:714
---------------
>>>>>>>testFlexSelectOne:105
>>>>>>>testPlusSelectOneWithLambda:740
>>>>>>>testPlusSelectOne:669
---------------
>>>>>>>testFlexSelectOne:57
>>>>>>>testPlusSelectOneWithLambda:691
>>>>>>>testPlusSelectOne:773
---------------
>>>>>>>testFlexSelectOne:65
>>>>>>>testPlusSelectOneWithLambda:693
>>>>>>>testPlusSelectOne:695
---------------
>>>>>>>testFlexSelectOne:56
>>>>>>>testPlusSelectOneWithLambda:754
>>>>>>>testPlusSelectOne:665
---------------
>>>>>>>testFlexSelectOne:56
>>>>>>>testPlusSelectOneWithLambda:714
>>>>>>>testPlusSelectOne:717
---------------
>>>>>>>testFlexSelectOne:57
>>>>>>>testPlusSelectOneWithLambda:696
>>>>>>>testPlusSelectOne:671
---------------
>>>>>>>testFlexSelectOne:59
>>>>>>>testPlusSelectOneWithLambda:739
>>>>>>>testPlusSelectOne:659

測(cè)試結(jié)論

MyBatis-Flex 的查詢單條數(shù)據(jù)的速度,大概是 MyBatis-Plus 的 5 ~ 10+ 倍。

2、測(cè)試列表(List)數(shù)據(jù)查詢?

要求返回的數(shù)據(jù)為 10 條數(shù)據(jù)。

MyBatis-Flex 的代碼如下:

QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.where(FLEX_ACCOUNT.ID.ge(100).or(FLEX_ACCOUNT.USER_NAME
.eq("admin" + ThreadLocalRandom.current().nextInt(10000))))
.limit(10);
mapper.selectListByQuery(queryWrapper);

MyBatis-Plus 的代碼如下:

QueryWrapper queryWrapper = new QueryWrapper();
queryWrapper.ge("id", 100);
queryWrapper.or();
queryWrapper.eq("user_name", "admin" + ThreadLocalRandom.current().nextInt(10000));
queryWrapper.last("limit 10");
mapper.selectList(queryWrapper);

10 輪的測(cè)試結(jié)果:

---------------
>>>>>>>testFlexSelectTop10:90
>>>>>>>testPlusSelectTop10WithLambda:743
>>>>>>>testPlusSelectTop10:678
---------------
>>>>>>>testFlexSelectTop10:85
>>>>>>>testPlusSelectTop10WithLambda:692
>>>>>>>testPlusSelectTop10:684
---------------
>>>>>>>testFlexSelectTop10:84
>>>>>>>testPlusSelectTop10WithLambda:692
>>>>>>>testPlusSelectTop10:670
---------------
>>>>>>>testFlexSelectTop10:85
>>>>>>>testPlusSelectTop10WithLambda:737
>>>>>>>testPlusSelectTop10:667
---------------
>>>>>>>testFlexSelectTop10:85
>>>>>>>testPlusSelectTop10WithLambda:691
>>>>>>>testPlusSelectTop10:684
---------------
>>>>>>>testFlexSelectTop10:97
>>>>>>>testPlusSelectTop10WithLambda:760
>>>>>>>testPlusSelectTop10:666
---------------
>>>>>>>testFlexSelectTop10:80
>>>>>>>testPlusSelectTop10WithLambda:673
>>>>>>>testPlusSelectTop10:637
---------------
>>>>>>>testFlexSelectTop10:81
>>>>>>>testPlusSelectTop10WithLambda:653
>>>>>>>testPlusSelectTop10:639
---------------
>>>>>>>testFlexSelectTop10:82
>>>>>>>testPlusSelectTop10WithLambda:659
>>>>>>>testPlusSelectTop10:636
---------------
>>>>>>>testFlexSelectTop10:81
>>>>>>>testPlusSelectTop10WithLambda:654
>>>>>>>testPlusSelectTop10:656

測(cè)試結(jié)論

MyBatis-Flex 的查詢 10 條數(shù)據(jù)的速度,大概是 MyBatis-Plus 的 5~10 倍左右。

3、分頁查詢?

MyBatis-Flex 的代碼如下:

QueryWrapper queryWrapper = new QueryWrapper()
    .where(FLEX_ACCOUNT.ID.ge(100));
mapper.paginate(page, pageSize, 20000, queryWrapper);

MyBatis-Plus 的代碼如下:

LambdaQueryWrapper<PlusAccount> queryWrapper = new LambdaQueryWrapper<>();
    queryWrapper.ge(PlusAccount::getId, 100);
    queryWrapper.eq(PlusAccount::getEmail, "michael@gmail.com");
Page<PlusAccount> p = Page.of(page, pageSize, 20000, false);
mapper.selectPage(p, queryWrapper);

10 輪的測(cè)試結(jié)果:

---------------
>>>>>>>testFlexPaginate:90
>>>>>>>testPlusPaginate:671
---------------
>>>>>>>testFlexPaginate:78
>>>>>>>testPlusPaginate:643
---------------
>>>>>>>testFlexPaginate:80
>>>>>>>testPlusPaginate:638
---------------
>>>>>>>testFlexPaginate:79
>>>>>>>testPlusPaginate:613
---------------
>>>>>>>testFlexPaginate:75
>>>>>>>testPlusPaginate:627
---------------
>>>>>>>testFlexPaginate:72
>>>>>>>testPlusPaginate:606
---------------
>>>>>>>testFlexPaginate:69
>>>>>>>testPlusPaginate:585
---------------
>>>>>>>testFlexPaginate:70
>>>>>>>testPlusPaginate:589
---------------
>>>>>>>testFlexPaginate:69
>>>>>>>testPlusPaginate:586
---------------
>>>>>>>testFlexPaginate:68
>>>>>>>testPlusPaginate:585

測(cè)試結(jié)論

Mybatis-Flex 的分頁查詢速度,大概是 Mybatis-Plus 的 5~10 倍左右。

4、數(shù)據(jù)更新?

Mybatis-Flex 的代碼如下:

FlexAccount flexAccount = new FlexAccount();
flexAccount.setUserName("testInsert" + i);
flexAccount.setNickname("testInsert" + i);
flexAccount.addOption("key1", "value1");
flexAccount.addOption("key2", "value2");
flexAccount.addOption("key3", "value3");
flexAccount.addOption("key4", "value4");
flexAccount.addOption("key5", "value5");

QueryWrapper queryWrapper = QueryWrapper.create()
    .where(FLEX_ACCOUNT.ID.ge(9200))
    .and(FLEX_ACCOUNT.ID.le(9300))
    .and(FLEX_ACCOUNT.USER_NAME.like("admin"))
    .and(FLEX_ACCOUNT.NICKNAME.like("admin"));

mapper.updateByQuery(flexAccount, queryWrapper);

Mybatis-Plus 的代碼如下:

PlusAccount plusAccount = new PlusAccount();
plusAccount.setUserName("testInsert" + i);
plusAccount.setNickname("testInsert" + i);
plusAccount.addOption("key1", "value1");
plusAccount.addOption("key2", "value2");
plusAccount.addOption("key3", "value3");
plusAccount.addOption("key4", "value4");
plusAccount.addOption("key5", "value5");

LambdaUpdateWrapper<PlusAccount> updateWrapper = new LambdaUpdateWrapper<>();
updateWrapper.ge(PlusAccount::getId, 9000);
updateWrapper.le(PlusAccount::getId, 9100);
updateWrapper.like(PlusAccount::getUserName, "admin");
updateWrapper.like(PlusAccount::getNickname, "admin");

mapper.update(plusAccount, lambdaUpdateWrapper);

10 輪的測(cè)試結(jié)果:

---------------
>>>>>>>testFlexUpdate:58
>>>>>>>testPlusUpdate:524
---------------
>>>>>>>testFlexUpdate:51
>>>>>>>testPlusUpdate:503
---------------
>>>>>>>testFlexUpdate:49
>>>>>>>testPlusUpdate:490
---------------
>>>>>>>testFlexUpdate:45
>>>>>>>testPlusUpdate:472
---------------
>>>>>>>testFlexUpdate:48
>>>>>>>testPlusUpdate:470
---------------
>>>>>>>testFlexUpdate:44
>>>>>>>testPlusUpdate:460
---------------
>>>>>>>testFlexUpdate:43
>>>>>>>testPlusUpdate:459
---------------
>>>>>>>testFlexUpdate:44
>>>>>>>testPlusUpdate:461
---------------
>>>>>>>testFlexUpdate:40
>>>>>>>testPlusUpdate:444
---------------
>>>>>>>testFlexUpdate:41
>>>>>>>testPlusUpdate:444

測(cè)試結(jié)論

Mybatis-Flex 的數(shù)據(jù)更新速度,大概是 Mybatis-Plus 的 5~10+ 倍。

總之性能測(cè)試結(jié)果:

不論是MyBatis-Flex 單條查詢分頁查詢還是數(shù)據(jù)更新,速度均是 MyBatis-Plus 的 5~10 倍左右?。?!

六、MyBatis-Flex 支持的數(shù)據(jù)庫

MyBatis-Flex 支持的數(shù)據(jù)庫類型,如下表格所示,我們還可以通過自定義方言的方式,持續(xù)添加更多的數(shù)據(jù)庫支持。

數(shù)據(jù)庫描述
mysqlMySQL 數(shù)據(jù)庫
mariadbMariaDB 數(shù)據(jù)庫
oracleOracle11g 及以下數(shù)據(jù)庫
oracle12cOracle12c 及以上數(shù)據(jù)庫
db2DB2 數(shù)據(jù)庫
H2H2 數(shù)據(jù)庫
hsqlHSQL 數(shù)據(jù)庫
sqliteSQLite 數(shù)據(jù)庫
postgresqlPostgreSQL 數(shù)據(jù)庫
sqlserver2005SQLServer2005 數(shù)據(jù)庫
sqlserverSQLServer 數(shù)據(jù)庫
dm達(dá)夢(mèng)數(shù)據(jù)庫
xugu虛谷數(shù)據(jù)庫
kingbasees人大金倉數(shù)據(jù)庫
phoenixPhoenix HBase 數(shù)據(jù)庫
gaussGauss 數(shù)據(jù)庫
clickhouseClickHouse 數(shù)據(jù)庫
gbase南大通用(華庫)數(shù)據(jù)庫
gbase-8s南大通用數(shù)據(jù)庫 GBase 8s
oscar神通數(shù)據(jù)庫
sybaseSybase ASE 數(shù)據(jù)庫
OceanBaseOceanBase 數(shù)據(jù)庫
FirebirdFirebird 數(shù)據(jù)庫
derbyDerby 數(shù)據(jù)庫
highgo瀚高數(shù)據(jù)庫
cubridCUBRID 數(shù)據(jù)庫
goldilocksGOLDILOCKS 數(shù)據(jù)庫
csiidbCSIIDB 數(shù)據(jù)庫
hanaSAP_HANA 數(shù)據(jù)庫
impalaImpala 數(shù)據(jù)庫
verticaVertica 數(shù)據(jù)庫
xcloud行云數(shù)據(jù)庫
redshift亞馬遜 redshift 數(shù)據(jù)庫
openGauss華為 openGauss 數(shù)據(jù)庫
TDengineTDengine 數(shù)據(jù)庫
informixInformix 數(shù)據(jù)庫
greenplumGreenplum 數(shù)據(jù)庫
uxdb優(yōu)炫數(shù)據(jù)庫
DorisDoris數(shù)據(jù)庫
Hive SQLHive 數(shù)據(jù)庫
lealoneLealone 數(shù)據(jù)庫
sinodb星瑞格數(shù)據(jù)庫

到此這篇關(guān)于SpringBoot中MyBatis-Flex的集成和使用實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)SpringBoot MyBatis-Flex集成內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • IDEA安裝阿里代碼規(guī)范插件的步驟圖文詳解

    IDEA安裝阿里代碼規(guī)范插件的步驟圖文詳解

    這篇文章主要介紹了IDEA安裝阿里代碼規(guī)范插件的步驟,本文通過圖文并茂的形式給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-12-12
  • 詳解Java內(nèi)存泄露的示例代碼

    詳解Java內(nèi)存泄露的示例代碼

    這篇文章通過一個(gè)Demo來簡(jiǎn)要介紹下ThreadLocal和ClassLoader導(dǎo)致內(nèi)存泄露最終OutOfMemory的場(chǎng)景。下面通過示例代碼給大家分享Java內(nèi)存泄露的相關(guān)知識(shí),感興趣的朋友一起看看吧
    2017-12-12
  • 深入分析Android系統(tǒng)中SparseArray的源碼

    深入分析Android系統(tǒng)中SparseArray的源碼

    這篇文章主要介紹了深入分析Android系統(tǒng)中SparseArray的源碼,SparseArray為Java實(shí)現(xiàn),需要的朋友可以參考下
    2015-07-07
  • spring boot + quartz集群搭建的完整步驟

    spring boot + quartz集群搭建的完整步驟

    這篇文章主要給大家介紹了關(guān)于spring boot + quartz集群搭建的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2018-05-05
  • 解決mapstruct在eclipse生成不了mapper的實(shí)現(xiàn)類問題

    解決mapstruct在eclipse生成不了mapper的實(shí)現(xiàn)類問題

    這篇文章主要介紹了解決mapstruct在eclipse生成不了mapper的實(shí)現(xiàn)類問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-11-11
  • Maven 項(xiàng)目生成jar運(yùn)行時(shí)提示“沒有主清單屬性”

    Maven 項(xiàng)目生成jar運(yùn)行時(shí)提示“沒有主清單屬性”

    這篇文章主要介紹了Maven 項(xiàng)目生成jar運(yùn)行時(shí)提示“沒有主清單屬性”,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • ExecutorService Callable Future多線程返回結(jié)果原理解析

    ExecutorService Callable Future多線程返回結(jié)果原理解析

    這篇文章主要為大家介紹了ExecutorService Callable Future多線程返回結(jié)果,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-09-09
  • Java編譯錯(cuò)誤信息提示java.lang.ExceptionInInitializer解決

    Java編譯錯(cuò)誤信息提示java.lang.ExceptionInInitializer解決

    這篇文章主要介紹了Java編譯錯(cuò)誤信息提示java.lang.ExceptionInInitializer的分析講解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-07-07
  • Spring實(shí)戰(zhàn)之Bean銷毀之前的行為操作示例

    Spring實(shí)戰(zhàn)之Bean銷毀之前的行為操作示例

    這篇文章主要介紹了Spring實(shí)戰(zhàn)之Bean銷毀之前的行為操作,結(jié)合實(shí)例形式分析了spring在bean銷毀之前的行為相關(guān)設(shè)置與使用技巧,需要的朋友可以參考下
    2019-11-11
  • 對(duì)象轉(zhuǎn)Json字符串時(shí)如何忽略指定屬性

    對(duì)象轉(zhuǎn)Json字符串時(shí)如何忽略指定屬性

    這篇文章主要介紹了對(duì)象轉(zhuǎn)Json字符串時(shí)如何忽略指定屬性,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-08-08

最新評(píng)論