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

java打印日志的幾種方式總結(jié)

 更新時間:2023年11月13日 10:45:28   作者:丶一派胡言丶  
這篇文章主要介紹了java打印日志的幾種方式,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教

一、簡單介紹五種

  • 最簡單的方式,就是system.println.out(error) ,這樣直接在控制臺打印消息了;
  • Java.util.logging ; 在JDK 1.4 版本之后,提供了日志的API ,可以往文件中寫日志了;
  • log4j , 最強大的記錄日志的方式。 可以通過配置 .properties 或是 .xml 的文件, 配置日志的目的地,格式等等;
  • commons-logging, 最綜合和常見的日志記錄方式, 經(jīng)常是和log4j 結(jié)合起來使用;
  • logback是java的日志開源組件,是log4j創(chuàng)始人寫的,性能比log4j要好;

二、java.util.logging

1、簡介

Java 中的 Logging API 讓 Java 應用可以記錄不同級別的信息,Java 為此定時了8個級別,它們是分別SEVERE, WARNING, INFO, CONFIG, FINE, FINER, FINEST 以及 ALL.

它們按照優(yōu)先級降序排列,在應用運行的任何時間點,日志級別可以被更改。

2、重要類說明

  • Logger 對外發(fā)布的日志記錄器,應用系統(tǒng)可以通過該對象完成日志記錄的功能
  • Level 日志的記錄級別
  • LoggingMXBean 接口對象,對外發(fā)布的日志管理器
  • LogRecord 日志信息描述對象
  • LoggerManager 日志管理器
  • Filter 日志過濾器,接口對象,在日志被 Handler 處理之前,起過濾作用
  • Handler 日志處理器,接口對象,決定日志的輸出方式
  • Formatter 日志格式化轉(zhuǎn)換器,接口對象,決定日志的輸出格式

3、Filter

  • 作為一個接口, Filter:為所記錄的日志提供日志級別控制以外的細粒度控制。

4、Handler

  • Handler負責從Logger中取出日志消息并將消息發(fā)送出去,比如發(fā)送到控制臺、文件、網(wǎng)絡上的其他日志服務或操作系統(tǒng)日志等。
  • Handler也具有級別概念,用于判斷當前Logger中的消息是否應該被發(fā)送出去,可以使用定義好的各種日志級別(如Level.OFF表示關(guān)閉等)。
  • 除了級別概念,一個Handler還可以具有自己的過濾器(Filter)、格式化器(Formatter)、錯誤管理器(ErrorManager)以及編碼字符集等,這些屬性借助LogManager中的配置信息進行設置。
  • Handler是一個抽象類,需要根據(jù)實際情況創(chuàng)建真正使用的具體Handler(如ConsoleHandler、FileHandler等),實現(xiàn)各自的publish、flush以及close等方法。

在這里插入圖片描述

Handler 實現(xiàn)類說明

  • MemoryHandler,將當前日志信息寫入內(nèi)存緩沖區(qū)中同時丟棄緩存中以前的內(nèi)容。將內(nèi)存緩沖區(qū)中的信息轉(zhuǎn)發(fā)至另一個Handler
  • StreamHandler所有基于I/O流的Handler的基類,將日志信息發(fā)送至給定的java.io.OutputStream中
  • ConsoleHandler,將消息發(fā)送至System.err(而非System.out),默認配置與其父類StreamHandler相同。
  • FileHandler,將消息發(fā)送至單個一般文件或一個可回滾的文件集合??苫貪L文件集中的文件依據(jù)文件大小進行回滾,久文件名稱通過當前文件名附加編號0、1、2等方式依次進行標示。默認情況下日志信息都存放在
  • I/O緩沖中,但如果一條完整的日志信息會觸發(fā)清空緩沖的動作。與其父類StramHandler不同的是,F(xiàn)ileHandler的默認格式器是java.util.logging.XMLFormatter:
  • SocketHandler,負責將日志信息發(fā)送至網(wǎng)絡,默認情況下也采用java.util.logging.XMLFormatter格式。

