相信很多小伙伴写程序有自己的一套工具类,或者遇到一个功能,会去网上找一些工具类,难免还会引入很多第三方类库,一个是增加了类库之间冲突的风险,另外是增大了整个包的体积。 我们现在很多时候开发框架选择的是SpringBoot,起始SpringBoot自带了很多使用的工具类,下面介绍下: 断言是一个逻辑判断,用于检查不应该发生的情况 Assert 关键字在 JDK1.4 中引入,可通过 JVM 参数-enableassertions开启 SpringBoot 中提供了 Assert 断言工具类,通常用于数据合法性检查 /…

2022-10-12 0条评论 458点热度 0人点赞 admin 阅读全文

写在前面 相信不少开发者在遇到项目对数据进行批量操作的时候,都会有不少的烦恼,尤其是针对数据量极大的情况下,效率问题就直接提上了菜板。 因此,开多线程来执行批量任务是十分重要的一种批量操作思路,其实这种思路实现起来也十分简单,就拿批量更新的操作举例: 整体流程图 步骤 获取需要进行批量更新的大集合A,对大集合进行拆分操作,分成N个小集合A-1 ~ A-N 。 开启线程池,针对集合的大小进行调参,对小集合进行批量更新操作。 对流程进行控制,控制线程执行顺序。 按照指定大小拆分集合的工具类 import com.goo…

2022-10-11 0条评论 486点热度 0人点赞 admin 阅读全文

之前写过文章记录怎么在SpringBoot项目中简单使用定时任务,不过由于要借助cron表达式且都提前定义好放在配置文件里,不能在项目运行中动态修改任务执行时间,实在不太灵活。 经过网上搜索学习后,特此记录如何在SpringBoot项目中实现动态定时任务。 因为只是一个demo,所以只引入了需要的依赖: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifac…

2022-10-10 0条评论 569点热度 0人点赞 admin 阅读全文

在使用Apache POI处理Excel的时候,应用部署到Linux后,遇到一个报错,如下: Caused by: java.lang.NullPointerException at java.desktop/sun.awt.FontConfiguration.getVersion(FontConfiguration.java:1262) at java.desktop/sun.awt.FontConfiguration.readFontConfigFile(FontConfiguration.java:225) …

2022-10-09 0条评论 796点热度 0人点赞 admin 阅读全文

在Spring Boot中,在读取yml或者properties的配置文件值,如果使用@Value注解对属性进行赋值,但如果在配置文件或启动参数中未指定对应的参数值,则会抛出异常。异常信息往往是对应注入属性的类实例化失败。 我们希望如果配置文件没有设置,能读到一个默认值,不会导致程序出错。 此时,需要对@Value对应的值进行配置,或设置默认值。设置方法如下: @RestController public class ConfigController { // ①未指定默认值 @Value("${user.user…

2022-10-08 0条评论 1124点热度 0人点赞 admin 阅读全文

使用MyBatis很多时候需要新建MapperXML文件,希望有一个比较方便的方式(例如新建Java文件,就是Project的点右键新增的菜单里有),我们也希望在那个菜单里出现MyBatis的Mapper文件。 操作步骤如下所示: 设置Preferences -> 编辑器Editor -> 文件和代码模板File and Code Templates,点击+加号按钮,创建一个新的模板文件,如图所示: 其中,需要输入模板文件的名称(MyBatis Mapper),以及后缀名填写为:xml。 模板文件的内容…

2022-10-07 0条评论 635点热度 0人点赞 admin 阅读全文

一、Spring Native 是什么? Spring Native 可以通过 GraalVM 将 Spring 应用程序编译成原生镜像,提供了一种新的方式来部署 Spring 应用。Spring Native 支持 Java 和 Kotlin。 这个项目的目标是寻找 Spring JVM 的替代方案,提供一个能将应用程序打包,并运行在轻量级容器的方案。期望能够在 Spring Native 中支持所有的 Spring 应用程序(几乎不用修改代码)。 二、GraalVM是什么? GraalVM 是 Oracle 发…

2022-10-06 0条评论 684点热度 0人点赞 admin 阅读全文

synchronize是平时用得比较多的多线程问题的解决方案,一般说存在多线程问题,加个锁,就用synchronize吧,简单,方便。今天,就来深入了解一下synchronize知识点。 Synchronized可以加在对象上,也可以加在函数上。 Synchronized 介绍 1:Synchronized. 加在对象上 表示对这个对象加锁,当有线程进入函数后先获取对象的锁,如果获取到锁,进入同步块执行,获取失败,放入阻塞队列中。 public void getOneThings(){ synchronized (…

2022-10-05 0条评论 487点热度 0人点赞 admin 阅读全文

Lombok是一个可以通过简单的注解形式来帮助我们简化消除一些必须有但显得很臃肿的Java代码的工具,通过使用对应的注解,可以在编译源码的时候生成对应的方法。 官方地址: https://projectlombok.org/ github地址: https://github.com/rzwitserloot/lombok 在IntelliJ IDEA 中的使用 (1)先安装lombok插件,步骤如下(新版的IDEA已经自带集成了Lombok插件,可以不用安装)。 菜单 File > Settings >…

2022-10-04 0条评论 692点热度 0人点赞 admin 阅读全文

本文将比较 Linux 中 service 和 systemctl 命令,先分别简单介绍这两个命令的基础用法,然后进行比较。 从 CentOS 7.x 开始,CentOS 开始使用 systemd 服务来代替 service服务(daemon),原来管理系统启动和管理系统服务的相关命令全部由 systemctl命令来代替。 一、service 命令 service命令是Redhat Linux兼容的发行版中用来控制系统服务的实用工具,它以启动、停止、重新启动和关闭系统服务,还可以显示所有系统服务的当前状态。 语法:…

2022-10-03 0条评论 882点热度 0人点赞 admin 阅读全文
1151617181984