自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(93)
  • 收藏
  • 关注

原创 java导出word使用模版与自定义联合出击解决复杂表格!

如果只是这样的话,使用freemarker应该都可以搞定,但是他一列中内容相同的单元格,需要合并。如图所示,这里的所有数据行都是动态的,需要根据查询出来的数据循环展示。这对于表格样式固定的freemarker就搞不定了。关于版本问题,老版比新版好用,新版太过规范。学习成本一天半,刚入门的新手建议不要看了。,用来填充数据的,使用双花括号标记。放在根目录下面,不然找不到哦。

2023-12-13 08:24:19 958

原创 mysatis中子查询剖析

mybatis中写子查询坑爹

2023-04-20 08:33:26 156 1

原创 BUG库,列举我从今天开发遇到的BUG

列举我开发遇到的BUG

2023-02-20 07:49:21 500

原创 java使用libreOffice预览word,ppt,txt等文档

java使用libreOffice预览word,ppt

2022-09-09 10:47:06 4817 3

原创 jar包打成docker镜像文件推送至服务器,服务器拉取并重启容器

docker 推拉镜像

2022-08-02 08:26:50 481

原创 windows系统 记录一次mysql更新版本

一次需求需要用到mysql的全文索引功能,发现还挺简单,加了fullText索引之后英文可以,中文不行, what? 百度之后得知需要在MySql5.7.6之后新增的全文解析器Ngram。使用mysql -v 时候发现我的mysql版本是5.7.17,囧,还要升级版本才能使用ngram分词。那我们进入mysql中文官网下载适合版本的mysql我这里选择的是5.7.36下载好了先放一边,我们先把原来的mysql卸载干净,备份完整首先把自己的sql文件导出来备份一份,我这里就用navicat导出来就行

2022-04-18 10:55:28 486

原创 记录一次jar文件在windows系统下开机自启

自启有很多中方式,其中最好维护的一种方式是把启动命令注册成服务首先去 https://github.com/kohsuke/winsw/releases 下载WinSW软件我这里找的2.x的版本,3.x的版本是压缩包,下载这个exe和xml文件3. 下载下来以后把文件放到jar包同目录下,并改为同名,像这样(这里的日志文件是我服务启动之后自动生成的)4. 下面我们修改一下xml文件的配置<service> <!-- ID of the service. It should

2022-03-09 15:55:08 679

原创 java使用freemarker模板生产word遇到的各种问题

首先先上成功的代码,然后再讲碰到的各种问题导入freemarker的maven坐标 <!--freemarker 生成word--> <dependency> <groupId>org.freemarker</groupId> <artifactId>freemarker</artifactId> <version>2.3

2021-12-28 11:16:11 2382 2

原创 学习vue安装webpack以及cli

这些软件都是基于node环境的,确保自己电脑上已经安装了nodenode -v 查看node -v安装webPacknpm install [email protected] -g查看webpack版本webpack -v安装脚手架npm install @vue/cli -g查看脚手架版本vue --versionCLI3或4要是用CLI2方式创建项目还要额外安装一个npm install @vue/cli-init -g这是CLI2创建项目的方式...

2021-08-25 09:50:54 276

原创 码云修改了密码之后的种种坑

码云修改了密码,然后git各种拉取提交失败…ssh秘钥要重新生成windows管理凭据里面码云的凭据密码修改git工具里执行忘掉原来的密码,再次与仓库建立连接要重新输入账号密码git config --system --unset credential.helper...

2021-08-13 15:12:57 173 1

原创 记录一次java生成条形码并调用打印机打印

生成条形码需要ja坐标: <!--生成条形码--> <dependency> <groupId>net.sf.barcode4j</groupId> <artifactId>barcode4j-light</artifactId> <version>2.0</version> </depe

2021-08-12 09:57:48 1908

原创 poi 简单导出wrod

