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

MyBatis中的配置文件詳解

 更新時(shí)間:2023年10月25日 15:26:52   作者:啊Q老師  
在?MyBatis?中,配置文件分為?全局配置文件(核心配置文件)和映射配置文件,本文給大家介紹MyBatis中的配置文件相關(guān)知識(shí),感興趣的朋友一起看看吧

前言

在 MyBatis 中,配置文件分為 全局配置文件(核心配置文件)映射配置文件 。通過(guò)這兩個(gè)配置文件,MyBatis 可以根據(jù)需要?jiǎng)討B(tài)地生成 SQL 語(yǔ)句并執(zhí)行,同時(shí)將結(jié)果集轉(zhuǎn)換成 Java 對(duì)象,使得在 Java 程序中操作數(shù)據(jù)庫(kù)變得更加方便和靈活。

全局配置文件

全局配置文件(Core Configuration File),是 MyBatis 的核心配置文件,通常命名為 mybatis-config.xml 。這個(gè)文件包含 MyBatis 運(yùn)行時(shí)所需的核心配置信息,如數(shù)據(jù)庫(kù)連接信息、事務(wù)管理器、別名、映射文件等。

全局配置文件通常的結(jié)構(gòu)

configuration(配置)
properties(屬性)
settings(設(shè)置)
typeAliases(類(lèi)型別名)
typeHandlers(類(lèi)型處理器)
objectFactory(對(duì)象工廠)
plugins(插件)
environments(環(huán)境配置)
– environment(環(huán)境變量)
---- transactionManager(事務(wù)管理器)
---- dataSource(數(shù)據(jù)源)
databaseIdProvider(數(shù)據(jù)庫(kù)廠商標(biāo)識(shí))
mappers(映射器)

常見(jiàn)全局配置標(biāo)簽

標(biāo)簽說(shuō)明
configuration配置文件的根標(biāo)簽。包含其他所有的配置標(biāo)簽
properties設(shè)置外部配置且可動(dòng)態(tài)替換的標(biāo)簽。一般用于讀取外部的 properties 屬性文件
settings配置 MyBatis 運(yùn)行時(shí)行為的標(biāo)簽。一般情況下使用默認(rèn)值即可
typeAliases設(shè)置別名的標(biāo)簽??梢院?jiǎn)化類(lèi)型名稱的書(shū)寫(xiě),如可以用一個(gè)別名代替一個(gè)類(lèi)全名
typeHandlers指定處理 Java 類(lèi)型的 TypeHandler 的標(biāo)簽。通過(guò)配置 typeHandlers,可以在全局范圍內(nèi)注冊(cè)自定義的 TypeHandler,使得在所有的 SQL 語(yǔ)句中都可以使用該 TypeHandler 來(lái)處理特定的 Java 類(lèi)型
objectFactory指定對(duì)象工廠的標(biāo)簽。通過(guò)配置 objectFactory ,可以在全局范圍內(nèi)指定一個(gè)自定義的對(duì)象工廠,用于創(chuàng)建所有映射器文件中需要的對(duì)象實(shí)例
plugins注冊(cè)插件的標(biāo)簽。通過(guò)配置 plugins ,可以在全局范圍內(nèi)注冊(cè)自定義的插件,使得插件可以攔截目標(biāo)方法,并在目標(biāo)方法執(zhí)行前后添加額外的邏輯,如日志記錄、權(quán)限校驗(yàn)、緩存控制等
environments配置環(huán)境的標(biāo)簽。如開(kāi)發(fā)環(huán)境、測(cè)試環(huán)境和生產(chǎn)環(huán)境等。每個(gè)環(huán)境(environment)可以設(shè)置一個(gè)事務(wù)管理器(Transaction Manager)和一個(gè)數(shù)據(jù)源(DataSource)
databaseIdProvider指定數(shù)據(jù)庫(kù)標(biāo)識(shí)提供者的標(biāo)簽。MyBatis 可以根據(jù)不同的數(shù)據(jù)庫(kù)廠商執(zhí)行不同的 SQL 語(yǔ)句
mappers指定映射文件路徑的標(biāo)簽。MyBatis 會(huì)加載這些文件并將其應(yīng)用于相應(yīng)的數(shù)據(jù)庫(kù)操作

settings 標(biāo)簽中的屬性

