Java程序猿搬砖笔记(十二)
@PostConstruct注解
示例代码:
1 |
|
Mybatis的mapper-locations配置
- 当mapper接口和mapper接口对应的配置文件在命名上相同、所在的路径相同时,则mapper-locations可以不用配置,配置也不会生效。
- 当mapper接口和mapper接口对应的配置文件在命名上不相同、或者所在的路径不相同时,需要配置mapper-locations才能实现接口的绑定
YML文件配置参考:
1 | mybatis: |
mapper和xml对应不上会报错:
1 | Invalid bound statement (not found): com.reward.promotion.mapper.CompanyRecordMapper.queryRecordList |
@JsonFormat实现原理
IDEA String Manipulation插件使用及设置快捷键
设置步骤演示:
1、快捷键"ALT+M" -> Switch Case -> Open Settings -> 增加"小写下划线转驼峰"操作
2、打开IDEA设置 -> 点击Keymap -> 搜索"小写下划线转驼峰" -> 将快捷键设置为"ALT+SHIFT+U"
注意:版本9以后才实现了"小写下划线snake_case"功能
参考链接
在Windows中测试服务器端口是否开放
1 | 命令语法:telnet 服务器id 服务器端口 |
Centos开放端口
1、开启防火墙
systemctl start firewalld
2、开放某个端口
firewall-cmd --zone=public --add-port=6379/tcp --permanent
其中zone表示作用域,参数permanent表示永久生效
3、重启防火墙
firewall-cmd --reload
Nginx常用配置详解
Nginx里面的路径定位关键词root、alias
1、root:设置请求的根目录。是最上层目录的意思。
处理结果为:root路径+location路径。
2、alias:用来更改location的路径。是目录别名的意思。
处理结果为:使用alias路径替换location路径。
3、如果location路径是以/结尾,则alias也必须是以/结尾,root没有要求。
参考链接
Zuul里面的prefix 和 strip-prefix学习
1、strip-prefix
true 移除前缀 false 不移除(增加)前缀
2、strip-prefix可用于全局配置和zuul.prefix结合使用
strip-prefix可用于路由配置和zuul.routes.routeName.path结合使用
从2.8路由前缀开始看就好,前面的例子举得不太好。
参考链接
解决Mybatis嵌套的结果集不能被安全地转为自定义ResultHandler
报错信息:
1 | org.mybatis.spring.MyBatisSystemException: nested exception is org.apache.ibatis.executor.ExecutorException: Mapped Statements with nested result mappings cannot be safely used with a custom ResultHandler. Use safeResultHandlerEnabled=false setting to bypass this check. |
意思:不允许自定义ResultHand处理器
解决方法:
1 | # 增加配置:safe-result-handler-enabled: false |
Mybatis中文文档
TortoiseGit+TortoiseGit中文语言包详细安装使用教程(windows版)
Java文件类型校验之Apache Tika
Java文件类型校验之Apache Tika、Java实现流和文件的转换 将InoutStream转为File输出到磁盘
Jackson解析器接收JSON实体,需要这个实体有无参构造方法,否则会报错
奖励平台动态登录时,LoginParam没有无参构造方法(@NoArgsConstructor)会报org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com…entity错误
Excel中数字变成E+的原因分析及两种解决方法
原因:
Excel中默认数字在超过11位后,就用科学计数法的显示方式。
解决方法:
方法一:单元格格式设置为数值,小数位数改为0
这种方式适用于数据库导出Excel后,某些字段自动转为了科学计数法的情况。
保存时会提示格式不兼容,本质是文件的实际是TXT格式,需要另存为xlsx,设置的格式才有效果
方法二: 自定义单元格格式,类型设置为0
这种方法适用输入的数字长度超过11位但是不超过15位,超过15位后的数字会自动变为0。
方法三:单元格格式设置为文本
这种方式数字超过15位也可以正常显示,但是做数值运算会有问题。
Excel快速对当前列下面的空单元格填充
方法一:双击单元格右下角也可以实现快速填充,填充的范围为遇到非空值。
效果如下:
该方式适合整列都为空的情况。
方法二:ctrl+g快捷键实现快速填充
步骤:选中当前列 -> ctrl+g快捷键,定位 -> 点击空值 -> 输入要填充的值 -> ctrl+回车
效果如下:
该方式功能更强大,支持筛选后的部分空值填充。
参考链接
方法三:复制单个单元格,然后拖动进度条到最后填充
步骤:
筛选出空白单元格 -> 输入要填充的值 -> ctrl+c,复制 -> 拖动进度条到最后 -> ctrl+v粘贴
效果如下:
MySQL统计每分钟的记录数
原理:
利用unix_timestamp和floor函数,把秒转换成整数(取整),然后对这个整数进行分组取数量。
核心代码:
1 | floor(unix_timestamp(record.create_time) / 60) |
参考代码:
1 | -- 按分钟统计投票次数 |
SpringBoot项目中某些Maven依赖可以不加版本号的原因
因为spring-boot-dependencies是spring-boot-starter-parent的父依赖,spring-boot-dependencies-XXX.pom中的dependencyManagement有常用依赖包的默认版本号,有助于统一版本号。
所以当在Springboot项目中引入了spring-boot-starter-parent或spring-boot-dependencies,则可以不用引入依赖包版本号。
如果非要想自己填写版本号也是可以的,这样会覆盖官方版本号(不建议随便修改依赖包版本号,免得版本号不兼容)。
参考链接
在线SQL转Java实体工具
EasyExcel模板填充
通用导出方法:
1 | public class ExportExcelUtil<T> { |