hutool工具类也有导出word的封装,本来图方便想用它的,但是后来发现导出的文档数字和汉字不是一个字体,也就是一行里面会有不同的字体,hutool只能一段一段的换字体,所以换了poi先看看效果:这里汉字是宋体,数字和字母是Times New Roman下面是我写的一个测试导出类:import org.apache.poi.xwpf.usermodel.ParagraphAlignment;import org.apache.poi.xwpf.usermodel.XWPFDocument;imp

2021-07-22 13:35:53 327

原创 前后端分离下spring security 跨域问题

当我用nginx正向代理前台到后端服务时,浏览器报了CROS的错误,我就纳闷了,我后台配置了跨域啊package com.hongseng.app.config.webmvc;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Configuration;import org.springframework.web.servlet.config

2021-07-13 10:48:12 354

原创 前后端分离部署nginx路由配置各种坑

需求:两个前台端口访问一个后台服务(正向代理…)需求够奇葩nginx.conf#user nobody;worker_processes 1;#error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;#pid logs/nginx.pid;events { worker_connections 1024;}http

2021-06-25 16:51:00 1317

原创 Navicat premuium 免费使用注意事项

主机可以不断网Navicat 使用进程一定要关闭,否则注册机匹配不到navicat.exe。

2021-06-24 07:53:22 178

原创 windows 使用mysqldump 定时备份数据库数据/导入sql文件

mysql本身为我们自己提供的有数据库sql文件导出工具:mysqldump在此进入cmd窗口中键入命令:-u 用户名-p 密码--databases 导出那个数据库> 导出的路径mysqldump -uroot -proot --databases jbxq_project > C:/var/guoheng/sql/jbxq.sql此时在目录中已经生成了数据库jbxq_project的sql文件如果不把mysqldump加入Path环境变量的话,我们写脚本就要使用全路径

2021-06-23 09:42:20 1310

原创 java使用压缩流把文件打成压缩包下载

