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); } } }