java
Bruk.Liu
Java开发
展开
-
Java循环依赖使用@Lazy(懒惰的)注解解决
SpringIoC容器会在启动的时候实例化所有单实例 bean 。如果我们想要实现 Spring 在启动的时候延迟加载 bean,即在首次调用bean的时候再去执行初始化,就可以使用 @Lazy 注解来解决这个问题。原创 2023-02-07 11:57:24 · 2062 阅读 · 0 评论 -
Excel操作
excel操作原创 2023-01-03 18:57:45 · 149 阅读 · 0 评论 -
记一次pagehelper失效问题
分也失效原创 2022-12-31 23:00:58 · 200 阅读 · 0 评论 -
idea全局搜索没有match case选项
idea没有全局搜索问题没有match case选项原创 2022-06-01 16:45:37 · 598 阅读 · 0 评论 -
关于子查询与left join查询数据的小实验
数据库共20W条数据(无索引)链接查询:SELECT api.*, uu.user_name FROM apl_application api LEFT JOIN uas_use uu ON uu.user_id = api.cust_manager_id;子查询:SELECT *, ( SELECT uu.user_name FROM uas_use uu WHERE uu.user_id = api.cust_manager_id ) FROM apl_ap原创 2022-05-25 17:00:16 · 144 阅读 · 0 评论 -
flink从数据库读数据
package com.example.flink;import org.apache.flink.api.common.typeinfo.BasicTypeInfo;import org.apache.flink.api.common.typeinfo.TypeInformation;import org.apache.flink.api.java.ExecutionEnvironment;import org.apache.flink.api.java.operators.DataSourc.原创 2022-03-22 16:48:17 · 4476 阅读 · 1 评论 -
activiti入门
springboot项目pom<?xml version="1.0" encoding="UTF-8"?><project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache原创 2022-01-25 18:22:15 · 262 阅读 · 0 评论 -
docker启动shell
#操作/项目路径(Dockerfile存放的路劲)BASE_PATH=/home/project# 源jar路径 SOURCE_PATH=/var/lib/jenkins/workspace#项目名称PROJECT_NAME=Eureka#docker 镜像/容器名字或者jar名字 这里都命名为这个SERVER_NAME=eureka-0.0.1-SNAPSHOT#容器idCID=$(docker ps | grep "eureka" | awk '{print $1}')#镜像id.原创 2022-01-16 01:54:02 · 776 阅读 · 0 评论 -
单独用一个线程执行任务
/** * @Author ex-liujiwei * @Date 2022/1/6 14:28 */@Servicepublic class ConcurrentService { public static void test01(){ // 创建线程池 ThreadFactory threadFactory = new ThreadFactoryBuilder().setNameFormat("liujiwei-pool-%.原创 2022-01-06 15:30:59 · 473 阅读 · 0 评论 -
获取用户ip地址
package com.example.demo.util;import lombok.extern.slf4j.Slf4j;import org.slf4j.Logger;import org.slf4j.LoggerFactory;import javax.servlet.http.HttpServletRequest;import java.io.IOException;/** * @Author ex-liujiwei * @Date 2021/12/14 11:33 */.原创 2021-12-14 11:45:19 · 665 阅读 · 0 评论 -
BeanWrapperImpl属性映射
@Slf4jpublic class test03 { public static void main(String[] args) { Users users = new Users(); users.setId(1); users.setName("张三"); getProperty(users); } public static void getProperty(Object objec.原创 2021-12-13 17:03:03 · 857 阅读 · 0 评论 -
JPA复杂查询条件构造(两种写法)
private Specification<Users> getSpecification(){ return (Specification<Users>)(root, query, criteriaBuilder)->{ List<Predicate> predicates = new ArrayList<>(); Predicate gtId = criteriaBuilder...原创 2021-11-23 18:08:58 · 1214 阅读 · 0 评论 -
Sets.difference筛选set集合
public static void main(String[] args) { HashSet set1 = new HashSet(); set1.add(1); set1.add(2); set1.add(3); set1.add(4); set1.add(5); HashSet set2 = new HashSet(); set2.add(1); set..原创 2021-11-22 17:27:14 · 1898 阅读 · 0 评论 -
关于接口重复提交的解决方案
1,前端控制,按钮点击后置灰,无法再次点击2,前端重定向,就是页面点击了提交按钮后,跳转到其他页面,防止再次点击3,重点:后台接口控制原理解释:第一次访问接口时,将某个标志存入redis,设置过期时间,例如三秒内访问超过一次就算重复提交,下次再访问时先查询redis中是否有缓存,有则说明3秒没过,返回错误信息,如果没有就是超过三秒了,可以访问示例:第一步:写个接口@Inherited@Target(ElementType.METHOD)@Retention(RetentionP原创 2021-11-15 18:08:01 · 2483 阅读 · 0 评论 -
mysql主从复制安装配置(附异常处理)
mysql主从复制安装配置1、基础设置准备#操作系统:centos7.5#mysql版本:5.7#两台虚拟机:node1:192.168.5.10(主)node2:192.168.5.12(从)2、安装mysql数据库#详细安装和卸载的步骤参考对应的文档3、在两台数据库中分别创建数据库--注意两台必须全部执行create database msb;4、在主(node1)服务器进行如下配置:#修改配置文件,执行以下命令打开mysql配置文件vi /etc原创 2021-10-19 17:05:58 · 104 阅读 · 0 评论 -
log4j配置文件properties
### set log levels ###log4j.rootLogger =DEBUG,console,file#控制台输出的相关设置log4j.appender.console = org.apache.log4j.ConsoleAppenderlog4j.appender.console.Target = System.outlog4j.appender.console.Threshold=DEBUGlog4j.appender.console.layout = org.apache.原创 2021-09-28 15:06:07 · 79 阅读 · 0 评论 -
JAVA-快速排序
import java.util.Arrays;public class quickSort { public static void main(String[] args) { int[] arr ={3,4,10,6,6,7,5,-2,10,8}; System.out.println("排序前:"+ Arrays.toString(arr)); quickSort(arr,0,arr.length-1); System.o..原创 2021-09-14 10:16:50 · 80 阅读 · 0 评论 -
java多个文件上传问题
问题,后台怎么接受多个,前端用相同的Key即可传一个数组文件,后台数组接受即可 var id = [[${id}]] var formData = new FormData(); function submitHandler() { if($("#fileinput")[0].files[0] == null){ alert("请选择文件"); return; } for (var i =原创 2021-09-09 12:39:02 · 602 阅读 · 0 评论 -
js中将URL中的utf-8字符串转成中文
// js中URL的utf-8字符串转成中文 function revertUTF8(szInput) { var x,wch,wch1,wch2,uch="",szRet=""; for (x=0; x<szInput.length; x++) { if (szInput.charAt(x)=="%") { wch =parseInt(szInput.ch.原创 2021-09-01 11:04:18 · 570 阅读 · 0 评论 -
Kali Linux系统安装Fluxion
安装fluxion:root@kali:~# git clone https://github.com/FluxionNetwork/fluxion.gitroot@kali:~# cd Desktoproot@kali:~/Desktop# cd fluxionroot@kali:~/Desktop# ./fluxion.sh更新系统及所有组件:root@kali:~# apt-get updateroot@kali:~# apt-get full-upgrade作者:.原创 2021-08-24 17:17:12 · 1800 阅读 · 0 评论 -
Kali Linux 不能联网上网 解决方法
root@kali:~# ifconfigeth0up //启用网卡root@kali:~# ifconfig -a //查看IProot@kali:~# dhclienteth0// 分配IP原创 2021-08-24 16:22:54 · 1770 阅读 · 2 评论 -
数据流下载图片
package com.test01;import java.io.*;import java.net.*;import java.nio.file.Files;import java.nio.file.Path;import java.nio.file.Paths;public class TestString { public static void main(String[] args) throws IOException { HttpDownload("h.原创 2021-08-23 18:05:00 · 115 阅读 · 0 评论 -
基于注解实现redis缓存数据
1,自定义一个注解,参数key是存到redis的key,时间就是缓存多久,默认是0,可以根据自己的业务去顶一个默认值package com.clpc.un.pafp.statistics.config;import java.lang.annotation.ElementType;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import java.lang.annotati原创 2021-08-23 15:23:42 · 537 阅读 · 0 评论 -
若依免密登录
最近做了一个微信扫码登录的功能整合到若依中,当扫码完成后,如何确定是哪个用户,以及权限有哪些,因为shiro的加密基于MD5所以密码不可逆,则不能从数据库查询后再解密,简单一些的话可以把需要登录的用户账号密码写死在配置文件中,我之前就是这么干的,但是这样做的话一旦修改密码,则需要修改配置文件,所以我想到了免密登录,在网上查了好多shiro的改造,也没整明白怎么回事,继承的类也是不知道干嘛的,所以自己研究了一下若依的实现过程,终于实现了可免密登录第一步:如果需要免密登录就需要有个标志...原创 2021-08-11 17:10:28 · 6342 阅读 · 6 评论 -
HttpClient在发送请求时返回的中文乱码?
在项目中使用HttpClient请求时返回数据中文为乱码解决方案:创建客户端时添加设置返回编码格式HttpClient httpClient = new HttpClient();httpClient.getParams().setParameter(HttpMethodParams.HTTP_CONTENT_CHARSET, "UTF-8");...原创 2021-07-30 11:02:11 · 772 阅读 · 0 评论 -
thymeleaf获取数据去掉小数点
"${#numbers.formatInteger(itemDesc.insuredAmount,0)}"原创 2021-07-21 11:20:30 · 923 阅读 · 0 评论 -
cloud模块打包运行找不到主启动类
<build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> <configuration> .原创 2021-06-21 16:08:31 · 225 阅读 · 0 评论 -
linux环境配置
1,申请好linux服务器之后,首先使用xshell连接2,安装jdk:在/usr/local/src 路径下上传JDK安装包(2):解压jdk tar -zxvf jdk-8u51-linux-x64.tar.gz(3):删除多余的安装包文件.修改文件名称3修改环境变量:#设定jdk环境export JAVA_HOME=/usr/local/src/jdk1.8export PATH=$JAVA_HOME/bin:$PATHexport CLASSPAT...原创 2021-06-21 10:02:38 · 79 阅读 · 0 评论 -
java线程之间通讯之精准唤醒指定线程
package com.liu.pc;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;/** * Bruk.liu * A执行完调用B,B执行完调用C,C执行完调用A */public class C { public static void main(String[.原创 2021-06-11 10:58:11 · 6949 阅读 · 1 评论 -
java使用Lock锁实现线程的通讯
package com.liu.pc;import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class B { public static void main(String[] args) { Data2 data = new Data2(.原创 2021-06-11 10:28:31 · 5625 阅读 · 1 评论 -
java线程之间通信及虚假唤醒问题
package com.liu.pc;/** * 线程之间通讯问题 等待唤醒,通知唤醒 * 线程交替执行 A B操作同一个变量 * A+1 * B-1 */public class A { public static void main(String[] args) { Data data = new Data(); new Thread(()->{ for (int i = 0; i < 10; i++) {.原创 2021-06-11 09:50:26 · 6611 阅读 · 0 评论 -
Java多线程之间的通信
重点:等待->执行业务->通知其他线程package com.liu.pc;/** * 线程之间通讯问题 等待唤醒,通知唤醒 * 线程交替执行 A B操作同一个变量 * A+1 * B-1 */public class A { public static void main(String[] args) { Data data = new Data();//A线程执行 new Thread(()->{原创 2021-06-11 09:40:24 · 6586 阅读 · 3 评论 -
Java中Lock锁的基本使用
1,创建锁2,加锁3,解锁package com.liu.demo01;import java.util.concurrent.locks.Lock;import java.util.concurrent.locks.ReentrantLock;public class SaleTickeDemo01 { public static void main(String[] args) { Ticket ticket = new Ticket();原创 2021-06-11 09:14:56 · 10320 阅读 · 0 评论 -
logback配置
<?xml version="1.0" encoding="UTF-8"?><configuration scan="true" scanPeriod="60 seconds" debug="false"><!--配置集中管理属性,可以根据name直接使用value值%5: level%d{yyyy-MM-dd}: 时间格式%c 完整类名%M 为method%L 行号%thread 线程名称%m或者%msg 具体信息%n 换行--><pro.原创 2021-05-06 16:36:48 · 212 阅读 · 0 评论 -
关于若依项目修改包名的常见问题
若依的包名默认是com.ruoyi但是在使用的时候要根据自己的需要进行更改,在更改的过程中遇到一系列问题,我们来一一解决(一)直接先把包名改了我先把包名直接重命名,这个时间有些长,可以慢慢等待,改完包名之后,我就直接运行了,结果.........我觉得是idea的启动器记录的是之前路径下的启动类,改完包名路径就不存在了,所以报错,然后我通过直接运行main方法来启动,没有再报找不到主启动类,报了一个其他的错误,创建shiro相关bean的时候出了错误,找了好久,后来发现不..原创 2021-05-06 10:48:33 · 8206 阅读 · 4 评论 -
SpringBoot整合多数据源
场景:同一项目需要操作两个数据库1,yml文件添加两个数据源,并分别命名spring: datasource: test1: jdbc-url: jdbc:mysql://9.106.0.137:13306/chinalife?useUnicode=true&characterEncoding=utf-8&autoReconnect=true&zeroDateTimeBehavior=convertToNull&allowMultiQueri转载 2021-04-25 08:48:31 · 585 阅读 · 0 评论 -
bootstrapTable数据不换行
bootstrapTable数据不换行(在加载位置放style样式)<div class="col-sm-12 select-table table-striped"> <table id="bootstrap-table" style="overflow: hidden;text-overflow: ellipsis;white-space: nowrap;"></table></div>原创 2021-01-29 09:43:07 · 1817 阅读 · 0 评论 -
LibreOffice实现word转pdf
1,下载安装LibreOffice(根据系统下载对应版本),这里提供windows64的版本(LibreOffice_6.2.8_Win_x64.msi)https://download.csdn.net/download/weixin_46054799/137639832,实现过程主要代码其实只有一句libreOfficePath 是软件安装的根目录(C:\Program Files\LibreOffice\program)注意是program文件夹;command = libreO原创 2020-12-23 14:58:37 · 1715 阅读 · 2 评论 -
关于MessageFormat.format文字格式化的使用
最近的工作中涉及到将时间转换为中文的固定格式:获取的时间:需要的时间格式:自2020年01月02日零时起至2021年01月02日二十四时止。方案:1,创建一个常量字符串,将要替换的时间用{ }代替,并定义下标private static final String INS_PERIOD_PATTERN = "自{0}年{1}月{2}日零时起至{3}年{4}月{5}日二十四时止。";2,将获取的时间进行截取并存入对应的数组,则开始数组[2020,01,02],结束数组[202原创 2020-12-23 14:45:17 · 616 阅读 · 0 评论 -
webController基本使用
package com.example.swagger;import cn.edu.hfut.dmic.webcollector.model.CrawlDatums;import cn.edu.hfut.dmic.webcollector.model.Page;import cn.edu.hfut.dmic.webcollector.plugin.rocks.BreadthCrawler;import java.io.*;public class RediffNewCrawler exten原创 2020-12-17 16:55:36 · 1613 阅读 · 0 评论