文档章节

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

quickhelper
 quickhelper
发布于 2015/10/21 16:48
字数 333
阅读 2050
收藏 8
点赞 0
评论 2

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

使用如下方式可以解决:

[java] view plain copy
  1. /** 
  2.  *  
  3.  */  
  4. package cn.ffcs.drive.common.util;  
  5.   
  6. import javax.annotation.PostConstruct;  
  7. import javax.servlet.http.HttpServletRequest;  
  8.   
  9. import org.slf4j.Logger;  
  10. import org.slf4j.LoggerFactory;  
  11. import org.springframework.beans.factory.annotation.Autowired;  
  12. import org.springframework.stereotype.Component;  
  13.   
  14. import cn.ffcs.drive.domain.Admin;  
  15. import cn.ffcs.drive.domain.OpeLog;  
  16. import cn.ffcs.drive.service.IOpeLogService;  
  17. import cn.ffcs.zq.util.DateUtils;  
  18.   
  19. /** 
  20.  * className:OpeLogUtils 
  21.  *  
  22.  * 管理员操作日志 
  23.  *  
  24.  * @author pengyh 
  25.  * @version 1.0.0 
  26.  * @date 2014-07-10 09:04:48 
  27.  *  
  28.  */  
  29. @Component  
  30. public class OpeLogUtils {  
  31.   
  32.     private static Logger logger = LoggerFactory.getLogger(OpeLogUtils.class);  
  33.   
  34.     @Autowired  
  35.     private IOpeLogService opeLogService;  
  36.     private static OpeLogUtils opeLogUtils;  
  37.   
  38.     public void setUserInfo(IOpeLogService opeLogService) {  
  39.         this.opeLogService = opeLogService;  
  40.     }  
  41.       
  42.     @PostConstruct  
  43.     public void init() {  
  44.         opeLogUtils = this;  
  45.         opeLogUtils.opeLogService = this.opeLogService;  
  46.   
  47.     }  
  48.   
  49.     /** 
  50.      * 执行操作日志入库操作 
  51.      * @param adminId   管理员id 
  52.      * @param opeDesc   操作日志信息 
  53.      * @param cityCode  城市编码 
  54.      */  
  55.     public static void insertOpeLog(HttpServletRequest req, String opeDesc) {  
  56.         try {  
  57.             /** 
  58.              * 获取管理员信息 
  59.              */  
  60.             Admin admin = DriveUtil.getSessionUser(req);  
  61.               
  62.             if(admin != null && opeDesc != null && !opeDesc.trim().equals("")){  
  63.                   
  64.                 //封装日志信息  
  65.                 logger.info("开始封装日志信息。");  
  66.                 OpeLog opeLog = new OpeLog();  
  67.                   
  68.                 opeLog.setAdminId(admin.getId());  
  69.                 opeLog.setCityCode(admin.getCityCode());  
  70.                 opeLog.setOpeDesc("管理员id="+admin.getId()+"操作【"+opeDesc+"】");  
  71.                 opeLog.setOpeTime(DateUtils.getNow());  
  72.                 opeLog.setIsDelete("0");  
  73.                 opeLogUtils.opeLogService.save(opeLog);  
  74.                   
  75.                 logger.info("保存管理员操作日志成功,信息为【adminId:{},cityCode:{},opeDesc:{},opeTime:{}】",new Object[]{admin!=null?admin.getId():null,admin.getCityCode(),opeDesc,DateUtils.getNow()});  
  76.             }else{  
  77.                 logger.info("保存操作日志失败,参数不足【adminId:{},cityCode:{},opeDesc:{},opeTime:{}】",new Object[]{admin!=null?admin.getId():null, admin!=null?admin.getCityCode():null, opeDesc, DateUtils.getNow()});  
  78.             }  
  79.         } catch (Exception e) {  
  80.             logger.error("保存操作日志异常,异常信息为:" + e.getMessage(), e);  
  81.         }  
  82.     }  
  83.   

本文转载自:http://blog.csdn.net/p793049488/article/details/37819121

共有 人打赏支持
quickhelper
粉丝 1
博文 78
码字总数 5482
作品 0
武汉
程序员
加载中

评论(2)

触碰黑白世界
触碰黑白世界
不好意思,没看到最后的转载。。。
触碰黑白世界
触碰黑白世界
抄袭

暂无相关文章

DevOps 资讯 | PostgreSQL 的时代到来了吗 ?

PostgreSQL是对象-关系型数据库,BSD 许可证。拼读为"post-gress-Q-L"。 作者: Tony Baer 原文: Has the time finally come for PostgreSQL?(有删节) 近30年来 PostgreSQL 无疑是您从未听...

RiboseYim ⋅ 5分钟前 ⋅ 0

Cube、Cuboid 和 Cube Segment

1.Cube (或Data Cube),即数据立方体,是一种常用于数据分析与索引的技术;它可以对原始数据建立多维度索引。通过 Cube 对数据进行分析,可以大大加快数据的查询效率 2.Cuboid 在 Kylin 中特...

无精疯 ⋅ 43分钟前 ⋅ 0

github太慢

1:用浏览器访问 IPAddress.com or http://tool.chinaz.com 使用 IP Lookup 工具获得github.com和github.global.ssl.fastly.net域名的ip地址 2:/etc/hosts文件中添加如下格式(IP最好自己查一...

whoisliang ⋅ 45分钟前 ⋅ 0

非阻塞同步之 CAS

为解决线程安全问题,互斥同步相当于以时间换空间。多线程情况下,只有一个线程可以访问同步代码。这种同步也叫阻塞同步(Blocking Synchronization). 这种同步属于一种悲观并发策略。认为只...

长安一梦 ⋅ 56分钟前 ⋅ 0

云计算的选择悖论如何对待?

人们都希望在工作和生活中有所选择。但心理学家的调查研究表明,在多种选项中进行选择并不一定会使人们更快乐,甚至不会产生更好的决策。心理学家Barry Schwartz称之为“选择悖论”。云计算为...

linux-tao ⋅ 58分钟前 ⋅ 0

Redis 注册为 Windows 服务

Redis 注册为 Windows 服务 redis 注册为 windows 服务相关命令 注册服务 redis-server.exe –service-install redis.windows.conf 删除服务 redis-server –service-uninstall 启动服务 re......

Os_yxguang ⋅ 59分钟前 ⋅ 0

世界那么大,语言那么多,为什么选择Micropython,它的优势在哪?

最近国内MicroPython风靡程序界,是什么原因导致它这么火呢?是因为他功能强大,遵循Mit协议开源么? 错!因为使用它真的是太舒服了!!! Micropython的由来,这得益于Damien George这位伟大...

bodasisiter ⋅ 今天 ⋅ 0

docker 清理总结

杀死所有正在运行的容器 docker kill $(docker ps -a -q) 删除所有已经停止的容器(docker rm没有加-f参数,运行中的容器不会删掉) docker rm $(docker ps -a -q) 删除所有未打 dangling 标...

vvx1024 ⋅ 今天 ⋅ 0

关于学习

以前学车的时候,教练说了这样的一句话:如果一个人坐在车上一直学,一直学,反而不如大家轮流着学。因为一个人一直学,就没有给自己留空间来反思和改进。而轮流着学的时候大家下来之后思考上...

mskk ⋅ 今天 ⋅ 0

压缩工具之gzip-bzip2-xz

win下常见压缩工具:rar zip 7z linux下常见压缩工具:zip gz bz2 xz tar.gz tar.bz2 tar.xz gzip 不支持目录压缩 gzip 1.txt #压缩。执行后1.txt消失,生成1.txt.gz压缩文件 gzip -d 1.txt....

ZHENG-JY ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部