spring註入靜態成員變量
阿新 • • 發佈:2017-12-22
static 成員 gms exception span private pri get 函數
工作中遇到的問題,在工具類裏面需要給靜態成員變量註入值,而靜態成員變量是在類加載的時候加載的,所以一直報空指針。
在網上找了幾種方法,記錄一下。
第一種:使用set函數註入。
1 @Component 2 public class LogUtil { 3 4 private static PayLogDao logDao ; 5 @Autowired 6 public void setLogDao(PayLogDao logDao){ 7 LogUtil.logDao = logDao; 8 } 9 }
第二種:使用@PostConstructy註解。
1 @Component 2 public class LogUtil { 3 @Autowired 4 private PayLogDao logDao ; 5 6 private static LogUtil logUtil; 7 8 @PostConstruct 9 private void init() { 10 logUtil = this; 11 } 12 13 public static void writeSuccessLog(String ip,String mac,String clazz,String msg){14 PayLog log = new PayLog(); 15 log.setLogId(IDUtil.getId()); 16 log.setLogIp(ip); 17 log.setLogMac(mac); 18 log.setLogMsg(msg); 19 log.setLogClass(clazz); 20 log.setLogTime(DateUtil.getNowTime()); 21 try{ 22 logUtil.logDao.writeLog(log);23 }catch (Exception e){ 24 //捕獲異常,不阻斷業務 25 } 26 } 27 }
第一種沒有嘗試過,我使用的是第二種。
spring註入靜態成員變量