關於日誌jul,jcl,log4j,slf4j日誌不清楚請參考我的這篇文章
在spring裡面找個會列印日誌的類,都會看到這樣一串**
import org.apache.commons.logging.logfactory;
public class ***
是不是很熟悉,引的是commons-logging.jar下的 org.apache.commons.logging.logfactory類,也就是jcl輸出日誌,所以如果我們在pom.xml檔案裡面引入log4j,那麼spring4就會使用log4j來列印日誌,如果不引用就會使用jul來列印。
spring依賴的是spring-jcl.jar來列印日誌的,為什麼會有spring-jcl這種jar,其實是spring自己寫的。
import org.apache.commons.logging.logfactory;
protected final log logger = logfactory.getlog(getclass());
public static log getlog(string name)
}
雖然引的也是org.apache.commons.logging.logfactory路徑下的類,但要注意這個是spring-jcl.jar的類。
從上面的**看可以發現通過判斷logapi的值,來選擇日誌型別,那麼logapi的值是什麼呢,他是怎麼被賦值的。
private static logapi logapi = logapi.jul;//預設使用jul輸出
static
catch (classnotfoundexception ex1)
catch (classnotfoundexception ex2)
catch (classnotfoundexception ex3)
} }}
從原始碼上可以發現,logapi預設值是jul,上面的靜態**塊就是嘗試去載入指定的類,如果存在則為logapi賦上對應的型別。
org.apache.logging.log4j.spi.extendedlogger //log4j2
org.slf4j.spi.locationawarelogger //框架擴充套件日誌的,具體這不是很清楚。
org.slf4j.logger //酸辣粉
所以spring5裡面引入log4j的jar也不會使用log4j打輸出日誌,如果我們想只想通過log4j來輸出日誌,而不用log4j2。可以通過酸辣粉(slf4j),和酸辣粉log4j繫結器。 Spring4之Spring整合Struts2框架
spring4之spring整合struts2框架 一 spring在web中的使用通過註冊 servlet contextloaderlistener,web 應用程式可以載入 spring 的applicationcontext 物件。這個 會將載入好的applicationcontext物件儲...
spring 4 註解實體
1.建立實體 repository 適用於dao層 service 適用於service controller 適用於web service用於標註業務層元件 controller用於標註控制層元件 如struts中的action repository用於標註資料訪問元件,即dao元件 compon...
Spring5常用註解
用於建立物件的註解 component 用於建立物件,相當於xml檔案中配置的乙個bean 屬性只有乙個value,用來指定id,預設是當前類的類名,首字母小寫。下面三個註解是 component的衍生註解,作用和屬性相同,只不過提供了更加詳細的語義化。controller 一般用於表現層的註解 s...