導航:首頁 > 文件教程 > 配置文件解析修改器

配置文件解析修改器

發布時間:2023-01-10 06:53:50

⑴ 我下載了凱立德GPS導航,但是我用時沒有衛星無法定位,現在我想用凱立德配置修改器解決,怎麼操作

下載埠、速率檢測軟體,測試出你的導航的實際埠,然後再下載一個配置文件修改器,修改你地圖的配置文件NaviConfig.dll埠和速率即可

⑵ MyBatis解析

從命名上可以看出,這個是一個 Builder 模式的,用於創建 SqlSessionFactory 的類。SqlSessionFactoryBuilder 根據配置來構造 SqlSessionFactory。其中配置方式有兩種:

mybatis-config.xml 就是我們的配置文件:

java Config 相比較 XML 文件的方式而言,會有一些限制。比如修改了配置文件需要重新編譯,註解方式沒有 XML 配置項多等。所以,業界大多數情況下是選擇 XML 文件的方式。但到底選擇哪種方式,這個要取決與自己團隊的需要。比如,項目的 SQL 語句不復雜,也不需要一些高級的 SQL 特性,那麼 Java Config 則會更加簡潔一點;反之,則可以選擇 XML 文件的方式。

創建配置文件解析器XMLConfigBuilder

解析mybatis-config.xml里的配置為Configuration對象,Mybatis的全局配置對象。

XMLConfigBuilder#parseConfiguration解析mapper下的xml
XMLMapperBuilder#bindMapperForNamespace,根據xml里的 namespace 反射出 mapper介面 的 class,如果有mapper介面,則把該mapper介面的class添加到Configuration的mapperRegistry里。

如果該介面已經注冊,則拋出已經綁定的異常。
為該介面注冊MapperProxyFactory,但這里只是注冊其創建MapperProxy的工廠,並不是創建MapperProxy。
如果Mapper對應的xml資源未載入,觸發xml的綁定操作,將xml中的sql語句與Mapper建立關系。
addMapper方法,只是為**Mapper創建對應對應的MapperProxyFactory。

根據Mapper介面與SqlSession創建MapperProxy對象。
根據介面類獲取MapperProxyFactory。
調用MapperProxyFactory的newInstance創建MapperProxy對象。

SqlSessionFactory 顧名思義,是用於生產 SqlSession 的工廠。 通過如下的方式來獲取 SqlSession 實例:

SqlSession 包含了執行 SQL 的所有的方法。以下是示例:

當然,下面的方式可以做到類型安全:

MapperProxy是MapperProxyFactory使用SqlSession創建出來的。所以MapperProxy中包含SqlSession。

可以看到MapperProxy調用invoke方法,進而調用MapperMethod的execute(),這些MapperMethod就是和你要執行的命令相關,比如執行select語句,則會通過SqlSession的select()方法,最終調用到Executor的query方法。Executor會再協調另外三個核心組件。

MapperProxy:

MapperMethod:

插件的構建:
談原理首先要知道StatementHandler,ParameterHandler,Result Handler都是代理,他們是Configuration創建,在創建過程中會調用interceptorChain.pluginAll()方法,為四大組件組裝插件(再底層是通過Plugin.wrap(target,XX, new Plugin( interceptor))來來創建的)。

插件鏈是何時構建的:
在執行SqlSession的query或者update方法時,SqlSession會通過Configuration創建Executor代理,在創建過程中就調用interceptor的pluginAll方法組裝插件。然後executor在調用doQuery()方法的時候,也會調用Configuration的newStatementHandler方法創建StatemenHandler(和上面描述的一樣,這個handler就是個代理,也是通過interceptorChain的pluginAll方法構建插件)

插件如何執行:
以statementhandler的prepare方法的插件為例,正如前面所說,statementhandler是一個proxy,執行他的prepare方法,將調用invokeHandler的invoke方法,而invokeHandler就是Plugin.wrap(target, xxx, new Plugin(interceptor))中的第三個參數,所以很自然invokeHanlder的invoke的方法最終就會調用interceptor對象的intercept方法。

Mybatis的插件配置在configuration內部,初始化時,會讀取這些插件,保存於Configuration對象的InterceptorChain中。

org.apache.ibatis.plugin.InterceptorChain.java源碼。

上面的for循環代表了只要是插件,都會以責任鏈的方式逐一執行,所謂插件,其實就類似於攔截器。

插件的編寫
插件必須實現org.apache.ibatis.plugin.Interceptor介面。

-intercept()方法:執行攔截內容的地方,攔截目標對象的目標方法的執行
-plugin()方法:決定是否觸發intercept()方法。 作用:包裝目標對象,包裝就是為目標對象創建一個代理對象
-setProperties()方法:給自定義的攔截器傳遞xml配置的屬性參數。將插件注冊時的property屬性設置進來

下面自定義一個攔截器:

為什麼要寫Annotation註解?註解都是什麼含義?
Mybatis規定插件必須編寫Annotation註解,是必須,而不是可選。@Intercepts註解:裝載一個@Signature列表,一個@Signature其實就是一個需要攔截的方法封裝。那麼,一個攔截器要攔截多個方法,自然就是一個@Signature列表。

type = Executor.class, method = "query", args = { MappedStatement.class, Object.class, RowBounds.class, ResultHandler.class }
解釋:要攔截Executor介面內的query()方法,參數類型為args列表。

Plugin.wrap(target, this)是干什麼的?
使用JDK的動態代理,給target對象創建一個delegate代理對象,以此來實現方法攔截和增強功能,它會回調intercept()方法。

Mybatis可以攔截哪些介面對象?
Mybatis只能攔截ParameterHandler、ResultSetHandler、StatementHandler、Executor共4個介面對象內的方法。

重新審視interceptorChain.pluginAll()方法:該方法在創建上述4個介面對象時調用,其含義為給這些介面對象注冊攔截器功能,注意是注冊,而不是執行攔截。

攔截器執行時機:plugin()方法注冊攔截器後,那麼,在執行上述4個介面對象內的具體方法時,就會自動觸發攔截器的執行,也就是插件的執行。

Invocation

可以通過invocation來獲取攔截的目標方法,以及執行目標方法。

分頁插件原理
由於Mybatis採用的是邏輯分頁,而非物理分頁,那麼,市場上就出現了可以實現物理分頁的Mybatis的分頁插件。 要實現物理分頁,就需要對String sql進行攔截並增強,Mybatis通過BoundSql對象存儲String sql,而BoundSql則由StatementHandler對象獲取。

因此,就需要編寫一個針對StatementHandler的query方法攔截器,然後獲取到sql,對sql進行重寫增強。

⑶ 正在解析配置文件................................... 失敗! [ 10:48:27 ] 解析配置文件出錯!

越獄有風險;如果沒有什麼特殊要求和喜好的話不推薦冒著中毒、奔潰、和失去保修還有錯誤不斷的惱人狀況去嘗試。畢竟世上沒有後悔葯。

⑷ 凱立德配置文件修改器怎麼改c2020

凱立德修改器:http://www.ucbug.com/soft/66854.html

⑸ 如何查看凱立德車載導航的埠和波特率

下載埠自動識別工具,解壓後復制到內存卡插到導航即可查詢機器的埠和波特率

⑹ 3dsmax配置修改器配置文件是哪個

在max安裝目錄下的ui文件夾有你想要的自定義項目.你可以在重新安裝max之前,將其備份.在安裝之後再覆蓋導入就行了.

⑺ 解析完域名之後怎麼修改伺服器上配置文件

還要到空間的控制面板中將域名和空間綁定。域名和主機兩方面都要設置,一個設置解析,一個設置綁定。

⑻ 批處理 修改配置文件

@echo off
setlocal enabledelayedexpansion
:again
cls
echo --------------------------------------------------------
echo 配置文件修改器
echo.
echo.
echo 使用方法如下:
echo.
echo 輸入s:顯示配置信息
echo.
echo 輸入c:改變配置信息
echo.
echo 輸入q:退出程序
echo --------------------------------------------------------
set /p in=選擇:
if "%in%"=="s" call :show && goto :again
if "%in%"=="c" call :change && goto :again
if "%in%"=="q" goto :eof
echo 請輸入正確的字元 && pause && goto :again

:show
for /f "skip=1 tokens=2 delims=( " %%i in (js.js) do (
set string=%%i
echo !string:~1,-3! && echo. && pause && goto :eof
)

:change
set num=1
set /p str=請輸入修改的內容
for /f "delims=" %%i in (js.js) do (
if !num! EQU 2 ( echo document.writeln^("%str%"^);>> 1t.txt ) else (

echo %%i>>1t.txt )
set /A num=num+1
)
del js.js
ren 1t.txt js.js
goto :eof
保存為1.bat 和js.js文件放在一個目錄下

閱讀全文

與配置文件解析修改器相關的資料

熱點內容
word公司 瀏覽:710
淘寶店數據包怎麼上傳 瀏覽:341
pbt文件 瀏覽:204
HX基礎編程怎麼改變字體 瀏覽:876
怎麼開網路教學 瀏覽:915
630升級工程武器 瀏覽:936
用換機助手接收的軟體文件在哪找 瀏覽:282
閱達app一教一輔五年級有哪些 瀏覽:7
win10系統用f2調節音量 瀏覽:19
壓縮文件密碼器 瀏覽:840
線下活動數據分析有哪些 瀏覽:314
助聽器插片式編程線如何連接 瀏覽:293
怎麼刪除系統休眠文件 瀏覽:914
搜索文件內容中包含的文字並替換 瀏覽:542
微信相冊程序圖標 瀏覽:714
win8怎麼顯示文件格式 瀏覽:547
文件伺服器中毒 瀏覽:721
如何修改網站訪問次數 瀏覽:518
mdfldf是什麼文件 瀏覽:569
文件在桌面怎麼刪除干凈 瀏覽:439

友情鏈接