屬性說(shuō)明
cacheEnabled默認(rèn)值為 true ,全局開(kāi)關(guān)所有映射器配置文件中已配置的任何緩存
lazyLoadingEnabled默認(rèn)值為 false ,延遲加載的全局開(kāi)關(guān)。當(dāng)開(kāi)啟時(shí),所有關(guān)聯(lián)對(duì)象都會(huì)延遲加載。特定關(guān)聯(lián)關(guān)系中可通過(guò)設(shè)置 fetchType 屬性來(lái)覆蓋該項(xiàng)的開(kāi)關(guān)狀態(tài)
aggressiveLazyLoading默認(rèn)值為 false ,當(dāng)開(kāi)啟時(shí),任何方法的調(diào)用都會(huì)加載該對(duì)象的所有延遲加載屬性。反之,每個(gè)延遲加載屬性將會(huì)按需加載
multipleResultSetsEnabled默認(rèn)值為 true ,是否允許單個(gè)語(yǔ)句返回多結(jié)果集(需要數(shù)據(jù)庫(kù)驅(qū)動(dòng)支持)
useColumnLabel默認(rèn)值為 true ,使用列標(biāo)簽代替列名。實(shí)際表現(xiàn)依賴于數(shù)據(jù)庫(kù)驅(qū)動(dòng),具體可參考數(shù)據(jù)庫(kù)驅(qū)動(dòng)的相關(guān)文檔
useGeneratedKeys默認(rèn)值為 false ,允許 JDBC 支持自動(dòng)生成主鍵,需要數(shù)據(jù)庫(kù)驅(qū)動(dòng)支持。如果設(shè)置為 true,將強(qiáng)制使用自動(dòng)生成主鍵。盡管一些數(shù)據(jù)庫(kù)驅(qū)動(dòng)不支持此特性,但仍可正常工作(如 Derby)
autoMappingBehavior默認(rèn)值為 PARTIAL ,指定 MyBatis 應(yīng)如何自動(dòng)映射列到字段或?qū)傩?。NONE 表示關(guān)閉自動(dòng)映射;PARTIAL 表示只會(huì)自動(dòng)映射沒(méi)有定義嵌套結(jié)果映射的字段;FULL 表示會(huì)自動(dòng)映射任何復(fù)雜的結(jié)果集(無(wú)論是否嵌套)
autoMappingUnknownColumnBehavior默認(rèn)值為 none(不處理),指定發(fā)現(xiàn)自動(dòng)映射目標(biāo)未知列(或未知屬性類(lèi)型)的行為
defaultExecutorType默認(rèn)值為 simple ,配置默認(rèn)的執(zhí)行器。SIMPLE 是普通執(zhí)行器;REUSE 執(zhí)行器會(huì)重用預(yù)處理語(yǔ)句(PreparedStatement); BATCH 執(zhí)行器不僅重用語(yǔ)句還會(huì)執(zhí)行批量更新
defaultStatementTimeout默認(rèn)值為 null ,設(shè)置超時(shí)時(shí)間,它決定數(shù)據(jù)庫(kù)驅(qū)動(dòng)等待數(shù)據(jù)庫(kù)響應(yīng)的秒數(shù)
defaultFetchSize默認(rèn)值為 null ,為驅(qū)動(dòng)的結(jié)果集獲取數(shù)量(fetchSize)設(shè)置一個(gè)建議值。此參數(shù)只可以在查詢?cè)O(shè)置中被覆蓋
defaultResultSetType默認(rèn)值為 null ,指定語(yǔ)句默認(rèn)的滾動(dòng)策略
safeRowBoundsEnabled默認(rèn)值為 false ,是否允許在嵌套語(yǔ)句中使用分頁(yè)(RowBounds)。如果允許使用設(shè)置為 false
safeResultHandlerEnabled默認(rèn)值為 true ,是否允許在嵌套語(yǔ)句中使用結(jié)果處理器(ResultHandler)。如果允許使用設(shè)置為 false
mapUnderscoreToCamelCase默認(rèn)值為 false ,是否開(kāi)啟駝峰命名自動(dòng)映射,即從經(jīng)典數(shù)據(jù)庫(kù)列名 A_COLUMN 映射到經(jīng)典 Java 屬性名 aColumn
localCacheScope默認(rèn)值為 SESSION,會(huì)緩存一個(gè)會(huì)話中執(zhí)行的所有查詢。 若設(shè)置值為 STATEMENT ,本地緩存將僅用于執(zhí)行語(yǔ)句,對(duì)相同 SqlSession 的不同查詢將不會(huì)進(jìn)行緩存。MyBatis 利用本地緩存機(jī)制(Local Cache)防止循環(huán)引用和加速重復(fù)的嵌套查詢
jdbcTypeForNull當(dāng)沒(méi)有為參數(shù)指定特定的 JDBC 類(lèi)型時(shí),空值的默認(rèn) JDBC 類(lèi)型。 某些數(shù)據(jù)庫(kù)驅(qū)動(dòng)需要指定列的 JDBC 類(lèi)型,多數(shù)情況直接用一般類(lèi)型即可,如 NULL、VARCHAR 或 OTHER
lazyLoadTriggerMethods指定對(duì)象的哪些方法觸發(fā)一次延遲加載
defaultScriptingLanguage指定動(dòng)態(tài) SQL 生成使用的默認(rèn)腳本語(yǔ)言
defaultEnumTypeHandler指定 Enum 使用的默認(rèn) TypeHandler
callSettersOnNulls默認(rèn)值為 false ,指定當(dāng)結(jié)果集中值為 null 時(shí),是否調(diào)用映射對(duì)象的 setter(map 對(duì)象時(shí)為 put)方法,這依賴于 Map.keySet() 或 null 值進(jìn)行初始化時(shí)比較有用。注意基本類(lèi)型(int、boolean 等)是不能設(shè)置成 null 的
returnInstanceForEmptyRow默認(rèn)值為 false ,當(dāng)返回行的所有列都是空時(shí),MyBatis 默認(rèn)返回 null 。 當(dāng)開(kāi)啟這個(gè)設(shè)置時(shí),MyBatis會(huì)返回一個(gè)空實(shí)例。 注意:它也適用于嵌套的結(jié)果集(如集合或關(guān)聯(lián))
logPrefix指定 MyBatis 增加到日志名稱的前綴
logImpl指定 MyBatis 所用日志的具體實(shí)現(xiàn),未指定時(shí)將自動(dòng)查找
proxyFactory指定 Mybatis 創(chuàng)建可延遲加載對(duì)象所用到的代理工具
vfsImpl指定 VFS 的實(shí)現(xiàn)
useActualParamName默認(rèn)值為 true ,允許使用方法簽名中的名稱作為語(yǔ)句參數(shù)名稱。 為了使用該特性,項(xiàng)目中必須采用 Java 8 編譯并加上 -parameters 選項(xiàng)
configurationFactory指定一個(gè)提供 Configuration 實(shí)例的類(lèi)。 這個(gè)被返回的 Configuration 實(shí)例用來(lái)加載被反序列化對(duì)象的延遲加載屬性值。 這個(gè)類(lèi)必須包含一個(gè)簽名為 static Configuration getConfiguration() 的方法
shrinkWhitespacesInSql默認(rèn)值為 false ,從 SQL 中刪除多余的空格字符。注意:這也會(huì)影響 SQL 中的文字字符串
defaultSqlProviderType指定一個(gè)擁有 provider 方法的 sql provider 類(lèi) 。 這個(gè)類(lèi)適用于指定 sql provider 注解上的 type(或 value) 屬性(當(dāng)這些屬性在注解中被忽略時(shí)),如 @SelectProvider
nullableOnForEach默認(rèn)值為 false ,為 foreach 標(biāo)簽的 nullable 屬性指定默認(rèn)值
argNameBasedConstructorAutoMapping默認(rèn)值為 false ,當(dāng)應(yīng)用構(gòu)造器自動(dòng)映射時(shí),參數(shù)名稱被用來(lái)搜索要映射的列,而不再依賴列的順序

