java杂谈
文章平均质量分 70
《小书生》
迷茫,是因为才华配不上梦想!
展开
-
Java8关闭流使用try with resource关闭资源的理解
Java8关闭流使用try with resource关闭资源的理解原创 2022-11-18 14:52:48 · 2484 阅读 · 0 评论 -
springboot生成图片并在图片上添加字体进行换行
springboot生成图片并在图片上添加字体进行换行原创 2022-11-17 10:47:36 · 1049 阅读 · 0 评论 -
springboot+poi 解析excel 按坐标取值
springboot+poi 解析excel 按坐标取值原创 2022-11-08 10:22:30 · 1015 阅读 · 0 评论 -
springboot整合freemarker根据模板导出excel
springboot整合freemarker根据模板导出excel原创 2022-11-08 10:01:35 · 821 阅读 · 0 评论 -
Spring中过滤器(Filter)和拦截器(Interceptor)的区别和联系
Spring中过滤器(Filter)和拦截器(Interceptor)的区别和联系原创 2022-10-28 10:16:06 · 232 阅读 · 0 评论 -
@TransactionalEventListener 事务事件监听进行业务解耦
@TransactionalEventListener 事务事件监听进行业务解耦原创 2022-10-27 10:34:13 · 2507 阅读 · 0 评论 -
java + jfreechart + itextpdf创建折线图饼图并导出为pdf
java + jfreechart + itextpdf创建折线图饼图并导出为pdf原创 2022-07-13 10:19:30 · 2396 阅读 · 0 评论 -
springboot+mybatis plus实现数据权限,在分页之前拦截sql进行修改
springboot+mybatis plus实现数据权限,在分页之前拦截sql进行修改原创 2022-06-22 14:00:34 · 1950 阅读 · 2 评论 -
springboot整合freemarker根据模板导出word,pdf,以及word转pdf,读取工程resources下的模板文件,并导出压缩包zip
springboot整合freemarker根据模板导出word,pdf,以及word转pdf,读取工程resources下的模板文件,并导出压缩包zip原创 2022-06-10 15:53:21 · 1277 阅读 · 0 评论 -
常用脱敏小工具
import org.apache.commons.lang.StringUtils;public class commonUtil { /** * 只显示第一个汉字,其他隐藏为2个星号<例子:李**> * * @param fullName * @param index 1 为第index位开始脱敏 * @return */ public static String left(String fullNam.原创 2022-05-11 11:12:30 · 595 阅读 · 0 评论 -
Spring Boot + MDC 实现全链路调用日志跟踪,这才叫优雅
1、简介:MDC(Mapped Diagnostic Context,映射调试上下文)是log4j、logback及log4j2提供的一种方便在多线程条件下记录日志的功能。MDC可以看成是一个与当前线程绑定的哈希表,可以往其中添加键值对。MDC 中包含的内容可以被同一线程中执行的代码所访问。当前线程的子线程会继承其父线程中的 MDC 的内容。当需要记录日志时,只需要从 MDC 中获取所需的信息即可。MDC 的内容则由程序在适当的时候保存进去。对于一个 Web 应用来说,通常是在请求被处理的最...转载 2022-03-14 09:47:58 · 469 阅读 · 0 评论 -
mysql 乐观锁和悲观锁(排他锁)的使用及实现
悲观锁(排他锁)FOR UPDATEselect * from 'table' where id = 1 for updatefor update仅适用于InnoDB,且必须在事务块(BEGIN/COMMIT)中才能生效。在进行事务操作时,通过“for update”语句,MySQL会对查询结果集中每行数据都添加排他锁,其他线程对该记录的更新与删除操作都会阻塞。排他锁包含行锁、表锁。select * from 'table' where id = 1 for update 与普通查询不一样的是原创 2021-08-23 10:02:47 · 1568 阅读 · 0 评论 -
工具类,静态方法注入bean
package com.manager.utils;import lombok.extern.slf4j.Slf4j;import org.springframework.beans.BeansException;import org.springframework.context.ApplicationContext;import org.springframework.context.ApplicationContextAware;import org.springframework.st.原创 2021-06-16 16:40:21 · 450 阅读 · 0 评论 -
对象拷贝,字段名称不一致的对象拷贝
**创建自定义注解**import java.lang.annotation.Documented;import java.lang.annotation.Retention;import java.lang.annotation.Target;import static java.lang.annotation.ElementType.*;import static java.lang.annotation.RetentionPolicy.RUNTIME;/*** 不同对象不同key..原创 2021-06-10 17:08:50 · 1010 阅读 · 0 评论 -
mybatis的if判断integer的小知识点,integer a=0
integer a = 0;<if test="a != null and a != '' and a== 0"> </if>你会发现这个条件永远不会成立,因为mybatis的if将0认为是'',所以这样判断是无法进入条件的,将数字换为1,2之类的就可以了;...原创 2021-04-27 11:22:30 · 402 阅读 · 0 评论 -
Java8 Stream使用flatMap合并List
@Testpublic void mergeMapValuesTest(){ Map<Integer, ListContainer> map = Maps.newHashMap(); List<AClass> aClassList1 = Lists.newArrayList(); AClass aClass = new AClass(1, "zhuoli1", "haha1"); aClassList1.add(aClass); aClass...原创 2021-04-23 19:11:06 · 526 阅读 · 0 评论 -
父线程变量需要传递到子线程使用一种方式InheritableThreadLocal和TransmittableThreadLocal
一、使用场景ThreadLocal是相对于每一个线程自己使用的本地变量,没有使用到子线程的时候可以用ThreadLocal有这样的一种需求:父线程生成的变量需要传递到子线程中进行使用。使用到子线程但是没有用到线程池,这个时候可以用InheritableThreadLocal,因为InheritableThreadLocal的使用利用Thread 的初始化使用线程池的方式这个时候就需要TransmittableThreadLocal登场来解决。二、案例public class Loc原创 2021-04-16 11:28:09 · 438 阅读 · 0 评论 -
java http远程调用接口下载文件
远程调用http接口下载文件,接口返回流一、将文件保存本地public String httpDownload(String httpUrl){ try { URL url = new URL(httpUrl) ; HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection() ; urlConnection.connect() ; Input.原创 2020-12-16 13:56:05 · 8672 阅读 · 0 评论 -
springboot通过不同的策略动态调用不同的实现类
1、前言经常遇到这样的一个需求,前端传的实体类型相同,后端需要根据实体类中的某一个字符串,动态地调用某一个类的方法。在SpringBoot中,我们可以理解成,一个Controller接口对应多个ServiceImpl,使用这种方式,如果后期需要添加一个功能,仅仅创建一个ServiceImpl就可以满足需求,而不用再额外创建一个Controller接口。现在假设一个情景,前端传入不同的用户类型,后端返回该用户的任务。你可能问我,为什么不直接把(用户类型,用户任务)存入数据库?现在只是一个转载 2020-12-01 11:06:11 · 4612 阅读 · 0 评论 -
java获取网络图片(URL)保存到本地
import org.apache.commons.io.FileUtils;public String downloadFromUrl(String url) { String filePath = CommonUtils.getProjectPath() + /file; if (CommonUtils.isOSLinux()) { filePath = filePath.split(":")[1]; } String fileNam..原创 2020-11-23 10:34:26 · 1012 阅读 · 0 评论 -
上传文件到服务器报错:Could not parse multipart servlet request; nested exception is java.io.IOException
问题描述:Could not parse multipart servlet request; nested exception is java.io.IOException: The temporary upload location [/tmp/tomcat.3464199984884304527.7700/work/Tomcat/localhost/ROOT] is not valid原因:从错误代码上可以看出是因为临时目录无效(找不到临时目录)导致上传文件失败,而临时目录不存在是因为linux原创 2020-10-19 18:07:03 · 5814 阅读 · 0 评论 -
maven聚合工程(多个mudule只编译、打包指定module)
在多module的maven项目中,如果每次打包整个工程显得有些冗余和笨重。例如A,B,C的继承关系为C|—– A|—– B即P包含A,B的module,每次打包P都会将A,B都打包。假如我只修改了A模块,那么每次都要将B都一块打包吗?当然不是,maven提供了自定义参数:-pl, --projects Build specified reactor projects instead of all projects-am, --also-make ...原创 2020-09-25 15:51:50 · 2412 阅读 · 0 评论 -
java生成二维码(在图片上生成二维码(二维码带logo)并且在图片上添加文字标签)
1pom.xml<!--生成二维码--><dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-extra</artifactId> <version>5.4.3</version></dependency><dependency> <groupId>com.google.zx原创 2020-09-24 10:06:11 · 4046 阅读 · 6 评论 -
dubbo中如何传递隐式参数
1.在dubbo服务调用中,使用ThreadLoca是无法进行ThreadLoca对象传递的,即使使用InheritableThreadLocal父子线程传递依然无法进行传递,这个时候公共参数就没法通过线程对象进行传递,这个时候可以使用dubbo RpcContext进行参数隐式传递。@Component@Slf4jpublic class TokenHandler implements HandlerInterceptor { @Reference private ZcLogi原创 2020-08-24 18:24:07 · 3068 阅读 · 0 评论 -
springboot整合微信网页授权登陆
微信网页授权步骤:1第一步:用户同意授权,获取code2第二步:通过code换取网页授权access_token3第三步:刷新access_token(如果需要)4第四步:拉取用户信息(需scope为snsapi_userinfo)5附:检验授权凭证(access_token)是否有效一.第一步:用户同意授权,获取codescope参数中的snsapi_base(静默授权,用户无感知)和snsapi_userinfo(非静默授权,提示框需要用户确认授权)...原创 2020-08-11 13:56:47 · 346 阅读 · 0 评论 -
在过滤器Filter中抛出一个全局异常可以捕获的异常
1、创建自定义异常package com.manager.exception;import com.manager.enums.ExceptionEnum;public class TokenException extends RuntimeException { /** * */ private static final long serialVersionUID = 1L; private Integer errCode; privat...原创 2020-07-30 18:11:26 · 2426 阅读 · 1 评论 -
Springboot集成swagger生成接口文档
1.引入架包<dependency> <groupId>com.spring4all</groupId> <artifactId>swagger-spring-boot-starter</artifactId> <version>1.7.0.RELEASE</version><...原创 2020-02-21 15:37:17 · 404 阅读 · 0 评论 -
IDEA maven无法拉取架包Unable to import maven project: See logs for details(maven的坑)
1.找到对应maven的setting.xml,在mirrors中增加<mirror><id>alimaven</id><name>aliyun maven</name><url>http://maven.aliyun.com/nexus/content/groups/pu...原创 2020-02-19 19:38:39 · 208 阅读 · 0 评论 -
CollectionUtils工具类的常用方法(集合得比较,交集、并集、补集)
集合判断: 例1: 判断集合是否为空: CollectionUtils.isEmpty(null): true CollectionUtils.isEmpty(new ArrayList()): true CollectionUtils.isEmpty({a,b}): false例2: 判断集合是否不为空: CollectionUtils.isNotEmpty(null)......转载 2020-01-08 15:27:35 · 2611 阅读 · 0 评论 -
springboot整合mybatis+PageHelper分页
1.pom.xml<dependency> <groupId>org.mybatis.spring.boot</groupId> <artifactId>mybatis-spring-boot-starter</artifactId></dependency><dependency> ...原创 2019-11-15 09:55:52 · 209 阅读 · 0 评论 -
如何获取注入到spring容器中的bean
A是一个已经注入到spring容器中的类A a = SpringApplicationContextUtil.getBean(A.class);如果A实现了某个接口或继承某个抽象类,可以用接口或抽象去接返回值原创 2019-11-08 19:49:59 · 475 阅读 · 0 评论 -
springboot中如何使用策略模式干掉if—else
springboot中如何使用策略模式干掉if—else常见if-else案列public class OrderServiceImpl implements OrderService {@Overridepublic String handle(OrderDTO dto) { String type = dto.getType(); if ("1".equals(type...转载 2019-11-08 19:01:58 · 699 阅读 · 0 评论 -
map转对象(map转object)
import java.lang.reflect.Field;import java.lang.reflect.Modifier;import java.util.Map;/** * @program: postloan * @description: map转object * @author: Mr.xiaoshusheng * @create: 2019-04-08 14:3...原创 2019-04-25 11:52:04 · 4493 阅读 · 0 评论 -
对象转map(object转map)
import java.lang.reflect.Field;import java.util.LinkedHashMap;import java.util.Map;public class ObjectToMap { //对象转Map public static Map<String, Object> getObjectToMap(Object obj) t...原创 2019-04-25 11:52:56 · 3080 阅读 · 0 评论 -
java导出压缩文件(.ZIP) 直接response
前端接收类型设置为blobaxios.defaults.responseType = 'blob'后端设置编码response.setContentType("application/json");response.setHeader("Content-disposition", "attachment; filename=" + URLEncoder.encode("cont...原创 2019-04-25 12:01:23 · 4323 阅读 · 0 评论 -
Object转Map和Map转Object(对象转map,map转对象)
第一种方法:fastJosnimport com.alibaba.fastjson.JSON;import com.alibaba.fastjson.JSONObject;Object转MapFindArchiveDto findArchiveDto = new FindArchiveDto(); findArchiveDto.setContractStatus("降龙"); ...原创 2019-05-09 10:06:20 · 244609 阅读 · 8 评论 -
springboot 2.0.7.RELEASE 整合多数据源(JdbcTemplate和JpaRepository)
第一步:添加applicaton.properties数据库连接信息,有两个数据源,一个为主(primary),一个为从(secondary):spring.datasource.primary.url = jdbc:mysql://locahost1:3306/dbtest1?autoReconnect=true&serverTimezone=GMT%2B8spring.da...原创 2019-06-14 18:11:28 · 419 阅读 · 0 评论 -
springboot多线程任务执行TaskExecutor的使用,以及使用@Async实现异步调用:自定义线程池
1.@Async实现异步调用1.1pom.xml<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId></dependency>1.2.启动类...原创 2019-08-01 16:21:44 · 3830 阅读 · 0 评论 -
java8 对集合的操作,stream()流操作
去重 distinct() 去重;collect(Collectors.toList())。封装成集合List<Person> distinctList = list.stream().distinct().collect(Collectors.toList());排序 ?sorted((第一个对象,第二个对象)->返回值) ?(升降序看是第几个对象与第几个对象比较)...原创 2019-09-04 17:33:50 · 2851 阅读 · 1 评论 -
JAVA8 STREAM初试,MAP排序,LIST去重,统计重复元素个数,获取MAP的KEY集合和VALUE集合
定义一个100元素的集合,包含A-ZList<String> list = new LinkedList<>();for (int i =0;i<100;i++){ list.add(String.valueOf((char)('A'+Math.random()*('Z'-'A'+1))));}System.out.println(list);统...转载 2019-09-04 17:41:57 · 3125 阅读 · 1 评论