二、log4j

Log4j是Apache的一個開放源代碼項目,通過使用Log4j,我們可以控制日志信息輸送的目的地是控制臺、文件、GUI組件、甚至是套接口服務器、NT的事件記錄器、UNIX Syslog守護進程等;

我們也可以控制每一條日志的輸出格式;

通過定義每一條日志信息的級別,我們能夠更加細致地控制日志的生成過程。

最令人感興趣的就是,這些可以通過一個配置文件來靈活地進行配置,而不需要修改應用的代碼.

1、引入log4j

<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>

2、配置log4j.properties或者log4j.xml

log4j.rootLogger=debug,Console,File
log4j.appender.Console=org.apache.log4j.ConsoleAppender  
log4j.appender.Console.layout=org.apache.log4j.PatternLayout  
log4j.appender.Console.layout.ConversionPattern=%5p [%t] (%F:%L) - %m%n  
log4j.appender.Console.Threshold = DEBUG
  
log4j.appender.File=org.apache.log4j.RollingFileAppender  
log4j.appender.File.File=logfile.log  
log4j.appender.File.MaxFileSize=512KB  
log4j.appender.File.MaxBackupIndex=3  
log4j.appender.File.layout=org.apache.log4j.PatternLayout  
log4j.appender.File.layout.ConversionPattern=%d %p [%c] - %m%n  
log4j.appender.File.Threshold = DEBUG

這里指定了日志輸出的級別 debug.

Console, File指定日志輸出的目的地。 這兩個名字可以隨便取,比如 A或B都可以。 實際的配置是 org.apache.log4j.ConsoleAppender 和RollingFileAppender 用于指定是控制臺還是文件。 另外還指定了輸出的格式, 已經(jīng)產(chǎn)生的file 的規(guī)則。

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">

<log4j:configuration>

    <!-- 將日志信息輸出到控制臺 -->
    <appender name="ConsoleAppender" class="org.apache.log4j.ConsoleAppender">
        <!-- 設置日志輸出的樣式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <!-- 設置日志輸出的格式 -->
            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
        </layout>
        <!--過濾器設置輸出的級別-->
        <filter class="org.apache.log4j.varia.LevelRangeFilter">
            <!-- 設置日志輸出的最小級別 -->
            <param name="levelMin" value="WARN" />
            <!-- 設置日志輸出的最大級別 -->
            <param name="levelMax" value="ERROR" />
            <!-- 設置日志輸出的xxx,默認是false -->
            <param name="AcceptOnMatch" value="true" />
        </filter>
    </appender>

    <!-- 將日志信息輸出到文件,但是當文件的大小達到某個閾值的時候,日志文件會自動回滾 -->
    <appender name="RollingFileAppender" class="org.apache.log4j.RollingFileAppender">
        <!-- 設置日志信息輸出文件全路徑名 -->
        <param name="File" value="D:/log4j/RollingFileAppender.log" />
        <!-- 設置是否在重新啟動服務時,在原有日志的基礎添加新日志 -->
        <param name="Append" value="true" />
        <!-- 設置保存?zhèn)浞莼貪L日志的最大個數(shù) -->
        <param name="MaxBackupIndex" value="10" />
        <!-- 設置當日志文件達到此閾值的時候自動回滾,單位可以是KB,MB,GB,默認單位是KB -->
        <param name="MaxFileSize" value="10KB" />
        <!-- 設置日志輸出的樣式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <!-- 設置日志輸出的格式 -->
            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
        </layout>
    </appender>

    <!-- 將日志信息輸出到文件,可以配置多久產(chǎn)生一個新的日志信息文件 -->
    <appender name="DailyRollingFileAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <!-- 設置日志信息輸出文件全路徑名 -->
        <param name="File" value="D:/log4j/DailyRollingFileAppender.log" />
        <!-- 設置日志每分鐘回滾一次,即產(chǎn)生一個新的日志文件 -->
        <param name="DatePattern" value="'.'yyyy-MM-dd-HH-mm'.log'" />
        <!-- 設置日志輸出的樣式 -->
        <layout class="org.apache.log4j.PatternLayout">
            <!-- 設置日志輸出的格式 -->
            <param name="ConversionPattern" value="[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5p] [method:%l]%n%m%n%n" />
        </layout>
    </appender>

