第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Spring Boot 和 Logback 中不同 Classloader 加載的類

Spring Boot 和 Logback 中不同 Classloader 加載的類

牧羊人nacy 2023-07-19 14:56:02
我遇到了一個我想理解的奇怪問題。如果有人有一個解決方案,那就太好了,但我實際上正在尋找理解為什么會發(fā)生這種情況:我編寫了一個自定義 Logback 布局。我正在擴(kuò)展ch.qos.logback.contrib.json.classic.JsonLayout和覆蓋addCustomDataToJsonMap。如果在日志記錄事件參數(shù)列表中找到某種類型的參數(shù),我想添加其他屬性:  protected void addCustomDataToJsonMap(Map<String, Object> map, ILoggingEvent event) {    if (event.getArgumentArray() == null) {      return;    }    for (Object argument : event.getArgumentArray()) {      System.out.println(argument.getClass().getClassLoader()); // 1      System.out.println(JsonAttribute.class.getClassLoader()); // 2但是參數(shù)列表 (1) 中的對象的類和靜態(tài)引用的對象的類 (2) 由不同的類加載器加載,如輸出所示:org.springframework.boot.devtools.restart.classloader.RestartClassLoader@618157b2sun.misc.Launcher$AppClassLoader@18b4aac2因此,我無法將對象轉(zhuǎn)換為所需的類型并訪問其方法。我想到的解決方法是通過Reflecion 訪問這些值,但我寧愿使用實際值。我想這只是我的開發(fā)環(huán)境的問題,但正如第一部分所述,我真的很想了解發(fā)生了什么。編輯:正如預(yù)期的那樣:當(dāng)在沒有 spring 開發(fā)工具的情況下以“生產(chǎn)”模式運(yùn)行應(yīng)用程序時,所有類都由同一個類加載器加載。
查看完整描述

1 回答

?
九州編程

TA貢獻(xiàn)1785條經(jīng)驗 獲得超4個贊

我假設(shè)您正在使用 Spring DevTools。他們創(chuàng)建一個單獨(dú)的類加載器以更快地重新啟動應(yīng)用程序。該類加載器應(yīng)該加載您的類,并在重新啟動時被丟棄,而不是重新啟動整個應(yīng)用程序。

您應(yīng)該能夠?qū)⑵渑渲脼榕懦远x Logback 布局,以便在應(yīng)用程序重新啟動時不會重新加載它(鏈接文檔中的第 20.2.6 節(jié))。


查看完整回答
反對 回復(fù) 2023-07-19
  • 1 回答
  • 0 關(guān)注
  • 121 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號