码迷,mamicode.com
首页 > 其他好文 > 详细

静态工具类中使用注解注入service

时间:2014-12-26 14:24:57      阅读:672      评论:0      收藏:0      [点我收藏+]

标签:

http://blog.csdn.net/p793049488/article/details/37819121

——————————————————————————————————————————————————————————————————————————

一般需要在一个工具类中使用@Autowired 注解注入一个service。但是由于工具类方法一般都写成static,所以直接注入就存在问题。

使用如下方式可以解决:

 

/** 
 *  
 */  
package cn.ffcs.drive.common.util;  
  
import javax.annotation.PostConstruct;  
import javax.servlet.http.HttpServletRequest;  
  
import org.slf4j.Logger;  
import org.slf4j.LoggerFactory;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.stereotype.Component;  
  
import cn.ffcs.drive.domain.Admin;  
import cn.ffcs.drive.domain.OpeLog;  
import cn.ffcs.drive.service.IOpeLogService;  
import cn.ffcs.zq.util.DateUtils;  
  
/** 
 * className:OpeLogUtils 
 *  
 * 管理员操作日志 
 *  
 * @author pengyh 
 * @version 1.0.0 
 * @date 2014-07-10 09:04:48 
 *  
 */  
@Component  
public class OpeLogUtils {  
  
    private static Logger logger = LoggerFactory.getLogger(OpeLogUtils.class);  
  
    @Autowired  
    private IOpeLogService opeLogService;  
    private static OpeLogUtils opeLogUtils;  
  
    public void setUserInfo(IOpeLogService opeLogService) {  
        this.opeLogService = opeLogService;  
    }  
      
    @PostConstruct  
    public void init() {  
        opeLogUtils = this;  
        opeLogUtils.opeLogService = this.opeLogService;  
  
    }  
  
    /** 
     * 执行操作日志入库操作 
     * @param adminId   管理员id 
     * @param opeDesc   操作日志信息 
     * @param cityCode  城市编码 
     */  
    public static void insertOpeLog(HttpServletRequest req, String opeDesc) {  
        try {  
            /** 
             * 获取管理员信息 
             */  
            Admin admin = DriveUtil.getSessionUser(req);  
              
            if(admin != null && opeDesc != null && !opeDesc.trim().equals("")){  
                  
                //封装日志信息  
                logger.info("开始封装日志信息。");  
                OpeLog opeLog = new OpeLog();  
                  
                opeLog.setAdminId(admin.getId());  
                opeLog.setCityCode(admin.getCityCode());  
                opeLog.setOpeDesc("管理员id="+admin.getId()+"操作【"+opeDesc+"】");  
                opeLog.setOpeTime(DateUtils.getNow());  
                opeLog.setIsDelete("0");  
                opeLogUtils.opeLogService.save(opeLog);  
                  
                logger.info("保存管理员操作日志成功,信息为【adminId:{},cityCode:{},opeDesc:{},opeTime:{}】",new Object[]{admin!=null?admin.getId():null,admin.getCityCode(),opeDesc,DateUtils.getNow()});  
            }else{  
                logger.info("保存操作日志失败,参数不足【adminId:{},cityCode:{},opeDesc:{},opeTime:{}】",new Object[]{admin!=null?admin.getId():null, admin!=null?admin.getCityCode():null, opeDesc, DateUtils.getNow()});  
            }  
        } catch (Exception e) {  
            logger.error("保存操作日志异常,异常信息为:" + e.getMessage(), e);  
        }  
    }  
  
} 

 

静态工具类中使用注解注入service

标签:

原文地址:http://www.cnblogs.com/cuizhf/p/4186600.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!