簡(jiǎn)單示例:
在Java持久層框架:MyBatis介紹文章的案例基礎(chǔ)上

1.typeAliases 標(biāo)簽:設(shè)置別名的標(biāo)簽??梢院?jiǎn)化類(lèi)型名稱的書(shū)寫(xiě),如可以用一個(gè)別名代替一個(gè)類(lèi)全名

首先,在 mybatis.xml 配置文件中配置以下內(nèi)容

<!-- typeAliases:設(shè)置別名,簡(jiǎn)化類(lèi)型名稱的書(shū)寫(xiě)。用一個(gè)別名代替一個(gè)類(lèi)全名 -->
<typeAliases>
    <!-- 即 user 名稱可以替代 cn.edu.MyBatisDemo.model.User 類(lèi)全名 -->

    <!-- 設(shè)置單個(gè)別名的方式 -->
    <!-- <typeAlias type="cn.edu.MyBatisDemo.model.User" alias="user" /> -->

    <!-- 設(shè)置多個(gè)別名的方式,別名默認(rèn)為類(lèi)名(首字母為小寫(xiě)) -->
    <!-- 可以使用 @Alias() 注解在實(shí)體類(lèi)的上方設(shè)置自定義的別名 -->
    <package name="cn.edu.MyBatisDemo.model" />