輸出方式appender一般有5種:

  • org.apache.log4j.RollingFileAppender(滾動文件,自動記錄最新日志)
  • org.apache.log4j.ConsoleAppender (控制臺)
  • org.apache.log4j.FileAppender (文件)
  • org.apache.log4j.DailyRollingFileAppender (每天產(chǎn)生一個日志文件)
  • org.apache.log4j.WriterAppender (將日志信息以流格式發(fā)送到任意指定的地方)

日記記錄的優(yōu)先級priority,優(yōu)先級由高到低分為 OFF ,FATAL ,ERROR ,WARN ,INFO ,DEBUG ,ALL。

Log4j建議只使用FATAL ,ERROR ,WARN ,INFO ,DEBUG這五個級別。

log4j layout日志信息格式

  • org.apache.log4j.HTMLLayout(以HTML表格形式布局),
  • org.apache.log4j.PatternLayout(可以靈活地指定布局模式),
  • org.apache.log4j.SimpleLayout(包含日志信息的級別和信息字符串),
  • org.apache.log4j.TTCCLayout(包含日志產(chǎn)生的時間、線程、類別等等信息)

PatternLayout是我們以后推薦使用的,很靈活; 有個ConversionPattern屬性,靈活配置輸出屬性:

  • %c 輸出所屬類的全名,可在修改為 %d{Num},Num類名輸出的維(如:“org.apache.elathen.ClassName”,%C{2}將輸出elathen.ClassName)
  • %d輸出日志時間其格式為 %d{yyyy-MM-dd HH:mm:ss,SSS},可指定格式 如 %d{HH:mm:ss}
  • %l 輸出日志事件發(fā)生位置,包括類目名、發(fā)生線程,在代碼中的行數(shù)
  • %n 換行符
  • %m輸出代碼指定信息,如info(“message”),輸出message
  • %p輸出優(yōu)先級,即 FATAL ,ERROR 等
  • %r 輸出從啟動到顯示該log信息所耗費的毫秒數(shù)
  • %t 輸出產(chǎn)生該日志事件的線程名
//使用方式
package com;
import org.apache.log4j.Logger;

public class Test {
	private static Logger logger = Logger.getLogger(Test.class);  

    /** 
     * @param args 
     */  
    public static void main(String[] args) {  
        // System.out.println("This is println message.");  
 
        // 記錄debug級別的信息  
        logger.debug("This is debug message.");  
        // 記錄info級別的信息  
        logger.info("This is info message.");  
        // 記錄error級別的信息  
        logger.error("This is error message.");  
    }  
 
}

三、 commons-logging

1、簡介

Commons-logging 也是Apache 提供的日志jar檔。

Apache Commons Logging(JCL) 提供了一個簡單的日志抽象,允許開發(fā)人員使用特定的日志實現(xiàn)。

JCL可以使用其他的日志實現(xiàn),包括Log4J、Avalon LogKit(Avalon的日志框架)、JDK logging(JUL)。

2、配置

① 在classpath下尋找配置文件commons-logging.properties,并使用文件中org.apache.commons.logging.Log屬性定義的Log實現(xiàn)類;

② 如果找不到commons-logging.properties文件,查找系統(tǒng)環(huán)境變量org.apache.commons.logging.Log對應的Log實現(xiàn)類;

③ 否則,查看classpath中是否有Log4j的包,如果發(fā)現(xiàn),則自動使用Log4j作為日志實現(xiàn)類;