需求:前台传过来一个url数组,其中是每个文件的路径,后台需要获取到每个文件然后将其打成压缩包返回流给前台下载核心是:ZipOutputStream,废话不多说,上代码savePath 是我在yml配置文件里配置好的文件存储路径在使用谷歌(火狐可以)下载过程中遇到问题:文件名中含有半角符号无法下载,因为文件名是前台命名的,所以这个我就随便命名个1.zip解决一下文件名有中文要用iso_8859_1转义一下,不然会乱码(使用swagger测试时一直都是乱码,是swagger的问题,使用浏览器直接下

2021-06-17 08:17:41 1695

原创 Hutool的Excel工具类

Hutool的Excel工具类和poi版本兼容性不好,很多类和方法找不到现在固定一个hutool和poi的版本, <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.0.9</version> </d

2021-06-07 08:36:22 988

原创 java除法防止精度缺失

保证a,b是double或者float类型 // 小数精确两位 DecimalFormat df = new DecimalFormat("#0.00"); String format = df.format( a / b);

2021-05-26 15:06:24 472

原创 读java编程思想看到一个遍历移除集合中元素的骚操作

原集合重新赋值到另一个集合中,一个集合遍历,一个集合移除,再也不用使用iterator List<Integer> integers = new ArrayList<>(); integers.add(1); integers.add(2); integers.add(3); integers.add(4); for (Integer integer : new ArrayList<&gt

2021-05-19 06:35:51 134

原创 发现一款java鉴权认证框架sa-token(目前好像坑还很多)

我们先看一下官网介绍,sa-token有什么功能链接: 官网地址主要是Shiro、Security配置繁琐,这个简单易上手这是他的大致功能点,今天我们搞点基础的springBoot 集成sa-token 并实现登录的验证和权限的鉴定首先导入maven坐标导入redis主要是sa-token使用内存来存取token的,使用redis第三方来做到重启项目token不丢,只需导入sa-token-redis的maven即可,不需要手动get,set(方便!) <!-- Sa-Token 权

2021-05-12 07:53:45 11174 17

原创 JDK8日记格式化API小记

ZonedDateTime zonedDateTime = ZonedDateTime.now(); LocalDateTime now = LocalDateTime.now(); String strTime = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:mm:ss").format(zonedDateTime); String strTime = DateTimeFormatter.ofPattern("yyyy/MM/dd HH:m...

2021-05-10 07:37:22 69

原创 一个list集合分页的工具类

package utils;import com.github.pagehelper.PageInfo;import java.util.List;/**@program: examination@description:@author: fbl@create: 2021-03-17 10:27**/public class ListPageUtil {public static PageInfo getPage(Integer page, Integer limit,

2021-05-09 06:22:45 124

原创 springBoot 在过滤器中如何捕获抛出的异常并自定义返回信息

一般springBoot自带的全局异常捕获机制都是在业务层发生的异常来进行捕获的,因为过滤器的执行顺序是在全局异常机制启动之前执行的,所以一旦过滤器中发生异常,全局异常捕获机制无法使用现在有一个围魏救赵的思路在过滤器中try-catch掉需要捕获的异常,然后转发到controller在重新抛出,这样全局异常机制可以起作用,返回自定义信息举个例子:SpringSecurity使用过滤器链来实现用户校验,一旦签名出错,过滤器链中抛出响应的异常,我们不想抛出异常,而是返回相关错误信息。此时使用上述思路很容

2021-01-20 09:15:05 7174 7

原创 JWT的token过期自动续期(无redis)

思路:由于jwt中的token过期时间是打包在token中的,用户登录以后发送给客户端以后token不能变化,那么要在用户无感知的情况下刷新token,就要在符合过期条件的情况下,在缓存一个新的token,作为续命token,再次解析不要解析客户端发送的token,要解析自己缓存的续命token主要逻辑:如果当前token没有超过过期时间的两倍,续期,超过了重新登录主要代码如下:package com.hongseng.app.config.jwtfilter;import enums.Tok

2021-01-19 16:17:44 7992 1

原创 三个线程依次输出ABC ReentrantLock的Condition用法

import java.util.concurrent.locks.Condition;import java.util.concurrent.locks.ReentrantLock;/** * @program: emergency * @description: 三个线程依次输出ABC ReentrantLock的Condition用法 * @author: fbl * @create: 2021-01-13 07:36 **/public class ThreadTest {

2021-01-14 16:05:36 359

原创 数据量大时使用多线程查询mysql数据和单线程对比

jdk8有一个异步类CompletableFuture可以使用线程池帮助我们实现多线程查询@PostConstruct private void multithreadingGetData() { // 数据总量 int count = 312; // 计算机可用cpu 设置线程池个数最好与之匹配 int availableProcessors = Runtime.getRuntime().availableProcessors();

2020-12-17 11:23:16 987 2

原创 SpringBoot和SpringSecurity整合一下JWT

上一篇写了SpringBoot整合SpringSecurity实现了登录认证和授权,但是SpringSecurity是把用户信息存储在session中的。对服务器有一定的压力,所以目前JWT这种服务无状态的校验方式比较流行我接着上篇的代码改进,将JWT融合进去首先导入JWT的maven坐标,我使用的是jjwt <properties> <java.version>1.8</java.version> <jjwt.versio

2020-12-03 08:33:31 807 2

原创 springBoot整合springSecurity基于RBAC权限验证

学学springSecurity的认证授权框架,后续整合一下JWT先说一下基于RBAC权限管理的思路在数据库中配置用户权限在每个接口上使用注解的形式说明接口需要用户拥有那个权限才能访问SpringSecurity使用拦截请求的方式对当前用户拥有的权限和接口需要的权限进行比对,包含则放行,不包含则拦截导入SpringSecurity的maven坐标 <dependency> <groupId>org.springframework.boot

2020-12-02 10:51:42 2308 4

原创 CompletableFuture异步请求远程资源

package java8.completableFuture;import java.util.concurrent.CompletableFuture;import java.util.concurrent.ExecutionException;import java.util.concurrent.ExecutorService;import java.util.concurrent.Executors;/** * @program: javaCodeThink * @descrip

2020-11-10 10:40:07 253

原创 给出一个int数组,算出所有int数字排列组合

比如给出{1,4,9}下面是程序输出:[[], [9], [4], [4, 9], [1], [1, 9], [1, 4], [1, 4, 9]]下面是完整代码:package java8.流.函数式编程;import java.util.*;/** * @program: javaCodeThink * @description: 对于{1,4,9} 我们可以分为包含1和不包含1的 * @author: fbl * @create: 2020-11-09 09:16 **/p

2020-11-09 10:13:41 588

原创 日期不要再用Date了,使用LocalDateTime和Instant!

看了java8实战一书,觉得表示时间以前用Date的字段属性应该可以用LocalDateTime来代替所以在项目中实验了一下:更换过后,启动果然报错:java.sql.SQLFeatureNotSupportedException; null; nested exception is java.sql.SQLFeatureNotSupportedException] with root cause使用百度大法之后,调高连接池版本得到解决原来是1.1.10以后实体类字段属性就可以使用Local

2020-11-06 14:40:56 1394 1

原创 mysql替换字段中字符串某一段内容

如图:我将要把127.0.0.1替换为空字符download_url 为你要替换的字段名sql为: update emergency_plan set download_url=REPLACE (download_url,'127.0.0.1','');

2020-11-04 09:02:05 655

原创 java下载url路径包含中文需要转义

大家看这个url:http://127.0.0.1:9997/file/江苏省地震应急预案(二级).docx应为url路径中有中文没有转义,输入流报错The valid characters are defined in RFC 7230 and RFC 398下面我们对中文路径进行截取转义 int lastIndexOf = downloadUrl.lastIndexOf('/'); String fileName = downloadUrl.substring(last

2020-11-03 16:43:43 1481

原创 windows下java -jar 后台运行以及杀死后台进程

在你的jar文件当前目录中建立一个bat文件:内容是:注意文件名要对应@echo off START "commandServer" javaw -jar command-0.0.1-SNAPSHOT.jar之后双击bat文件就能后台启动jar包啦杀死后台进程首先执行命令 (你要知道你运行的jar文件的端口号)netstat -aon | findstr "9998"可以看到PID为6452 然后在执行:tasklist|findstr "6452"最后我们就要杀死这个进程啦

2020-10-30 08:08:26 4578 2

原创 java8实战关于Stream的一篇测试题

package java8.流.筛序苹果;import java.util.*;import java.util.function.Predicate;import java.util.stream.Collectors;/** * @program: javaCodeThink * @description: * @author: fbl * @create: 2020-10-29 08:37 **/public class FlatMap { public static

2020-10-29 14:49:34 317

原创 AES加密 Illegal key size or default parameters

在使用AES加密的时候出现了密钥过长而报错了问题了解了一下AES加密密钥默认长度为16位如果过长就要替换jdk和jre里security下的两个jar文件这两个文件可以在oracle官网下载jdk8版本替换文件地址:http://www.oracle.com/technetwork/java/javase/downloads/jce8-download-2133166.html其中有一个问题需注意:C:\Program Files\Java\jdk1.8.0_131\jre\lib\securi

2020-10-23 14:43:54 382

原创 java8中使用流区分质数与非质数

java8中使用流区分质数与非质数public class PrimeTest { public static void main(String[] args) { Map<Boolean, List<Integer>> collect = IntStream.rangeClosed(2, 100).boxed().collect(partitioningBy(PrimeTest::isPrime)); System.out.printl

2020-08-19 09:51:35 255

原创 mysql explain 执行计划 key_len 算法

mysql explain 执行计划 key_len 算法 看使用几个索引key_len1 数据类型 varchar + 2 char + 02 字符集 uft8 3 utf8mb4 43 本身长度4 是否为null null +1 not null + 0举例:这里 1023 = 255*4+2+1

2020-07-30 16:33:24 211

原创 一条语句去除list中元素,不在使用iterator

发现jdk1.8之后有一个语法list.removeIf()使用例子: // 移除不是二级和总预案的预案 emergencyPlanEntities.removeIf(item -> !(item.getPlanGrade() == 2 || item.getPlanGrade() == 0));

2020-07-15 14:35:32 112

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除