</typeAliases>

接著,在其他配置文件(如 UserMapper.xml )中使用到 cn.edu.MyBatisDemo.model.User 的類(lèi)全名都可以寫(xiě)成 user 名稱

最后,測(cè)試結(jié)果
結(jié)果如圖:

2.mappers 標(biāo)簽:指定映射文件路徑的標(biāo)簽。MyBatis 會(huì)加載這些文件并將其應(yīng)用于相應(yīng)的數(shù)據(jù)庫(kù)操作

首先,在 mybatis.xml 配置文件中配置以下內(nèi)容

<!-- POJO對(duì)象與數(shù)據(jù)表的映射配置 -->
<mappers>
    <!-- 1.類(lèi)路徑 -->
    <!-- <mapper resource="cn/edu/MyBatisDemo/model/UserMapper.xml" /> -->

    <!-- 2.包全名(注:映射文件與接口必須在同一個(gè)包和相同的文件名)-->
    <package name="cn.edu.MyBatisDemo.mapper" />
</mappers>

接著,查看映射文件與接口是否在同一個(gè)包里和相同的文件名

最后,測(cè)試結(jié)果
結(jié)果如圖:

映射配置文件

映射配置文件(Mapping Configuration File),用于定義 SQL 語(yǔ)句和結(jié)果集的映射關(guān)系。每個(gè)映射配置文件都對(duì)應(yīng)于數(shù)據(jù)庫(kù)中的一個(gè)表或一個(gè)存儲(chǔ)過(guò)程。映射配置文件通常會(huì)以 .xml 格式保存,并且命名方式通常是 [實(shí)體名] Map.xml 或者 [表名] Map.xml 。

常見(jiàn)映射配置標(biāo)簽

標(biāo)簽說(shuō)明
mapper映射文件的根元素,包含了其他的映射定義
cache開(kāi)啟緩存以及配置屬性來(lái)定制緩存的行為
cache-ref引用另一個(gè)命名空間的緩存配置,允許在多個(gè)命名空間之間共享緩存配置
resultMap定義一個(gè)結(jié)果集的映射關(guān)系,用于將數(shù)據(jù)庫(kù)中的結(jié)果集轉(zhuǎn)換成 Java 對(duì)象
select定義一個(gè) SQL 查詢語(yǔ)句,用于從數(shù)據(jù)庫(kù)中獲取數(shù)據(jù)
insert定義一個(gè) SQL 插入語(yǔ)句,用于向數(shù)據(jù)庫(kù)中插入數(shù)據(jù)
update定義一個(gè) SQL 更新語(yǔ)句,用于更新數(shù)據(jù)庫(kù)中的數(shù)據(jù)
delete定義一個(gè) SQL 刪除語(yǔ)句,用于從數(shù)據(jù)庫(kù)中刪除數(shù)據(jù)

簡(jiǎn)單示例:
在上面的案例基礎(chǔ)上,再實(shí)現(xiàn)用戶的增刪改功能

首先,在接口 UserMapper 上聲明增刪改的方法

public void insert(User user); // 新增用戶
public void update(User user); // 修改用戶信息
public void delete(int id); // 刪除指定用戶

接著,在 UserMapper.xml 映射文件中添加對(duì)應(yīng)的標(biāo)簽來(lái)實(shí)現(xiàn)