④ 否則,使用JDK自身的日志實現(xiàn)類(JDK1.4以后才有日志實現(xiàn)類);

⑤ 否則,使用commons-logging自己提供的一個簡單的日志實現(xiàn)類SimpleLog;

3、依賴

<dependency>
    <groupId>commons-logging</groupId>
    <artifactId>commons-logging</artifactId>
    <version>1.2</version>
</dependency>

4、簡單實現(xiàn)

新建commons-logging.properties文件,放置在classpath根路徑下

org.apache.commons.logging.Log=org.apache.commons.logging.impl.SimpleLog

代碼中使用

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
 
public class CommonsTest {
    private final static Log logger = LogFactory.getLog(CommonsTest.class);
 
    public static void main(String[] args) {
        logger.debug("DEBUG ...");
        logger.info("INFO ...");
        logger.error("ERROR ...");
    }
}

5、Commons-logging的解耦功能

commons-logging最核心有用的功能是解耦,它的SimpleLog實現(xiàn)性能比不上其他實現(xiàn),如log4j等。

①添加依賴

<dependency>
	<groupId>commons-logging</groupId>
	<artifactId>commons-logging</artifactId>
	<version>1.2</version>
</dependency>
<dependency>
	<groupId>log4j</groupId>
	<artifactId>log4j</artifactId>
	<version>1.2.17</version>
</dependency>

②修改配置文件:修改commons-logging.properties文件:顯示地指定log4j

org.apache.commons.logging.Log=org.apache.commons.logging.impl.Log4JLogger

并添加log4j.properties的配置文件:

log4j.rootLogger=DEBUG,console
 
# 輸出到控制臺
log4j.appender.console=org.apache.log4j.ConsoleAppender
# 設置輸出樣式    
log4j.appender.console.layout=org.apache.log4j.PatternLayout
# 日志輸出信息格式為   
log4j.appender.console.layout.ConversionPattern=[%-d{yyyy-MM-dd HH:mm:ss}]-[%t-%5p]-[%C-%M(%L)]: %m%n

③代碼中使用

import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
 
public class CommonsTest {
	private final static Log logger = LogFactory.getLog(CommonsTest.class);
 
	public static void main(String[] args) {
		logger.debug("DEBUG ...");
		logger.info("INFO ...");
		logger.error("ERROR ...");
	}
}

四、logback

1、介紹

Logback是由log4j創(chuàng)始人設計的另一個開源日志組件,官方網(wǎng)站:http://logback.qos.ch。它當前分為下面下個模塊:

  • logback-core:其它兩個模塊的基礎模塊
  • logback-classic:它是log4j的一個改良版本,同時它完整實現(xiàn)了slf4j API使你可以很方便地更換成其它日志系統(tǒng)如log4j或JDK14 Logging
  • logback-access:訪問模塊與Servlet容器集成提供通過Http來訪問日志的功能

2、logback取代log4j的理由

更快的實現(xiàn):Logback的內(nèi)核重寫了,在一些關(guān)鍵執(zhí)行路徑上性能提升10倍以上。而且logback不僅性能提升了,初始化內(nèi)存加載也更小了。

Logback-classic非常自然實現(xiàn)了SLF4j:Logback-classic實現(xiàn)了SLF4j。在使用SLF4j中,你都感覺不到logback-classic。而且因為logback-classic非常自然地實現(xiàn)了slf4j, 所 以切換到log4j或者其他,非常容易,只需要提供成另一個jar包就OK,根本不需要去動那些通過SLF4JAPI實現(xiàn)的代碼。

自動重新加載配置文件,當配置文件修改了,Logback-classic能自動重新加載配置文件。掃描過程快且安全,它并不需要另外創(chuàng)建一個掃描線程。這個技術(shù)充分保證了應用程序能跑得很歡在JEE環(huán)境里面。

3、配置

