quartz指定时间点触发
国家用人,当以德为本,才艺为末。——康熙
之前写过一篇Quartz的博客
今天做一点补充
如果我们需要指定时间点触发任务,则可以使用
// 指定时间点触发Date executeDate = new Date(System.currentTimeMillis() + 5000);TriggerBuilder.newTrigger().startAt(executeDate).withIdentity("achao", "ruben").build();
这样去构建
这样,我们的任务就会在指定的时间点触发
如何给博客添加看板娘(二)
只有跨越了来自人类自身恐惧的人,才有资格被称为站在顶峰的人。我是这样认为的。——迪奥·布兰度
这次就非常简单啦
首先你得准备模型文件
然后把这段代码粘贴过去
<!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8"> <title>Title</title></head><body><!-- Live2DCubismCore script --><script src="https://vampireachao.gitee.io/js/live2dcubismcore.js"></script><!-- Build script --><script src="https://vampireachao.gitee.io/js/bundle.js"></script> ...
springboot中VO属性别名
路是脚踏出来的,历史是人写出来的。人的每一步行动都在书写自己的历史。——吉鸿昌
使用springboot进行开发时,使用的VO有时候会更改别名,如果我们直接更改属性名,就需要把引用的地方都改了,较为麻烦
springboot默认使用jackson进行序列化/反序列化参数
所以我们可以使用com.fasterxml.jackson.annotation.JsonProperty注解
给我们的VO起一个别名,然后我们请求就可以使用别名keyword
我们发送请求后debug可以看到确实接收到了
mysql中条件函数
世上有味之事,包括诗、酒、哲学、爱情,往往无用。吟无用之诗,醉无用之酒,读无用之书,钟无用之情,终于成一无用之人,却因此活得有滋有味。——周国平《风中的纸屑》
在我们日常开发中,有时可能会在SQL中写一些条件,例如这里一个例子
这里有这样一张表,数据如下:
如果我们需要把未认证(状态为NOT_AUTH)的用户放到前面排序显示,在不影响分页的情况下,我们可以这么写
SELECT *,IF(status='NOT_AUTH','NOT_AUTH',null) AS sort FROM `user` ORDER BY sort DESC
这里使用到了MYSQL的IF函数
IF([条件],[为true时值],[为false时值])
例如我们需要整体排序,认证中的在最前,然后是未认证的,最后是已认证的
我们则可以使用MYSQL中的CASE、WHEN、THEN、ELSE、END一套去做
SELECT *,( CASE WHEN STATUS = 'AUTHING' THEN 0 WHEN STATUS = 'NOT_ ...
gson坑
一直只做自己会做的,就什么也做不成。最重要的是,你自己有没有兴趣——《碧蓝之海》
前两天使用Gson中遇到一个坑
同事使用
Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();
创建gson对象
所以到我这,出现了字段不序列化,或者反序列化不了的问题
例如下面这个类
@Datapublic static class User implements Serializable { private static final long serialVersionUID = 509877226276918727L; @Expose private String firstName; @Expose(serialize = false) private String lastName; @Expose(serialize = false, deserialize = false) private String emailAddress; ...
git放弃变更
度之住事,验之来事,参之平素,可则决之。一一《鬼谷子》
我们有时想放弃本地的变更,直接从远端仓库pull代码到本地覆盖
可以使用
git checkout -f
去放弃所有变更
当然,-f可以使用文件(夹)路径替换,这样的话只放弃指定的文件(夹)中的变更
但如果你新增了文件,想要放弃新增则可以使用
git clean -df
如果需要指定文件(夹),则可以在其中加入文件(夹)名,例如
git clean xxx.txt -df
然后就可以pull覆盖本地啦
获取系统信息
人不读书,则尘俗生其间,照镜则面目可憎,对人则语言无味。一一北宋·黄庭坚
首先是依赖
<!-- 获取系统信息 --><dependency> <groupId>com.github.oshi</groupId> <artifactId>oshi-core</artifactId> <version>3.9.1</version></dependency>
然后是工具类
package com.ruben.utils.server;import oshi.SystemInfo;import oshi.hardware.CentralProcessor;import oshi.hardware.GlobalMemory;import oshi.hardware.HardwareAbstractionLayer;import oshi.software.os.FileSystem;import oshi.software.os.OSFileStore;impor ...
springboot-RabbitMQ发送短信
天不为人之恶寒也辍冬,地不为人之恶辽远也辍广。——《荀子》
常见名词Virtual Hosts——虚拟主机,一个虚拟主机下可有多个队列
Exchange——交换机,分发消息到队列中
管理界面使用默认账户guest密码guest登录RabbitMQ管理界面
这里可以看到我们的端口和相关信息
15672——管理界面
25672——RabbitMQ集群通信端口号
5672——RabbitMQ内部通信端口号
快速入门引入依赖
<!-- https://mvnrepository.com/artifact/com.rabbitmq/amqp-client --><dependency> <groupId>com.rabbitmq</groupId> <artifactId>amqp-client</artifactId> <version>5.10.0</version></dependency>
简单队列
生产者
package com.ruben.mq.ra ...
android让返回按钮失效
先发制人,后发制于人。——《汉书》
我们可以重写Activity中的onBackPressed方法去实现
例如
...就是这样
replaceAll坑
学如弓弩,才如箭镞,识以领之,方能中鹄。一一袁枚
前两天遇到一个坑,在使用String.replace()和replaceAll的时候
因为没有看过API和注释,拿着就开用,结果造成一个bug
这里留做记录
场景是这样的,我对一个字符串进行替换,将[idea]替换为""时使用了replaceAll,导致其他不该被替换的字符也被替换了
这段代码
String str = "Hino Supa and ruben";System.out.println(str.replace("[idea]", ""));System.out.println(str.replaceAll("[idea]", ""));
输出的结果为
Hino Supa and rubenHno Sup n rubn
可以看到,replaceAll把我们的[idea]当做了正则表达式…
点进源码一看注释,好家伙
第一句就是
Replaces each substring of this strin ...