技术交流
Liu.jie
这个作者很懒,什么都没留下…
展开
-
Java binLog日志监听
监听指定的表去做一些处理逻辑,首先是要开启M有SQL的配置,然后再撸代码。原创 2023-09-12 14:11:35 · 1075 阅读 · 0 评论 -
Java 资源文件映射
后端服务启动后,未设置路径映射时,通过浏览器仅能访问项目路径下的资源文件。application-dev.yml (配置本地资源路径)原创 2023-02-15 14:14:07 · 568 阅读 · 1 评论 -
Java 文件监控WatchMonitor
当我们需要实时监控指文件的创建、修改、删除,以及目录下文件的创建、修改和删除,在JDK7前我们只能靠轮询方式遍历目录或者定时检查文件的修改事件,这样效率非常低,性能也很差。因此在JDK7中引入了WatchService。不过考虑到其API并不友好,于是Hutool便针对其做了简化封装,使监听更简单,也提供了更好的功能。当涉及到二层文件夹目录的时候,需要主要把目录放入到文件监听进去。原创 2023-02-15 14:08:32 · 1066 阅读 · 0 评论 -
@PostConstruct 初始化加载
PostContruct是spring框架的注解,在方法上加该注解会在项目启动的时候执行该方法,也可以理解为在spring容器初始化的时候执行该方法。原创 2023-02-15 14:02:38 · 487 阅读 · 0 评论 -
Springboot 引入第三方jar包,并打包运行
需要把这个写到pom.xml 里面,因为打包默认不打印system的包,不加此配置,本地可以运行,因为本地可以再lib下找到外部包,但是服务器上jar中是没有的。把jar包放在resources下面或者你想放哪里都可以,但是pom引入的时候要注意。打开jar包,里面的第三方的jar也进去了。然后现在进行启动和打jar包,都是没问题的。然后需要把这个加入到pom.xml下面。另外注意给个版本号,不然打包也报错。然后就可以正常启动了。后面标蓝的这两段是要加的(接下来看pom.xml。接下来就是打包环节了。原创 2022-11-10 14:15:15 · 3997 阅读 · 1 评论 -
postgresql循环取序列值相同,使用@Transactional注解
在spring集成mybatis时,如果不开启事务,spring对于每次查询会使用不同的sqlSession,因此mybatis一级缓存是不生效的(每次查询都是一个单独的事务);如果开启事务,spring在事务内会使用同一个sqlSession进行查询,这个时候mybatis一级缓存是生效的,而这个时候,在某些场景下我们只根据隔离级别作出的判断可能就不对了,需要注意。mybatis一级缓存默认开启,是sqlSession级别的缓存,在同一个sqlSession下,对相同条件的sql查询结果会进行缓存。原创 2022-10-26 16:02:57 · 840 阅读 · 0 评论 -
StringBoot 集成 MQTT (详细)
MQTT是一个物联网传输协议,它被设计用于轻量级的发布/订阅式消息传输,旨在为低带宽和不稳定的网络环境中的物联网设备提供可靠的网络服务。源代码开放,都可以用,也进一步推动了MQTT的发展,百度云、阿里云、中国移动onenet等几乎所有的开放性物联网平台都支持MQTT;MQTT是一种消息队列协议,使用发布/订阅消息模式,提供一对多的消息发布,解除应用程序耦合,相对于其他协议,开发更简单;MQTT协议的服务端程序已经非常成熟,PHP,JAVA,Python,C,C#等系统语言都可以来向MQTT发送相关消息;原创 2022-10-14 10:44:05 · 1626 阅读 · 0 评论 -
Java 判断一个点是否在一个多边形内
提供:监测点的X轴、Y轴、多边形的多个坐标。如果存在多边形里面返回true,反之返回false。原创 2022-10-13 13:56:04 · 1931 阅读 · 0 评论 -
Java JDBC批处理 批量提交
在实际业务场景中,我们需要批量修改的时候恰好还有where条件,导致我们只能一条一条提交,没提交一次,又要获取一次jdbc连接,如果是十几条还好,但是上百条,就导致了响应速度慢。那么批处理就是解决这个问题,获取一次连接,然后把多条sql拼接成一条去执行。封装成了一个工具类,dataSource需要在调用方法的时候提前获取一下项目的jdbc连接。...原创 2022-08-30 10:54:15 · 4123 阅读 · 0 评论 -
Springboot 配置Logback 与 分层打包
同样是由log4j的作者设计完成的,拥有更好的特性,用来取代log4j的一个日志框架。是slf4j的原生实现,也就是说logback实现slf4j是不消耗内存和计算开销的。Logback替代log4J的十大理由:自行百度吧,总而言之,就是logback好用就对了。原创 2022-08-24 16:08:59 · 819 阅读 · 0 评论 -
Linux 安装docker-compose 编排工具并启动
到/usr/local/bin/并改名mvdocker-compose-Linux-x86_64/usr/local/bin/docker-compose。修改damon.json的内容vim/etc/docker/daemon.json。添加权限chmod+x/usr/local/bin/docker-compose。下载docker-compose-Linux-x86_64。创建文件夹mkdir/etc/docker。跳转cd/etc/docker。两个包放在word里面了。...原创 2022-08-01 15:34:52 · 1592 阅读 · 2 评论 -
Windows 安装docker(详细图解)
打开任务管理器(CTRL+ALT+DELETE)->选择性能->CPU->虚拟化,确认是否已启用。安装完wsl_update_X64.msi后,开始安装DockerDesktop。把代码复制到Hyper-V.bat里面。如果进来没找到Hyper-v。查看docker是否安装成功。...原创 2022-08-01 14:43:09 · 22909 阅读 · 8 评论 -
Java 生成Excel(多sheet )并通过浏览器下载
一、当遇到多sheet导出,并需要通过浏览器下载二、在方法里面调用的工具类ExcelUtil.exportExcel原创 2022-07-06 16:00:23 · 3232 阅读 · 0 评论 -
MySQL 常用函数 视图
替换用户名:保留两位小数:转类型当月时间的同月12月当日小时前推24小时当日天前推30天当月前推12月当日前推7天有常用的函数或者视图欢迎补充!!!!会持续更新此文字原创 2022-06-17 10:55:31 · 245 阅读 · 0 评论 -
mybatis中批量插入,若存在,则更新;不存在,则新增
直接撸代码一、mapper层二、mybatis层三、表结构如果是你要根据s_id 和 s_a_type 这两个字段去过滤是否存在,那就在表里面需要给这两个字段增加唯一键原创 2022-06-07 16:03:44 · 7764 阅读 · 0 评论 -
springboot 配置简单的定时任务
一、在启动类上面增加@EnableScheduling二、然后再写一个class加入自己需要注入的service,然后 @Scheduled 注释里面写cron表达式【cron在线表达式】原创 2022-06-06 16:55:11 · 174 阅读 · 0 评论 -
springboot 引入 mybatis、mysql 【新手上路】
一、首先需要导入依赖二、配置config三、配置yml四、方便查看打印的mysql配置logging在yml里面配置原创 2022-06-06 16:47:49 · 574 阅读 · 0 评论 -
IDEA 创建springboot项目【新手上路】
一、Spring Boot是什么?Spring框架是Java平台上的一种开源应用框架,提供具有控制反转特性的容器。Spring Boot基于Spring4.0设计,不仅继承了Spring框架原有的优秀特性,而且还通过简化配置来进一步简化了Spring应用的整个搭建和开发过程。另外SpringBoot通过集成大量的框架使得依赖包的版本冲突,以及引用的不稳定性等问题得到了很好的解决。SpringBoot所具备的特征有:(1)可以创建独立的Spring应用程序,并且基于其Maven或Gradle插件,可以原创 2022-06-06 16:40:35 · 206 阅读 · 0 评论 -
Java 获取请求的地址里面的动态值
主要就是通过@PathVariable 注解来获取RequestMapping("listData_{key}") public voidlistData(HttpServletRequest request, HttpServletResponse response, @PathVariable(value = "key") String key) throws Exception { System.out.println(key); }...原创 2022-04-22 10:16:11 · 601 阅读 · 0 评论 -
Java Post/Get请求 工具类
一、工具类import com.alibaba.fastjson.JSONObject;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apache.http.conn.ConnectTimeoutExce原创 2022-04-22 10:12:37 · 4222 阅读 · 0 评论 -
Java csv导出下载
主要用于页面直接下载csv。上代码 !serviceImpl: public void deviceExportExcel(HttpServletResponse response) throws Exception { Map<String, String> header = new LinkedHashMap<>(); header.put("name", "名字"); header.put("age", "年龄");原创 2022-03-02 14:56:22 · 2855 阅读 · 4 评论 -
Java 通过Websocket 实现消息推送
一、WebSocket?WebSocket协议是基于的一种新的网络协议。它实现了浏览器与服务器全双工(full-duplex)通信——允许服务器主动发送信息给客户端。二、实践:【Spring注入service】import com.alibaba.fastjson.JSON;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.factory.annotation.Autowired;import org.原创 2022-03-02 14:29:56 · 4845 阅读 · 1 评论 -
Java 小数点后为零则显示整数,否则保留两位小数
public static void main(String[] args) { String number = "90.3635"; if(StringUtils.isNotBlank(number)){ double n = Double.valueOf(number); BigDecimal bg = new BigDecimal(n).setScale(2, RoundingMode.UP); .原创 2022-02-11 16:26:34 · 2825 阅读 · 0 评论 -
Redis 消息订阅(直接订阅SpringBoot 配置的Redis 和 自定义Redis连接)
如果发布的redis是当前springboot配置的Redis,那就直接进行订阅!import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.context.annotation.Configuration;import org.springframework.data.redis.co原创 2022-02-07 18:17:25 · 1215 阅读 · 0 评论 -
Spring注入service为null。 (非controller,静态,一般类)
起因:在编写Redis 订阅类的时候,需要处理数据,直接@Resource获取Service导致一直报空指针【java.lang.NullPointException】。然后打断点才发现是Service没有注入。导致的null。解决方案:这样就完美解决!!!...原创 2022-02-07 17:59:40 · 1598 阅读 · 0 评论 -
Starting MySQL.. ERROR The server quit without updating PID file (/xxx/xxx/xxx/mysqldb/xxx..pid)
一、问题:mysql为8.0的时候,你在/etc/my.cnf下面配置lower_case_table_names=1就会启动报错。进入mysql日志查看:cd /usr/local/mysql/mysqldb/在此目录下面找到localhost.localdomain.err 。日志报错时间时间格式是ISO8601(显示时间上面+8小时就可)我是19点21启动报错的。所以看到时间为2022-01-05T11:21:02.xxx。那就是我的报错了。很显然的就看到了报错二、解决..原创 2022-01-05 20:06:50 · 1650 阅读 · 0 评论 -
layui获取数据表头和数据表,并重写导出方法
我们在使用layui自带的导出的情况下会发现数据如果出现中间用字符(,-)等分割开就会出现数据错位,这时候就会想着从新写一个导出方法,所以这时候我们就要获取表头和表数据,但是获取出来的表数据是无序,没办法和表头一一对应,这时候就要从新洗数据,让数据和表头一样对应,从而让导出不错位一、前端代码:HTML://数据表格table<table class="layui-hide" id="table-radio4" lay-filter="table-radio4"></...原创 2021-04-10 15:53:38 · 1996 阅读 · 0 评论 -
Java——POI常用方法(字体,合并单各种样式)
在我们使用poi进行Excel绘制各种样式的时候难免会出现一些问题,接下来就会把常用的一些问题进行汇总,并给出解决方法,如:合并单元格,合并单元格边框线,字体各种样式等。。。。::."xls"//XSSF:".xlsx"XSSFWorkbook workbook = new XSSFWorkbook();// 创建一个工作表sheetXSSFSheet sheet = workbook.createSheet();XSSFRow row = sheet.createRow(0); //获.原创 2021-04-10 15:53:12 · 1655 阅读 · 0 评论 -
Java 富文本内容转化word导出
一、需求:当创建使用富文本编辑器,操作完的数据,传输到后台都是带有html标签的。如:<h1>标题头</h1><h2>第二个标题</h2><a href="www.baidu.com">百度搜索</a>如果我们想把富文本数据转换为Word内容,并下载下来。二、解决方案Word是完全支持html标签的,但是我们获取到的富文本内容并不是完整的html代码,所有我们需要先补全html标签,然后转码,然后输出。上代码原创 2021-03-02 17:31:49 · 10414 阅读 · 21 评论 -
SpirngBoot @ConditionalOnProperty 详解
@ConditionalOnProperty一般使用在配置类中,来控制配置类是否生效。// prefix:表示属性的前缀// name:与prefix配合使用,组成完整的属性名称// havingValue:是与配置的值对比值,当两个值相同返回true,配置类生效.@ConditionalOnProperty(prefix = "scheduling",name ="enabled",havingValue = "true")scheduling.enabled=true...原创 2021-03-01 15:09:54 · 278 阅读 · 0 评论 -
Java 删除目录以及目录下的文件
/** * 删除目录以及目录下的文件 * @param sPath 被删除目录的路径 * @return 目录删除成功返回true,否则返回false */ public static boolean deleteDirectory(String sPath) { //如果sPath不以文件分隔符结尾,自动添加文件分隔符 if (!sPath.endsWith(File.separator)) { sP.原创 2021-02-02 18:21:33 · 376 阅读 · 1 评论 -
Java 模糊搜索本地文件夹下的文件
/** * 获取文件夹下所有文件的名称 + 模糊查询(当不需要模糊查询时,queryStr传空或null即可) * 1.当路径不存在时,map返回retType值为1 * 2.当路径为文件路径时,map返回retType值为2,文件名fileName值为文件名 * 3.当路径下有文件夹是,map返回retType值为3,文件名fileNameList,文件夹名列表folderNameList * @param folderPath 路径 * @p.原创 2021-02-02 18:19:43 · 1614 阅读 · 0 评论 -
Java PDF增加水印
import com.lowagie.text.pdf.*;import javax.print.attribute.HashPrintRequestAttributeSet;import javax.print.attribute.PrintRequestAttributeSet;import javax.print.attribute.standard.Copies;import javax.swing.*;import java.awt.*;import java.awt.geom.*.原创 2021-02-02 18:18:14 · 232 阅读 · 1 评论 -
String 字符串内容前面加0
public static void main(String[] args) { int num = 1; // 0 代表前面补充0 // 3 代表长度为3 // d 代表参数为正数型 String str = String.format("%03d", num); System.out.println(str); // 001 } ...原创 2021-01-18 18:00:36 · 3023 阅读 · 0 评论 -
String 字符串内容查看是否是数字
public static void main(String[] args) { String a = "123213"; //正则表达式 String rex = "^[1-9]\\d*(\\.\\d+)?$"; if(Pattern.compile(rex).matcher(a.trim()).find()){ //如果是数字 返回true System.out.print...原创 2021-01-18 17:57:51 · 404 阅读 · 0 评论 -
二维码生成【前端,后端】
二维码生成,可以在后端生成图片,存储在服务器,然后把虚拟路径返回到前端,也可以把数据传输到前端,通过前端框架生成在线二维码,在前端生成二维码不占用内存,但是网络原因会影响显示。一、后端:String name = UUID.randomUUID()+".png";//通过UUID先生成图片的名称File logoFile = new File(path+File.separator+"4.png"); //文件创建图片File QrCodeFile = new File(path+File.原创 2021-01-08 18:19:16 · 3778 阅读 · 1 评论 -
内网变外网【前后端配合调试必备】
推荐两款软件都不收费,都有优缺点,自行选择!!!!!一、路由侠页面简洁明了,使用免费版就可以满足日常需求了。建立一个映射最后一定别忘记打开在线,出现延迟的,说明连接成功二、natapp缺点:需要安装,每次启动服务,域名发送变化。有点懒了。。。因为官方给的很明确。连接如下:https://natapp.cn/article/natapp_newbie...原创 2020-08-09 22:53:26 · 815 阅读 · 0 评论 -
JSON解析:com.alibaba.fastjson.JSONException: syntax error, expect {, actual string, pos xxx,...
["",{"create_userid":123,"create_timeStr":"2020-07-22"}]JSON.parseArray(java.lang.String text,java.lang.Class<T> class)使用这个方法,一定不能存在空对象,不然就会报解析异常JSONArray objects = JSON.parseArray(text);JSONArray arr = new JSONArray(); for (in...原创 2020-07-24 18:11:10 · 1825 阅读 · 0 评论 -
Mysql多条数据合并一条数据(单个字段)
业务场景:当需要把两个数据合并在一起进行展示使用到函数:group_concat如果想将两个一起输出成CLD,PS完美!!!原创 2020-07-24 17:59:08 · 2707 阅读 · 0 评论 -
idea 配置git 并从GitLab拉取项目【新手上路】
如有错误欢迎指导!首先需要安装Git1.官网下载安装包(根据自己系统来下载)2.然后跟着提示走。。。。(next -> next....)3.安装成功后会出现(Git Bash Here【写git命令】和 Git Gui Here ),这就表示安装成功配置IDEA1.进入IDEA File -> Settings.. -> 配置git从GitLab上面拉取项目1.进入gitLab2.复制地址后,放到...原创 2020-07-23 09:57:33 · 13673 阅读 · 5 评论