Logger、appender及l(fā)ayout

Logger作為日志的記錄器,把它關(guān)聯(lián)到應用的對應的context上后,主要用于存放日志對象,也可以定義日志類型、級別。

Appender主要用于指定日志輸出的目的地,目的地可以是控制臺、文件、遠程套接字服務器、 MySQL、PostreSQL、

Oracle和其他數(shù)據(jù)庫、 JMS和遠程UNIX Syslog守護進程等。   

Layout 負責把事件轉(zhuǎn)換成字符串,格式化的日志信息的輸出。

logger context   

各個logger 都被關(guān)聯(lián)到一個 LoggerContext,LoggerContext負責制造logger,也負責以樹結(jié)構(gòu)排列各logger。

其他所有l(wèi)ogger也通過org.slf4j.LoggerFactory 類的靜態(tài)方法getLogger取得。

getLogger方法以 logger名稱為參數(shù)。用同一名字調(diào)用LoggerFactory.getLogger 方法所得到的永遠都是同一個logger對象的引用。

有效級別及級別的繼承   

Logger 可以被分配級別。級別包括:TRACE、DEBUG、INFO、WARN 和ERROR,定義于ch.qos.logback.classic.Level類。

如果 logger沒有被分配級別,那么它將從有被分配級別的最近的祖先那里繼承級別。root logger 默認級別是 DEBUG。

打印方法與基本的選擇規(guī)則   

打印方法決定記錄請求的級別。例如,如果 L 是一個 logger 實例,那么,語句 L.info("…")是一條級別為 INFO的記錄語句。記錄請求的級別在高于或等于其 logger 的有效級別時被稱為被啟用,否則,稱為被禁用。

記錄請求級別為 p,其 logger的有效級別為 q,只有則當 p>=q時,該請求才會被執(zhí)行。

該規(guī)則是 logback 的核心。級別排序為: TRACE < DEBUG < INFO < WARN < ERROR

4、配置詳解

(1)根節(jié)點configuration包含下面三個屬性:

  • scan: 當此屬性設置為true時,配置文件如果發(fā)生改變,將會被重新加載,默認值為true。
  • scanPeriod: 設置監(jiān)測配置文件是否有修改的時間間隔,如果沒有給出時間單位,默認單位是毫秒。當scan為true時,此屬性生效。默認的時間間隔為1分鐘。
  • debug: 當此屬性設置為true時,將打印出logback內(nèi)部日志信息,實時查看logback運行狀態(tài)。默認值為false。
<configuration scan="true" scanPeriod="60 seconds" debug="false"> 
    <!--其他配置省略--> 
</configuration> 

(2)子節(jié)點contextName:用來設計上下文名稱,每個logger都關(guān)聯(lián)到logger上下文,默認上下文名稱為default。但可以使用設置成其他名字,用于區(qū)分不同應用程序的記錄。一旦設置,不能修改。

<configuration scan="true" scanPeriod="60 seconds" debug="false"> 
     <contextName>myAppName</contextName> 
    <!--其他配置省略-->
</configuration>    

(3)子節(jié)點property :用來定義變量值,它有兩個屬性name和value,通過定義的值會被插入到logger上下文中,可以使“${}”來使用變量。

  • name: 變量的名稱
  • value: 變量的值
<configuration scan="true" scanPeriod="60 seconds" debug="false"> 
   <property name="APP_Name" value="myAppName" /> 
   <contextName>${APP_Name}</contextName> 
   <!--其他配置省略--> 
</configuration>

(4)子節(jié)點timestamp:獲取時間戳字符串,他有兩個屬性key和datePattern

  • key: 標識此timestamp 的名字;
  • datePattern: 設置將當前時間(解析配置文件的時間)轉(zhuǎn)換為字符串的模式,遵循java.txt.SimpleDateFormat的格式。
