随写-圈套
圈套 现在每隔一段时间,就会火一个人,火一个地方。 这样的人和地方在吸引着我们,在牵引着我们,让我们流连于这一个个伊甸,让我们没有过多的时间去独立思考。我们大多数人挤破头想要这样的火,千奇百怪、不择手段。
是的,我们大多数人需要钱,如果你走出圈套看,他们希望你能火,他们希望有人火,他们希望你动起来,挤破头。
而他们害怕你成为他们…火的神坛也只似一缕青烟冉冉升起,化为乌有,甚至呛到自己,这也就是古人云“风水轮流转”。
超智能锁屏
基于人脸识别的离开监测自动睡眠(mac)每隔一段时间利用摄像头取样,比对在屏幕前的人是您不是本人,两次比对失败立即执行睡眠或者进入屏保的操作。
大大缩减闲置电脑的时间以及可以更加高效利用电池
大大提高了在多人环境下的办公安全
绿联云Nas通过Docker安装自己的SpringBoot应用
编写Dockerfile文件
1234567891011121314# linux jdk FROM java:8 #MAINTAINER <MANAGE> RUN mkdir -p /app/logs/ #设置容器内时区和java项目内时区 RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezone COPY target/qhzw-auth-service-1.1.0-SNAPSHOT.jar /app/app.jar ENTRYPOINT ["java", "-Xmx512M", "-Xms256M", "-jar","/app/app.jar"]
打包镜像
1docker build -t my:1.0 ./
导出镜像
1docker save - ...
使用Idea+Docker一键部署Springboot应用到服务器
在某些场景下,我们想要更快速的部署我们Jar包应用程序,像本地启动程序一样。比如在idea中点击这个启动按钮即可执行部署
首先点击启动项配置
编写Dockerfile文件Dockerfile
123456789101112FROM adoptopenjdk/openjdk8#MAINTAINER <MANAGE>RUN mkdir -p /app/logs/#设置容器内时区和java项目内时区RUN ln -snf /usr/share/zoneinfo/Asia/Shanghai /etc/localtime && echo "Asia/Shanghai" > /etc/timezoneCOPY target/qhzw-auth-service-1.1.0-SNAPSHOT.jar /app/app.jarENTRYPOINT ["java", "-Xmx512M", "-Xms256M", "-jar","/app/app.jar&q ...
不到100行内容-快速高效安装内网穿透frp
准备条件
公网ip和域名
云服务器(我这里是阿里云 centos7)
支持安装frp的电脑或其他设备
frp软件包
frp默认包含两个主要配置文件,不同端只需要关注不同配置文件即可
frps.ini 服务端用到的配置文件(服务端:阿里云服务器关注)
frpc.ini 客户端用到的配置文件(客户端:nas关注)
1. 安装服务端 frpcentos版本下载地址:https://github.com/fatedier/frp/releases/download/v0.35.1/frp_0.35.1_linux_amd64.tar.gz
frps.ini配置如下 (实际使用要去掉注释)
123456[common]bind_port = 7000 #绑定端口,用于和客户端连接privilege_token = zxc1234 #用于连接认证,可以省略dashboard_port = 7001 #启动服务端UI页面,可以看到一些信息,无管理功能dashboard_pwd = zxc1234 #设置访问页面用户的密码。默认用户名为:a ...
AOP+自定义注解+反射自动填充对象枚举属性描述
先上效果:
在开发过程中,根据枚举值设置中文描述的情景非常常见并且重复性极高、代码可读性差(换个人用老实体写新代码可能就要问一遍枚举对应策略),所以想通过自定义注解来实现自动注入。
只需在属性上加入注解@EnumValueAutoAnnotation(enumClass = TipsStatusEnum.class),即可省去重复的set枚举值代码块,一次抒写多次复用。
12345678910public class TipsInfoVo implements Serializable { @ApiModelProperty(value = "状态;(0:未提醒,1:已提醒)") @EnumValueAutoAnnotation(enumClass = TipsStatusEnum.class) private Integer status; @ApiModelProperty(value = "状态-中文描述") private String statusName; ...}
...
Mybatis、Mybatis - plus 使用技巧、注意事项和问题解决 持续补充
Mybatis、Mybatis - plus 使用技巧、注意事项和问题解决 持续补充
当报statemens no bind语句的时候,首先要确认
mapper.xml的路径,是否和配置文件中配的一致,这里建议通过进入文件夹查看的方式进行确认,因为有时使用ide工具新建多个文件,有时会输入多个目录,中间以符号 . 分割,但是事实总是事与愿违。
Java多线程批量操作,做事务控制
目录
前言
循环操作的代码
使用手动事务的操作代码
尝试多线程进行数据修改
基于两个 CountDownLatch 控制多线程事务提交
基于 TransactionStatus 集合来控制多线程事务提交
使用 union 连接多个 select 实现批量 update
总结
前言
项目概况如下:
项目代码基于:MySQL 数据
开发框架为:SpringBoot、Mybatis
开发语言为:Java8
项目代码:
1https://gitee.com/john273766764/springboot-mybatis-threads
公司业务中遇到一个需求,需要同时修改最多约 5 万条数据,而且还不支持批量或异步修改操作。于是只能写个 for 循环操作,但操作耗时太长,只能一步一步寻找其他解决方案。具体操作如下。
循环操作的代码
先写一个最简单的 for 循环代码,看看耗时情况怎么样:
123456789101112131415/*** * 一条一条依次对50000条数据进行更新操作 * 耗时:2m27s,1m54s */@Testvoid updateStudent() & ...
gradle 使用教程
首先下载gradle好,然后指定环境变量
maven转换gradle命令1gradle init --type pom
构建DSL脚本步骤选1即可(搜了一下Groovy可以写java,Kotlin配置繁琐)
1234567891011121314151617Starting a Gradle Daemon (subsequent builds will be faster)Select build script DSL: 1: Groovy 2: KotlinEnter selection (default: Groovy) [1..2] Generate build using new APIs and behavior (some features may change in the nex11.........failed: connect timed out> Task :init FAILEDFAILURE: Build failed with an exception.* What went wrong:Execution failed for task ...
fastjson v1 vs fastjson v2
fastjson v1(obj to json/json to obj)
fastjson v2(obj to json/json to obj)
100万数据
245/373(ms)
248/309(ms)
1000万数据
2779/3918(ms)
558/1328(ms)
1000万数据 多属性
2654/4298(ms)
报错:java.lang.OutOfMemoryError at com.alibaba.fastjson2.JSONWriterUTF16.endArray(JSONWriterUTF16.java:149)