当需要直接调用类中的静态方法:类名.方法名() 直接调用时

一些SpringBoot非静态变量,或者注入的bean 在静态方法中是无法获取到的,需要改动也比较麻烦

@Value("${company.file.upload}")
private String upload;@Resource
private AttachmentService attachmentService;

那么这时候就可以使用到 SpringUtil.getBean() 方法,就可以加入一个 public static void fileConverter 的方法提供调用而原来的方法就不需要变动了

@Component("libreOfficeUtils")
public class LibreOfficeUtils {@Value("${company.file.upload}")private String upload;@Resourceprivate AttachmentService attachmentService;private static final Logger log= LoggerFactory.getLogger(LibreOfficeUtils.class);/*** 文档转换* @param newAttachmentId 附件id* @throws Exception*/public static void fileConverter(Long newAttachmentId) {LibreOfficeUtils libreOfficeUtils = SpringUtil.getBean("libreOfficeUtils");libreOfficeUtils.fileConverter2(newAttachmentId);}/*** 文档转换* @param newAttachmentId 附件id* @throws Exception*/public void fileConverter2(Long newAttachmentId) {// 需要用到upload,attachmentService的业务...}}

by the way: static关键字的用途

  在《Java编程思想》P86页有这样一段话:

  “static方法就是没有this的方法。在static方法内部不能调用非静态方法,反过来是可以的。而且可以在没有创建任何对象的前提下,仅仅通过类本身来调用static方法。这实际上正是static方法的主要用途。”

————————因为它不依附于任何对象,既然都没有对象,就谈不上this了

  这段话虽然只是说明了static方法的特殊之处,但是可以看出static关键字的基本作用,简而言之,一句话来描述就是:

  方便在没有创建对象的情况下来进行调用(方法/变量)。

  很显然,被static关键字修饰的方法或者变量不需要依赖于对象来进行访问,只要类被加载了,就可以通过类名去进行访问。

  static可以用来修饰类的成员方法、类的成员变量,另外可以编写static代码块来优化程序性能。


参考来源于:

https://www.cnblogs.com/starhu/p/5150241.html

SpringUtil 工具类相关推荐

  1. 常用工具类 (三) : Hutool 常用工具类整理 (全)

    文章目录 官方文档 一.基础工具类 StrUtil / StringUtils 字符串工具类 DateUtil 日期工具类 NumberUtil 数字工具类 BeanUtil JavaBean工具类 ...

  2. Hutool工具类和工具方法

    基础工具类: StrUtil/StringUtils -字符串工具类 添加移除:addXXX/appendXXX/removeXXX判断:containsXXX/startWithXXX/endWit ...

  3. java日期转化工具类

    package com.rest.ful.utils;import java.text.DateFormat; import java.text.ParseException; import java ...

  4. java数据类型相互转换工具类

    package com.rest.ful.utils;import java.util.ArrayList; import java.util.HashMap; import java.util.Li ...

  5. 客快物流大数据项目(五十六): 编写SparkSession对象工具类

    编写SparkSession对象工具类 后续业务开发过程中,每个子业务(kudu.es.clickhouse等等)都会创建SparkSession对象,以及初始化开发环境,因此将环境初始化操作封装成工 ...

  6. [JAVA EE] Thymeleaf 常用工具类

    Thymeleaf 提供了丰富的表达式工具类,例如: #strings:字符串工具类 #dates:时间操作和时间格式化 #numbers:格式化数字对象的方法 #bools:常用的布尔方法 #str ...

  7. httpclient工具类,post请求发送json字符串参数,中文乱码处理

    在使用httpclient发送post请求的时候,接收端中文乱码问题解决. 正文: 我们都知道,一般情况下使用post请求是不会出现中文乱码的.可是在使用httpclient发送post请求报文含中文 ...

  8. spring boot 文件上传工具类(bug 已修改)

    以前的文件上传都是之前前辈写的,现在自己来写一个,大家可以看看,有什么问题可以在评论中提出来. 写的这个文件上传是在spring boot 2.0中测试的,测试了,可以正常上传,下面贴代码 第一步:引 ...

  9. SharePreference工具类

    安卓开发一般都需要进行数据缓存,常用操作老司机已为你封装完毕,经常有小伙伴问怎么判断缓存是否可用,那我告诉你,你可以用这份工具进行存储和查询,具体可以查看源码,现在为你开车,Demo传送门. 站点 S ...

  10. java录排名怎么写_面试官:Java排名靠前的工具类你都用过哪些?

    你知道的越多,不知道的就越多,业余的像一棵小草! 你来,我们一起精进!你不来,我和你的竞争对手一起精进! 编辑:业余草 推荐:https://www.xttblog.com/?p=5158 在Java ...

最新文章

  1. java map to map 拷贝_java复制Map 对象(深拷贝和浅拷贝)
  2. 我也学习JAVA多线程-join
  3. android 弹出对话框时显示键盘
  4. 全面介绍Windows内存管理机制及C++内存分配实例(四):内存映射文件
  5. [转]Hexo博客添加自定义HTML页面
  6. “我的开源项目被大厂‘盗用’了!”
  7. Redux Toolkit 使用指南
  8. 类似web表单提交 使界面的滚动条 按要求定位到指定控件
  9. 2012最热门软件游戏下载Top搜集(热门影音,游戏,办公软件大集合)
  10. Linux源码安装pgadmin4,赵彦昌博客 - linux ubuntu 安装pgadmin4
  11. 卷积神经网络的工作原理
  12. Python调用graphviz绘制结构化图形网络
  13. JAVA ftps设置_如何使用apache.commons.net.ftps配置客户端身份验证?
  14. html中圆角和颜色透明度的属性与使用
  15. django学习日记2017-10-20: 登录界面
  16. 用HTML和CSS做箭头
  17. JAVA编程入门学习
  18. Windows和Mac系统盘瘦身的一些经验
  19. java接口参数默认值_下面关于setMaxAge(int expires)方法参数默认值的描述中,正确的是(5.0分)_学小易找答案...
  20. 差分时钟、DQS与DQM - DDRx的关键技术介绍(上)

热门文章

  1. DSP TMS320C5509A 控制DDS AD9854芯片进行PSK相位调制
  2. 单片机中的数据存储器ram
  3. 关于光伏电站后运维时代运维模式的创新思路与构想
  4. 关于Javascript的学习心得
  5. 在ubuntu用wine安装微信 并解决无法输入文字的问题 ubuntu完美安装微信
  6. 输入框常规测试数据用例设计
  7. 小程序生成自带参数的小程序码
  8. 6 - 常用模块(os,sys,timedatetime,random,jsonpicle,shelve,hashlib)
  9. 利用cookie实现搜索记录
  10. Vim配置#pathogen插件管理工具