<configuration scan="true" scanPeriod="60 seconds" debug="false"> 
      <timestamp key="bySecond" datePattern="yyyyMMdd'T'HHmmss"/> 
      <contextName>${bySecond}</contextName> 
      <!-- 其他配置省略--> 
</configuration>

(5)子節(jié)點appender:負責寫日志的組件,它有兩個必要屬性name和class。name指定appender名稱,class指定appender的全限定名

ConsoleAppender 把日志輸出到控制臺,有以下子節(jié)點:  

  • encoder:對日志進行格式化。(具體參數(shù)稍后講解 )  
  • target:字符串System.out(默認)或者System.err(區(qū)別不多說了)
<configuration> 
   <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> 
      <encoder> 
         <pattern>%-4relative [%thread] %-5level %logger{35} - %msg %n</pattern> 
      </encoder> 
   </appender> 
	<!-- 表示把 >= DEBUG級別的日志都輸出到控制臺 -->
   <root level="DEBUG"> 
      <appender-ref ref="STDOUT" /> 
   </root> 
</configuration>

(5.1)RollingFileAppender:滾動記錄文件,先將日志記錄到指定文件,當符合某個條件時,將日志記錄到其他文件。有以下子節(jié)點:

  • file:被寫入的文件名,可以是相對目錄,也可以是絕對目錄,如果上級目錄不存在會自動創(chuàng)建,沒有默認值;
  • append:如果是 true,日志被追加到文件結(jié)尾,如果是 false,清空現(xiàn)存文件,默認是true;
  • rollingPolicy:當發(fā)生滾動時,決定RollingFileAppender的行為,涉及文件移動和重命名;
  • -fileNamePattern:必要節(jié)點,包含文件名及“%d”轉(zhuǎn)換符,“%d”可以包含一個java.text.SimpleDateFormat指定的時間格式,如:%d{yyyy-MM};
  • maxHistory:可選節(jié)點,控制保留的歸檔文件的最大數(shù)量,超出數(shù)量就刪除舊文件。假設設置每個月滾動,且maxHistory是6,則只保存最近6個月的文件,刪除之前的舊文件。注意,刪除舊文件是,那些為了歸檔而創(chuàng)建的目錄也會被刪除;
  • maxFileSize:這是活動文件的大小,默認值是10MB;
  • prudent:當為true時,不支持FixedWindowRollingPolicy。支持TimeBasedRollingPolicy,但是有兩個限制,1不支持也不允許文件壓縮,2不能設置file屬性,必須留空;
  • triggeringPolicy: 告知 RollingFileAppender 合適激活滾動;
<!--表示每天生成一個日志文件,保存30天的日志文件-->
<configuration> 
  <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> 
     <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> 
         <fileNamePattern>logFile.%d{yyyy-MM-dd}.log</fileNamePattern> 
         <maxHistory>30</maxHistory> 
     </rollingPolicy> 
     <encoder> 
         <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern> 
     </encoder> 
  </appender> 

  <root level="DEBUG"> 
     <appender-ref ref="FILE" /> 
  </root> 
</configuration>

(6)子節(jié)點loger:用來設置某一個包或具體的某一個類的日志打印級別、以及指定appender。loger僅有一個name屬性,一個可選的level和一個可選的addtivity屬性??梢园銈€或多個appender-ref元素,標識這個appender將會添加到這個loger;

  • name: 用來指定受此loger約束的某一個包或者具體的某一個類。
  • level: 用來設置打印級別,大小寫無關(guān):TRACE, DEBUG, INFO, WARN, ERROR, ALL和OFF,還有一個特俗值INHERITED或者同義詞NULL,代表強制執(zhí)行上級的級別。 如果未設置此屬性,那么當前l(fā)oger將會繼承上級的級別。
  • addtivity: 是否向上級loger傳遞打印信息。默認是true。同loger一樣,可以包含零個或多個appender-ref元素,標識這個appender將會添加到這個loger。

(7)常用logger配置

