分类目录归档:编程开发
flowlauncher python插件开发
Docker搭建为知笔记、并破解VIP
Windows装机必备
java cron表达式
java cron表达式
https://docs.oracle.com/cd/E12058_01/doc/doc.1014/e12030/cron_expressions.htm

长度7位
秒分时日月星期年
Spring定时任务
# 每月的最后1天 @Scheduled(cron = "0 0 18 28–31 * ?") public void doAtLastDayOfMonth() { final Calendar calendar = Calendar.getInstance(); if (c.get(Calendar.DATE) == c.getActualMaximum(Calendar.DATE)) { // do something here... } }
说明:
Java(Spring)
* * * * * * * - - - - - - - | | | | | | | | | | | | | + year [optional] | | | | | +----- day of week (0 - 7) (Sunday=0 or 7) | | | | +---------- month (1 - 12) | | | +--------------- day of month (1 - 31) | | +-------------------- hour (0 - 23) | +------------------------- min (0 - 59) +------------------------------ second (0 - 59)
长度6位,去掉最后的年
Springboot +log4j2
1. 屏蔽所有log4j
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-logging</artifactId>
<exclusions>
<exclusion>
<groupId>*</groupId>
<artifactId>*</artifactId>
</exclusion>
</exclusions>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-log4j2</artifactId>
</dependency>
2. IDEA 调试时,记得清空target目录下,因为有缓存,尝试了很多次都是有问题,清空后即可。
参考:
log4j-slf4j-impl cannot be present with log4j-to-slf4j_草原孤狼的专栏-CSDN博客
eclipse 调试时出现label job 异常
某一天,eclipse升级到2020-09后,在eclipse调试时,总是弹出错误框,显示
An internal error occurred during: “Label Job”
怀疑新版本异常,使用2020-06, 发觉也会异常,暂时没时间折腾就放下啦。
今天再次研究,
查看workspace 目录下的log
!MESSAGE An internal error occurred during: “Label Job”.
!STACK 0
java.lang.IllegalArgumentException
at org.objectweb.shadedzt.asm.signature.SignatureReader.parseType(SignatureReader.java:249)
at org.objectweb.shadedzt.asm.signature.SignatureReader.acceptType(SignatureReader.java:140)
at org.objectweb.shadedzt.asm.commons.Remapper.mapSignature(Remapper.java:207)
at com.zeroturnaround.jdi.util.TypeUtil.fixGenericSig(TypeUtil.java:40)
at com.zeroturnaround.jdi.JRReferenceType.genericSignature(JRReferenceType.java:374)
at org.eclipse.jdi.internal.ClassTypeImpl$$$jr.genericSignature(<generated>:60000)
at org.eclipse.jdt.internal.debug.core.model.JDIReferenceType.getGenericName(JDIReferenceType.java:297)
at org.eclipse.jdt.internal.debug.core.model.JDIObjectValue.getReferenceTypeName(JDIObjectValue.java:507)
at org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getValueText(JDIModelPresentation.java:471)
at org.eclipse.jdt.internal.debug.ui.JDIModelPresentation.getFormattedValueText(JDIModelPresentation.java:1357)
at org.eclipse.jdt.internal.debug.ui.variables.JavaVariableLabelProvider.getValueText(JavaVariableLabelProvider.java:86)
at org.eclipse.debug.internal.ui.model.elements.VariableLabelProvider.getColumnText(VariableLabelProvider.java:104)
at org.eclipse.jdt.internal.debug.ui.variables.JavaVariableLabelProvider.getColumnText(JavaVariableLabelProvider.java:175)
at org.eclipse.debug.internal.ui.model.elements.VariableLabelProvider.getLabel(VariableLabelProvider.java:84)
at org.eclipse.jdt.internal.debug.ui.variables.JavaVariableLabelProvider.getLabel(JavaVariableLabelProvider.java:220)
at org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider.getLabel(ElementLabelProvider.java:297)
at org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider.retrieveLabel(ElementLabelProvider.java:200)
at org.eclipse.jdt.internal.debug.ui.variables.JavaVariableLabelProvider.retrieveLabel(JavaVariableLabelProvider.java:186)
at org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider$LabelUpdater.run(ElementLabelProvider.java:147)
at org.eclipse.debug.internal.ui.model.elements.ElementLabelProvider$LabelJob.run(ElementLabelProvider.java:74)
at org.eclipse.core.internal.jobs.Worker.run(Worker.java:63)
google,大多数没有用
最后发现
568473 – Exception on Breakpoint “Label Job” (eclipse.org)
I got a reply from JRebel:
“Thank you for reporting the issue. Our developers are aware of the issue and we are working on fixing it”
好吧,确实是使用啦JRebel
刚好,eclipse弹出升级确认,JRebel 有更新
升级完成后,OK。
在虚函数里面使用spring的DI
参考:https://medium.com/@citizenACLV/use-springs-dependency-injection-in-java-abstract-class-2573c1b4c0d1
实现的子类使用@Component
Factory 使用@Service, 得到实例的时候,使用@Autowired, 而不使用new
这个是关键,不然,虚基类的autowired会一直null
spring的autowired,默认是singleton,即autowired得到的都是同一个对象,
如果要每次都create new,则使用ObjectFactory,getObject每次会创建新的对象。
public class SingletonObjectFactoryBean {
@Autowired
private ObjectFactory<PrototypeBean> prototypeBeanObjectFactory;
public PrototypeBean getPrototypeInstance() {
return prototypeBeanObjectFactory.getObject();
}
}
参考:https://www.baeldung.com/spring-inject-prototype-bean-into-singleton
echarts 显示整数时异常
一组数据,都是整数,使用line chart显示,加上datazoom
datazoom移动到部份区域时,出现显示的点的位置没有对齐坐标
移动到特殊时间时出现,看数据都是整数,看不出异常。
解决方案:
移除sampling 配置
series: [{
symbol: “emptyCircle”,
symbolSize:4,
type: ‘line’,
data:xdata,
// sampling:’average’,
// showAllSymbol:’auto’,
}]
sampling 的作用,在数据笔记多的时候,无法完整显示所有数据的一个取值方式, 因为之前设置了average,所以会异常的出现不是整数的值。
使用git hooks 自动更新spring项目中 js 和css 文件版本号
spring项目中,修改了js文件后,重新部署后, 客户端经常会因为缓存了旧的js文件,导致功能异常。
一般的解决方案,是spring中引入资源处理插件,然后把相关资源文件的连接处理成类似test_xxxxxx.js的文件
本方案,再jsp中引用js时采用 test.js?v222222 ,即js文件名+?+版本号,版本号一般就是文件的修改日期。
源代码使用git管理,添加git的pre-commit hooks,在提交包含js或者css的文件修改时,扫描src目录下的相关文件,有带有文件连接的,
使用新的修改后的版本号替换。
git commit 后,会自动把相关的jsp修改后的文件,也一起提交。
https://gist.github.com/minyoad/b27fb53af3930d0093b94b823f0c2292
PS:
使用的是bash脚本,windows 只在wsl中测试过。