博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
静态工具类中使用注解注入service
阅读量:6231 次
发布时间:2019-06-21

本文共 2788 字,大约阅读时间需要 9 分钟。

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

 

你可能感兴趣的文章
最近打算把string_h下面的函数都实现一遍
查看>>
farpoint合计列不参与排序实现方法
查看>>
嵌入式Linux C语言基础——ARM Linux内核常见数据结构
查看>>
原理剖析(第 006 篇)Semaphore工作原理分析
查看>>
Java基础查漏补缺:(开篇)为什么要在即将找工作的时候还在看Java基础
查看>>
VXWORKS关于任务创建的几个函数概述
查看>>
破解candy crush过程
查看>>
corosync+pacemaker+drbd构建web高可用集群
查看>>
年计划,技术儿告诉你怎么做?
查看>>
VCT-Virtual Cable Test-虚拟电缆检测
查看>>
Java ibatis调用存储过程出现阻塞
查看>>
例解三层交换原理
查看>>
java-第十一章-类的无参方法-实现菜单的级联效果
查看>>
如何检测集群中每台主机的状态
查看>>
时针、分针在一昼夜 24 小时内重合多少次?
查看>>
PHP 5 常量
查看>>
第44讲:Scala中View Bounds代码实战及其在Spark中的应用源码解析
查看>>
react的style里面不支持important的解决办法
查看>>
JS基本问题
查看>>
我的第一篇博客
查看>>