<!-- show parameters for hibernate sql 專為 Hibernate 定制 -->
<logger name="org.hibernate.type.descriptor.sql.BasicBinder" level="TRACE" />
<logger name="org.hibernate.type.descriptor.sql.BasicExtractor" level="DEBUG" />
<logger name="org.hibernate.SQL" level="DEBUG" />
<logger name="org.hibernate.engine.QueryParameters" level="DEBUG" />
<logger name="org.hibernate.engine.query.HQLQueryPlan" level="DEBUG" />

<!--myibatis log configure-->
<logger name="com.apache.ibatis" level="TRACE"/>
<logger name="java.sql.Connection" level="DEBUG"/>
<logger name="java.sql.Statement" level="DEBUG"/>
<logger name="java.sql.PreparedStatement" level="DEBUG"/>

總結(jié)

以上為個人經(jīng)驗,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • 在Mybatis中使用自定義緩存ehcache的方法

    在Mybatis中使用自定義緩存ehcache的方法

    這篇文章主要介紹了在Mybatis中使用自定義緩存ehcache的方法,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-01-01
  • java.net.ConnectException: Connection refused問題解決辦法

    java.net.ConnectException: Connection refused問題解決辦法

    這篇文章主要介紹了java.net.ConnectException: Connection refused問題解決辦法的相關(guān)資料,需要的朋友可以參考下
    2016-12-12
  • java poi解析word的方法

    java poi解析word的方法

    這篇文章主要為大家詳細介紹了java poi解析word的方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-05-05
  • JVM自定義類加載器在代碼擴展性實踐分享

    JVM自定義類加載器在代碼擴展性實踐分享

    這篇文章主要介紹了JVM自定義類加載器在代碼擴展性實踐分享,一個類型從被加載到虛擬機內(nèi)存中開始,到卸載出內(nèi)存為止,它的整個生命周期將會經(jīng)歷加載、驗證、準備、解析、初始化 、使用和卸載七個階段,其中驗證、準備、解析三個部分統(tǒng)稱為連接
    2022-06-06
  • jpa異常No entity found for query問題解決

    jpa異常No entity found for query問題解決

    這篇文章主要為大家介紹了jpa異常之No entity found for query的異常問題解決,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步
    2022-03-03
  • 關(guān)于Intellij IDEA中的Version Control問題

    關(guān)于Intellij IDEA中的Version Control問題

    這篇文章主要介紹了Intellij IDEA中的Version Control問題,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2021-11-11
  • SpringCloud-Alibaba-Sentinel服務降級,熱點限流,服務熔斷

    SpringCloud-Alibaba-Sentinel服務降級,熱點限流,服務熔斷

    這篇文章主要介紹了SpringCloud-Alibaba-Sentinel服務降級,熱點限流,服務熔斷,本文給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-12-12
  • Java 使用maven實現(xiàn)Jsoup簡單爬蟲案例詳解

    Java 使用maven實現(xiàn)Jsoup簡單爬蟲案例詳解

    這篇文章主要介紹了Java 使用maven實現(xiàn)Jsoup簡單爬蟲案例詳解,本篇文章通過簡要的案例,講解了該項技術(shù)的了解與使用,以下就是詳細內(nèi)容,需要的朋友可以參考下
    2021-09-09
  • 詳解JNI到底是什么

    詳解JNI到底是什么

    JNI是Java Native Interface的縮寫,通過使用 Java本地接口書寫程序,可以確保代碼在不同的平臺上方便移植。從Java1.1開始,JNI標準成為java平臺的一部分,它允許Java代碼和其他語言寫的代碼進行交互
    2021-06-06
  • 解決SpringCloud Config結(jié)合github無法讀取配置的問題

    解決SpringCloud Config結(jié)合github無法讀取配置的問題

    這篇文章主要介紹了解決SpringCloud Config結(jié)合github無法讀取配置的問題,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2021-02-02

最新評論