1. 程式人生 > >spring註入靜態成員變量

spring註入靜態成員變量

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註入靜態成員變量