
Java
Java工程师
大画家DHJ
业精于勤荒于嬉,行成于思毁于随。
展开
-
Java项目使用阿里云平台发送短信说明
项目上通过阿里云短信平台API发送短信是十分便捷的,主要是其官网使用方便,文档全面完善,因此,本篇文章重点不在于说明如何接入使用。现在各短信平台都加强了审核,导致在服务的申请和使用上存在着很多限制,而本篇文章即侧重于说明申请和使用等细节工作。短信平台的大致使用流程是:1购买短信服务;2申请签名;3根据签名申请短信模板;4集成API发送短信。原创 2023-02-06 16:31:25 · 1925 阅读 · 1 评论 -
Spring Security密码组成
Spring Security 密码加密的方式有多种,需要注意,即使是相同的密码,其加密结果也是不同的,因为其加密过程中有随机盐。具体组成,如图所示。原创 2022-05-21 19:45:43 · 260 阅读 · 0 评论 -
通过编译的.class文件优化代码
一、前言最近做的项目比较复杂,经常遇到一些奇怪的问题,也就经常向同事请教学习相关的解决思路和技巧。发现,同事通过看.class编译文件来解决问题的方式挺厉害的,因此理解、记录一下我的看法。二、几点用法1、处理奇怪问题开发过程中难免遇到一些逻辑上解释不通的问题,奇奇怪怪,无法解释。这个时候检查编译后的文件,就能直观看到自己代码的真实执行情况,提供一些解决问题的信息。2、优化代码通过编译文件,可以直观看到自己写的代码的具体执行情况。找出和自己意想不通的地方优化一下,不但原创 2022-05-01 19:38:16 · 767 阅读 · 0 评论 -
Spring Cloud 项目配置跨域
一、前言对于微服务项目,无需给每个微服务都配置跨域,只需要给网关(Gateway)微服务配置跨域即可。很多网友给出了多种方案,这里不再赘述。仅在此记录,暂时我遇到的问题。我通过修改yml配置的形式并不能实现跨域效果。spring: cloud: gateway: #default-filters: #- DedupeResponseHeader=Access-Control-Allow-Origin globalcors:原创 2022-04-29 16:46:24 · 2296 阅读 · 1 评论 -
Java 时间间隔格式化
将时间间隔的秒值转换成X天X时X分X秒例如:987654秒 等于 11天10时20分54秒/*** 将时间间隔的秒值转换成X天X时X分X秒,这里使用到的是递归的方法。* @param dateTime 秒值* return 格式化时间 X天X时X分X秒**/private static String durationConvert(Long dateTime){ if(dateTime > 60){ if(dateTime > 3600){ ...原创 2022-01-08 15:23:06 · 806 阅读 · 0 评论 -
Java 汉字转拼音
一、引入Maven依赖<dependency> <groupId>com.belerweb</groupId> <artifactId>pinyin4j</artifactId> <version>2.5.0</version></dependency>二、代码import com.gyyjy.portal.pojo.cms.sm.SelectTreeVO;import net.sour原创 2021-08-30 10:47:50 · 177 阅读 · 0 评论 -
TODO注解及其他类似注解说明
一、TODO注解及其他类似注解说明在Java日常开发过程中,我们经常能看到 // TODO 注解,其作用和用法,网上很多文章将的很好,在此不做赘述。这里主要来介绍其类似的几种注解。/// 这是对被注释的代码段做说明// TODO 这是说明待完成的功能代码// FIXME 这是说明待修改的功能代码// DONE 这是说明已经完成的功能代码// XXX 待删除的功能代码public static void main(String[] args) { /// 演示地址才需要执行原创 2021-08-19 15:37:03 · 7097 阅读 · 0 评论 -
Java 线程的创建与线程状态
Java 线程的创建Java 线程的创建有四种方式,如下:通过继承Thread类,重写run方法 通过实现Runnable接口,实现run方法 通过实现Callable接口,实现call方法,然后由线程池启动,Future对象获取线程情况 通过实现Callable接口,实现call方法,然后由线程池启动,FutureTask对象获取线程情况1、继承Thread类public class MyThreadClass { public static class MyThread.原创 2021-07-28 23:21:31 · 227 阅读 · 0 评论 -
Java Sleep的替换方法
https://www.jianshu.com/p/e233bb37d2e6原创 2021-07-12 19:48:47 · 1803 阅读 · 0 评论 -
JSONObject 和 HashMap转字符串的说明
简单比较说明本篇博客,不是详细分析JSONObject 和 HashMap的底层原理和区别,菜鸡一枚,没有这种能耐,仅是做一个采坑心得,并做简单比较总结。public class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { // do something}public class JSONObject extends J原创 2021-05-08 15:42:29 · 1653 阅读 · 0 评论 -
图解 Java 垃圾回收机制
最近学习Java垃圾回收机制,这篇微信公众号推文讲的很好,在此推荐。作者:沉默王二文章:https://mp.weixin.qq.com/s/RQGImK3-SrvJfs8eYCiv4A原创 2021-04-27 15:39:09 · 129 阅读 · 0 评论 -
FreeMarker模板制作
一、前言FreeMarker模板分为Word模板和Excel模板,制作方法都是相似,本篇博客将详细说明。二、Excel模板制作2.1 制作excel文档模板,选择新建 Microsoft Excel 工作表.xlsx 工作表2.2 文件---> 另存为,选择 XML电子表格2003(*.xml),生成后缀名为 .xml 的模板表格2.3 编辑器打开生成.xml模板表格,找到需要替换的内容,用FreeMarker语法代替和逻辑处理2.4 删除模板的行数和列..原创 2020-11-14 12:02:47 · 4803 阅读 · 1 评论 -
FreeMarker模板导出Word或Excel文件
一、前言Java开发中,常见的导入/导出插件是EasyPoi,简单易学,功能强大。如果我们希望导出的文件有复杂的样式的时,使用EasyPoi的POJO类处理显然就力不从心,因此就得使用EasyPoi模板。由于项目部署环境和打包框架等问题,代码中获取EasyPoi模板比较困难且容易导致NPE。因此,可以使用FreeMarker模板来做替换,该方法生成文件时只需要传入文档流即可。FreeMarker模板的制作,不在本篇博客讨论。见本人另一篇博客:二、导出功能实现1. Controller..原创 2020-11-13 21:22:25 · 708 阅读 · 0 评论 -
EasyPoi 模板导出报空指针问题处理
一、前言下图代码是SpringBoot项目controller层中的easypoi模板导出功能。在正常的开发测试过程中,并不会出现问题,但是当我们将其打成jar包放到Linux服务器上时,就会出现NPE(空指针异常),异常为第51行中的Excel模板找不到。主要原因有两点:Linux和Window文件系统环境不一致。 springBoot项目打jar包后文件资源加载方式不同,打包后Spring试图访问文件系统路径,但无法访问jar中的路径。Spring作者本人回答如下图,网址:https.原创 2020-11-13 17:32:45 · 5291 阅读 · 2 评论 -
SpringBoot2.x 使用多数据源
项目是SpringBoot项目,主数据源是MySQL数据库,另个数据源是SQL Server数据库。配置文件用的是yml,转properties也比较简单。原创 2020-11-13 14:36:38 · 440 阅读 · 1 评论 -
SpringBoot连接SQL Server数据库
一、POM文件中加入SQL Server JDBC依赖注意:很多博客中说引入的jar是Sqljdbc4,如果只引入该jar,程序启动会报错。经过多次测试是 mssql-jdbc。<!-- https://mvnrepository.com/artifact/com.microsoft.sqlserver/mssql-jdbc --><dependency> <groupId>com.microsoft.sqlserver</groupId&g原创 2020-10-26 15:29:24 · 8847 阅读 · 3 评论 -
命令运行Java文件总结
编译javac test.java运行### 注意:此方法运行的java class文件,但是末尾无需带后缀名java testLinux 后台运行java class并保存日志### 后台运行,并将日志输出到同路径下的info.log文件,没有该文件则创建nohup java test > info.log & ...原创 2020-10-24 23:43:03 · 244 阅读 · 0 评论 -
钉钉自定义机器人开发
前言关于钉钉自定义机器人的开发流程,其官网有全面的解释,就不作赘述,我仅说明一下我发信的问题。章节地址如下:https://ding-doc.dingtalk.com/document#/org-dev-guide/qf2nxq测试机器人发送消息其官网中介绍了三种测试发送消息的方法。分别是curl 、Java程序、PHP程序、Python程序、.NET程序。前面三种有详细的说明,后面两种在SDK环境配置章节的 SDK请求示例 中有简要的说明。不过其curl的访问方式似乎并没有用.原创 2020-10-22 09:40:03 · 65876 阅读 · 1 评论 -
Java 下载网络图片两种方法比较
最近,想把Window的壁纸给全部下载下来,然后就网上找了个Java下载网络图片的方法。发现了一个惊天秘密。图片链接:https://kbdevstorage1.blob.core.windows.net/asset-blobs/19950_en_1方法一、浏览器右键直接下载右键 --> 图片另存为(v)方法二、Java程序代码1public static void main(String[] args) { String path = "C:\\Users\\Admi.原创 2020-10-12 10:14:44 · 2441 阅读 · 1 评论 -
富文本导出过滤样式
前言Java 后端的导出经常使用到的插件是EasyPoi,同时也偶有涉及导出图片和富文本的情况。关于EasyPoi导出图片,参考我下面这篇博客:https://blog.csdn.net/qq_41057885/article/details/108736913正文富文本的导出,需要对立面的样式进行过滤,主要是过滤HTML标签,CSS样式和转义字符。String htmlStr = "<h1>我是标题H1</h1><div style="color:r原创 2020-09-27 10:05:39 · 470 阅读 · 0 评论 -
@RequiresPermissions 设置多个权限
// 不能省略KEY@RequiresPermissions(value = {"aa:bb:cc", "dd:ee:f"}, logical = Logical.OR)Logical.OR:满足一个权限即符合条件Logical.ADD:需要同时满足这两个条件原创 2020-09-27 09:38:08 · 4477 阅读 · 2 评论 -
EasyPoi导出图片
aaa原创 2020-09-23 11:40:37 · 7607 阅读 · 15 评论 -
Alibaba Java开发规范手册
分别是 泰山版,华山版,嵩山版,正式版。我也不知道它们之前由什么区别,可能只是贯彻马Jake一贯的套路。(CSDN博客页面无法上传文档???)https://developer.aliyun.com/topic/java20原创 2020-09-23 10:48:44 · 150 阅读 · 0 评论 -
@Async 注解无效的问题
@Async 注解作用 在Spring中,基于@Async标注的方法,称之为异步方法;这些方法将在执行的时候,将会在独立的线程中被执行,调用者无需等待它的完成,即可继续其他的操作。即可理解为,标注了@Async注解的方法,会被主线程交给子线程去完成。@Async注解用法 /** * 保存发送短信日志 * @param phone 手机号 * @param object 短信参数 * @return */ @Async ..原创 2020-07-03 16:03:47 · 854 阅读 · 0 评论 -
Linux CentOS7 离线安装Nginx
Linux在线安装Nginx的教程,在此不多说,具体百度。在此仅说明,Linux离线安装Nginx的步骤。网上的教程比较少且没有贴相应的资源,不是很全面,所以我来综合一下。环境和版本:Linux CentOS7.6、Nginx1.14一、安装环境包 gccLinux运行Nginx首先需要 gcc/gcc-c++ 环境,因此我们需要先安装这两个东西。链接:https://pan.baidu.com/s/1kKyXmAFjgN8XdkF2grqWXA提取码:8sz21. 将下载的g.原创 2020-06-17 17:34:44 · 362 阅读 · 0 评论 -
Linux CentOS7 离线安装 Mysql5.7
Linux离线安装Mysql5.7的方法大佬教程(https://www.cnblogs.com/oceanking/p/12080106.html)原创 2020-06-17 16:36:49 · 570 阅读 · 1 评论 -
SpringBoot项目接入支付宝第三方登录
今年大四毕业,由于新冠肺炎疫情的原因,开学和毕业答辩的时间都进行了推迟,因此有较多的时间对毕设项目做修改和调整,便在项目中接入微信和支付宝的第三方登录。在此需要说明,微信和支付宝的开发者平台大体一致,但是接入功能审核条件不尽相同。对于微信开发者而言,申请第三方登录不但要求你要有自己的域名,还要填写《微信开放平台网站信息登记表》并盖章等,条件相对苛刻。对于支付宝开发者而言,申请第三方登录仅需要有个人...原创 2020-05-05 22:32:48 · 3721 阅读 · 4 评论