技术干货
逆天killer
这个作者很懒,什么都没留下…
展开
-
工具类读取yml配置
1.注意工具类需要加@component。原创 2023-01-03 10:46:55 · 257 阅读 · 0 评论 -
Optional 常用方法总结以及实战示例
empty : 创建一个空的Optional对象of:为非null的值创建一个Optional。of方法通过工厂方法创建Optional类。需要注意的是,创建对象时传入的参数不能为null。如果传入参数为null,则抛出NullPointerException。因此不经常用。ofNullable:为指定的值创建一个Optional,如果指定的值为null,则返回一个空的Optional。isPresent: 检查一个Optional对象中是否有值,只有值非空才返回true,否则返回false。原创 2022-11-28 11:43:23 · 264 阅读 · 0 评论 -
OncePerRequestFilter自定义效验过滤器
【代码】OncePerRequestFilter自定义效验过滤器。原创 2022-11-28 10:52:01 · 856 阅读 · 0 评论 -
@Validated实体类参数效验注解
比较实用优雅的参数注解效验方式。原创 2022-08-18 10:43:38 · 1592 阅读 · 0 评论 -
自定义注解+泛型+反射实现SQL拼接
生产需求,代码框架没有用到mybatis,采用SQL直接执行方式。因为需要对不同的表进行插入数据操作,这里通过自定义注解+泛型+反射工具类,实现智能化SQL拼接,代码封装思路挺好的,值得记录学习。原创 2022-08-15 16:51:37 · 441 阅读 · 0 评论 -
springboot自定义注解防止表单重复提交
功能实现:使用了自定义注解、自定义拦截器、redis缓存等知识点。2.防止重复提交拦截器类3.具体拦截逻辑类4.添加自定义拦截器类(必须有这个拦截才会生效)5.过滤器(构建可重复读取inputStream的request)======================== 以下是上述主要逻辑的配套工具类 ========================...原创 2022-08-10 19:07:03 · 310 阅读 · 0 评论 -
List中数据量过大如何处理?集合拆分 + 并发处理(Lists.partition + Semaphore)你值得拥有
代码】List中数据量过大如何处理?集合拆分 + 并发处理(Lists.partition + Semaphore)你值得拥有。原创 2022-08-04 17:32:29 · 788 阅读 · 0 评论 -
SQL正则匹配报错换个思路解法
**需求:**表中ancestors字段表示数据层级,当想匹配层级中含有13的数据但是不能匹配到131这种数据.思路:首先想到用like匹配,发现数据前后没有逗号,不好去匹配,然后想到了正则,发现SQL中regexp不支持复杂正则,例如"(?...原创 2022-06-22 16:46:16 · 377 阅读 · 0 评论 -
java判断一个字符串是不是数字类型
查看JDK的API文档可以发现String类提供了一个matches这个方法很好用,可以对字符串内容进行判断.于是判断一个String类型能否转换成Integer类型可以用下面这个方法.//声明一个字符串String s="123";if(s.matches("[0-9]+")){ Integer a=Integer.parseInt(s);}else{System.out.println("该字符串不是整数类型");}最后说一下,[0-9]+是正则表达式,意思是[0-9]表达的是匹配原创 2020-06-14 13:17:18 · 1791 阅读 · 0 评论 -
Aspose.Words for Java实现Word的操作(创建,合并单元格,样式修改,动态插入数据)并浏览器下载或本地导出
前言:对于Aspose.Words这个实用的插件,网上相关资料很多都是.NET,C#的写法,很少有JAVA相关的,而且比较乱,因客户需求导出Word内嵌表格功能,我才开始研究,查阅了很多大佬的资料,外加自己查看官方API手册,最终完成完善.下面分享给大家,有问题的可以评论告知多多支持!内容包含以下几个功能:1.无需模板生成Word文件.2.Word内写入多个表格,其中有表格样式调整,合并单元格.3.最终实现浏览器下载或IO流写入本地磁盘;4.动态插入数据并实现动态合并单元格思路启发.下面以菜鸟程原创 2020-06-08 01:14:47 · 5718 阅读 · 6 评论 -
查表将数据转成Excel下载
设置表头 @ApiOperation("导出指标数据表") @GetMapping("/download") public Result download(HttpServletRequest request, HttpServletResponse response, @RequestParam("indexId") String indexId, @RequestParam原创 2021-10-15 17:37:14 · 89 阅读 · 0 评论 -
字符串转运算表达式条件表达式
字符串转运算表达式public class runString { public static void main(String[] args) { ScriptEngine jse = new ScriptEngineManager().getEngineByName("JavaScript"); String strs = "1+2*3/(4-2)"; try { System.out.println(jse.eval(strs)); } catch (Exception原创 2021-10-27 09:24:19 · 533 阅读 · 0 评论 -
实体类封装优化--模糊查询条件拼接
package com.futuredata.web.assess.po.query;import java.util.List;import cn.hutool.db.sql.Condition;import cn.hutool.db.sql.SqlUtil;import lombok.Builder;import lombok.Data;@Data@Builderpublic class ModelQuery extends BaseQuery { /** *原创 2021-06-17 15:10:23 · 406 阅读 · 0 评论 -
自定义注解实现controller参数注入
前言:需求是通过自定义注解,将用户登录后的通过微服务Feign获取到的数据直接注入到controller请求参数中,方便调用1.自定义注解@Retention(RetentionPolicy.RUNTIME)@Target(ElementType.PARAMETER)@Documented@Inheritedpublic @interface LoginUser {}2.登录参数解析器@Componentpublic class LoginUserArgumentResolver im原创 2021-06-03 10:27:17 · 2189 阅读 · 1 评论 -
JAVA下载word(可保留模板样式)
本文讲述读取word模板的制作和模板读取动态插入数据生成word1.首先制作模板找我们需要的word模板文件,打开他,然后选另存为,保存成XML格式然后用Notepad++打开对应的XML,用XML Tools插件序列化数据(插件下载地址: 点这.)序列化后处理数据占位符,删除${}包裹的中间不需要的格式标签字符.然后保存,模板制作完成.2.数据结合模板调用API生成文档实现下载步骤大致如下:1.设置下载响应头2.处理数据,数据格式一般为Map<String,Object>原创 2020-12-03 17:13:11 · 1477 阅读 · 0 评论 -
java批量下载文件zip打包
实现思路:1.首先你要会单个文件下载的写法,把文件写入到临时文件夹里.//参考写法 public static String createGyss(LawsuitInfo lawsuit, String fileName) { //读配置获取想要将文件下载的路径(算是临时目录,将数据传递给浏览器后这里保存的文件可以删除,也可以保留) String strWorkPath = AppConfig.get("file.work.path") + AppUtils.randomUUID() +原创 2020-11-27 16:24:30 · 772 阅读 · 0 评论 -
Spring boot集成AOP + Redis缓存数据库查询结果提升接口相应速度和提高并发
本文参考文章为: 链接.具体文字说明原理看上面链接的,说的蛮好的,下面我提供完整复制即可正常执行的源码.//pom文件新增redis坐标 <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-data-redis</artifactId> &l原创 2020-11-10 14:50:05 · 237 阅读 · 0 评论 -
获取服务器上JAR包绝对路径
ApplicationHome ah = new ApplicationHome(getClass()); File file1 = ah.getSource(); String fileTemp = file1.getParentFile().toString();原创 2020-09-10 14:31:42 · 986 阅读 · 0 评论 -
定时任务@Scheduled快速使用
基于spring boot的项目架构快速开启定时任务1.启动类添加@EnableScheduling()注解2.建立定时任务处理类,写好处理逻辑如果加入@Async注解在配合上多线程配置类,即可实现多线程处理.3.配置定时任务执行时间,cron规则具体可以百度,添加红框圈出来的代码,可以解决控制台dbug级别日志报以下错误问题...原创 2020-07-30 16:05:36 · 272 阅读 · 0 评论 -
后端实现请求重定向任意url(可解决登录超时跳转等问题)
核心方法:HttpServletRequest response.sendRedirect(url)举个例子项目需求:在一个页面中点击下载按钮会去访问后端一个接口然后下载文件,当登录超时失效时,点击下载按钮进行跳转登录页.解决方法: /** * 导出Word * 中文会接受不到请求,前端需要url编码一下 */ @ApiOperation(value = "导出Word") @ApiImplicitParam(name = "anhao", v原创 2020-07-03 18:12:34 · 1909 阅读 · 0 评论 -
Java实现文件浏览器下载
前言:先说下需求,项目需求是用户一点击一个前端页面的链接就可以下载一个压缩包.因为就1个文件,使用文件管理系统像fastDSF,阿里云的OSS这种没必要,直接放在nginx服务器上的怕不好管理,于是给我限定了把文件打包到部署时候的jar包中并实现浏览器下载.废话不多说,直接上代码!1.首先是建立一个文件夹存放需要打包的文件,这里我选择的是和src同路径创建一个files,把文件放入文件夹内.2.修改pom.xml配置,实现打包时将文件打包到\target\classes\这个目录下, &l原创 2020-07-01 18:15:51 · 2367 阅读 · 0 评论 -
正则表达式从入门熟练到Java应用(图文举例讲解)
正则表达式在线测试地址http://tool.chinaz.com/regex/目录1.元字符2.转义符3.字符组4.分支5.贪婪6.分组7.断言8.JAVA中应用1.元字符示例: 子曰:学而时习之,不亦说乎?有朋自远方来,不亦乐乎?人不知而不悦,不亦君子乎?当我们想要在这一句话中匹配"子曰:"之后的所有内容呢?正则: 子曰:.*匹配结果: 黄色就是被匹配中的内容说明: 这里的英文句号”.”就是一个元字符,它将匹配除换行符以外的任意字符。而这里的符号”*”也是元字符,但是原创 2020-06-18 13:17:07 · 1042 阅读 · 0 评论