<!-- 通過(guò) useGeneratedKeys 和 keyProperty 屬性獲取 MySQL 自增的主鍵 id 值 -->
<!-- useGeneratedKeys:開(kāi)啟添加記錄后返回其 id 值 -->
<!-- keyProperty:設(shè)置返回的值放到對(duì)象指定的屬性值上 -->
<insert id="insert" useGeneratedKeys="true" keyProperty="id">
    INSERT INTO `user` (`name`,`password`,`date`,`state`) VALUES (#{name},#{password},#{date},#{state})
</insert>

<update id="update" >
    UPDATE `user` SET `name`=#{name},`password`=#{password},`date`=#{date},`state`=#{state} WHERE `id`=#{id}
</update>

<delete id="delete" >
    DELETE FROM `user` WHERE `id`=#{id}
</delete>

最后,測(cè)試結(jié)果

package cn.edu.MyBatisDemo.test;
import cn.edu.MyBatisDemo.mapper.UserMapper;
import cn.edu.MyBatisDemo.model.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.Date;
public class MyBatisTest {
    @Test
    public void test() throws IOException {
        //1.根據(jù)配置文件創(chuàng)建數(shù)據(jù)庫(kù)連接會(huì)話的工廠類(lèi)
        InputStream inputStream = Resources.getResourceAsStream("mybatis.xml");
        //獲取工廠類(lèi)
        SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
        //2.通過(guò)工廠類(lèi)獲取數(shù)據(jù)庫(kù)連接的會(huì)話
        SqlSession sqlSession = sqlSessionFactory.openSession();
        //3.通過(guò) sqlSession 操作數(shù)據(jù)庫(kù)
        try {
            UserMapper userMapper = sqlSession.getMapper(UserMapper.class);
            //新增用戶信息
            User insertUser = new User("諸葛亮","ccc",new Date(),1); // 在實(shí)體類(lèi)中添加對(duì)應(yīng)的參數(shù)構(gòu)造方法
            userMapper.insert(insertUser);
            //獲取新增用戶的 id 值
            int id = insertUser.getId();
            //查看指定用戶
            User selectUser = userMapper.selectUserById(id);
            System.out.println(selectUser);
            /**
             *  //修改指定用戶
             *  User updateUser = new User("曹操","ccc",new Date(),1);
             *  updateUser.setId(20230815);
             *  userMapper.update(updateUser);
             *
             *  //刪除指定用戶
             *  userMapper.delete(20230815);
             */
            sqlSession.commit();
        } finally {
            sqlSession.close();
        }
    }
}
結(jié)

結(jié)果如圖:

參數(shù)數(shù)量
在案例的 selectUserById 方法中,只傳遞一個(gè) id 值作為參數(shù)(單個(gè)參數(shù)),在 UserMapper.xml 映射文件中通過(guò) #{id} 來(lái)接收。通常情況下,使用相同名字輸入在 #{} 內(nèi),也可以使用任意字符串輸入在 #{} 內(nèi)。

但是,在多個(gè)參數(shù)的情況下,MyBatis 會(huì)把參數(shù)封裝成 Map 對(duì)象,#{} 內(nèi)將從 Map 對(duì)象中獲取對(duì)應(yīng)值,其獲取方式分為三種:

書(shū)寫(xiě)格式1:參數(shù)1—param1,參數(shù)2—param2 …

書(shū)寫(xiě)格式2:參數(shù)1—arg0,參數(shù)2—arg1 …

書(shū)寫(xiě)格式3:在接口方法的參數(shù)上使用 @Param() 注解指定名字

另外,也可以將多個(gè)參數(shù)封裝成 POJO 對(duì)象,通過(guò) #{ POJO 對(duì)象屬性} 形式獲取傳遞的值

參數(shù)類(lèi)型
當(dāng)接口方法上的參數(shù)類(lèi)型集合數(shù)組時(shí),同樣 MyBatis 也是將參數(shù)封裝成 Map 對(duì)象,然后分別通過(guò) #{collection}#{array} 方式獲取參數(shù)值。另外,List 集合可以通過(guò) #{list} 方式獲取。
書(shū)寫(xiě)格式1:參數(shù)1—#{collection[0]},參數(shù)2—#{collection[1]} …
書(shū)寫(xiě)格式2:參數(shù)1—#{array[0]},參數(shù)2—#{array[1]} …
書(shū)寫(xiě)格式3:參數(shù)1—#{list[0]},參數(shù)2—#{list[1]} …

參數(shù)符號(hào)
在映射文件中,獲取參數(shù)所使用的參數(shù)符號(hào)分為兩種:#{}${} 。
#{}:PreparedStatement 對(duì)象來(lái)執(zhí)行的 SQL 語(yǔ)句(預(yù)編譯,基本情況下使用該參數(shù)符號(hào))
${}:Statement 對(duì)象來(lái)執(zhí)行的 SQL 語(yǔ)句 (拼接成 SQL 語(yǔ)句,存在注入攻擊風(fēng)險(xiǎn)。一般用于傳入數(shù)據(jù)庫(kù)對(duì)象,如表名、order by 排序字段)

select 標(biāo)簽屬性
resultType 屬性
1.當(dāng)返回結(jié)果為 List 集合類(lèi)型時(shí),resultType 屬性值為類(lèi)全名或設(shè)置的別名

2.當(dāng)返回結(jié)果為 Map 集合類(lèi)型時(shí),resultType 屬性值為已設(shè)定的別名 map

resultMap 屬性
1.自定義數(shù)據(jù)庫(kù)字段與對(duì)象屬性的對(duì)應(yīng)名字

2.實(shí)現(xiàn)關(guān)聯(lián)查詢

到此這篇關(guān)于MyBatis:配置文件的文章就介紹到這了,更多相關(guān)MyBatis配置文件內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • java創(chuàng)建子類(lèi)對(duì)象設(shè)置并調(diào)用父類(lèi)的變量操作

    java創(chuàng)建子類(lèi)對(duì)象設(shè)置并調(diào)用父類(lèi)的變量操作

    這篇文章主要介紹了java創(chuàng)建子類(lèi)對(duì)象設(shè)置并調(diào)用父類(lèi)的變量操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2021-01-01
  • Java中的ThreadLocal功能演示示例

    Java中的ThreadLocal功能演示示例

    這篇文章主要介紹了Java中的ThreadLocal功能演示示例,幫助大家更好的理解和使用Java,感興趣的朋友可以了解下
    2021-02-02
  • Java多線程中Lock的使用小結(jié)

    Java多線程中Lock的使用小結(jié)

    jdk1.5 以后,提供了各種鎖,本文主要介紹了Java多線程中Lock的使用小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-04-04
  • Java判斷是否為閏年的方法示例

    Java判斷是否為閏年的方法示例

    這篇文章主要介紹了Java判斷是否為閏年的方法示例,本文直接給出示例代碼,并講解了判斷原理,需要的朋友可以參考下
    2015-06-06
  • Springboot+MDC+traceId日志中打印唯一traceId

    Springboot+MDC+traceId日志中打印唯一traceId

    本文主要介紹了Springboot+MDC+traceId日志中打印唯一traceId,文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2021-10-10
  • 一篇文章帶你了解JAVA面對(duì)對(duì)象之繼承與修飾符

    一篇文章帶你了解JAVA面對(duì)對(duì)象之繼承與修飾符

    這篇文章主要介紹了Java面向?qū)ο缶幊讨?lèi)的繼承,結(jié)合實(shí)例形式較為詳細(xì)的分析了Java面向?qū)ο缶幊填?lèi)的概念、功能、使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2021-08-08
  • SpringBoot整合Ureport2報(bào)表及常見(jiàn)使用方法

    SpringBoot整合Ureport2報(bào)表及常見(jiàn)使用方法

    這篇文章主要介紹了SpringBoot整合Ureport2報(bào)表及常見(jiàn)使用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2021-01-01
  • 如何使用SpringBoot集成Kafka實(shí)現(xiàn)用戶數(shù)據(jù)變更后發(fā)送消息

    如何使用SpringBoot集成Kafka實(shí)現(xiàn)用戶數(shù)據(jù)變更后發(fā)送消息

    Spring Boot集成Kafka實(shí)現(xiàn)用戶數(shù)據(jù)變更后,向其他廠商發(fā)送消息,我們需要考慮配置Kafka連接、創(chuàng)建Kafka Producer發(fā)送消息、監(jiān)聽(tīng)用戶數(shù)據(jù)變更事件,并將事件轉(zhuǎn)發(fā)到Kafka,本文分步驟給大家講解使用SpringBoot集成Kafka實(shí)現(xiàn)用戶數(shù)據(jù)變更后發(fā)送消息,感興趣的朋友一起看看吧
    2024-07-07
  • 深入理解spring boot異步調(diào)用方式@Async

    深入理解spring boot異步調(diào)用方式@Async

    Spring為任務(wù)調(diào)度與異步方法執(zhí)行提供了注解支持。通過(guò)在方法上設(shè)置@Async注解,可使得方法被異步調(diào)用。下面這篇文章主要給大家介紹了關(guān)于spring boot異步調(diào)用方式@Async的相關(guān)資料,需要的朋友可以參考下。
    2017-07-07
  • 詳解SpringMVC 自動(dòng)封裝枚舉類(lèi)的方法

    詳解SpringMVC 自動(dòng)封裝枚舉類(lèi)的方法

    springmvc默認(rèn)無(wú)法自動(dòng)封裝枚舉類(lèi),本篇文章主要介紹了詳解SpringMVC 自動(dòng)封裝枚舉類(lèi)的方法,有興趣的可以了解一下。
    2017-04-04

最新評(píng)論