
java
喜中喜相逢
博客目前只记录博主开发中遇到的问题和解决措施,如果能够对大家有所帮助,记得点个赞哦。
展开
-
java实现带有html格式和附件的符合RFC822规范的eml格式的信件原文组装
/ 这里配置需要注意:如正文携带图片或附件等多重数据格式需在邮件头中设置为multipart/mixed;// 正文结束后再次空行+边界符,进入下个段落的配置,如下配置为附件相关配置,name为附件名称,编码为bases64格式。// 边界符后进入正文内容的配置,这部分引用了文本+html格式的配置。// 空行后,编码设置为base64后这部分放置编码后的文件数据。// 空行+分隔符标识段落结束。From:综合运行平台。From:综合运行平台。subject:主题。subject:主题。原创 2023-09-04 16:35:17 · 1027 阅读 · 0 评论 -
MybatisPlus-@TableField注解的介绍与常用方法
在执行update操作or insert操作时,想把某个字段属性设置为NULL,在@TableField的源码中默认是NOT NULL,所以为空的时候是set不进去值的,想要把为""或NULL的属性set进去,需要做如下修改:```bash@TableField(updateStrategy = FieldStrategy.IGNORED)private Integer disposalMode;@TableField(insertStrategy = FieldStrategy.IGNORED).原创 2022-06-28 19:59:08 · 7892 阅读 · 0 评论 -
mysql中length()与char_length()获取字符串长度的区别
char_length(str)计算单位:字符不管汉字还是数字或者是字母都算是一个字符length(str)计算单位:字节utf8编码:一个汉字三个字节,一个数字或字母一个字节。gbk编码:一个汉字两个字节,一个数字或字母一个字节。...原创 2022-05-07 15:13:36 · 174 阅读 · 0 评论 -
使用idea 子目录打包到根目录的target文件下
打包 根目录原创 2022-04-19 09:53:33 · 926 阅读 · 0 评论 -
java8 stream Collectors(收集)操作合集
分组操作:Collectors.groupingBy()// 测试数据,请不要纠结数据的严谨性List<TestVO> list = new ArrayList<>();list.add(new TestVO(1,"李小明",18));list.add(new TestVO(2,"李小明",19));list.add(new TestVO(3,"王大朋",16));list.add(new TestVO(4,"陈小跑",10));// 分组并求count(coun.原创 2022-03-30 19:02:05 · 744 阅读 · 0 评论 -
解决springBoot中因序列化引起的实体类属性大写变小写的问题
实体中命名如下:private String dIp;最后结果却为:dip原因:springboot在进行序列化和反序列时对字段进行了处理。解决方法:在字段中加上注解@JsonProperty,返回结果集就正常了,如下:@JsonProperty("dIp")private String dIp;...原创 2021-11-09 17:08:12 · 2129 阅读 · 1 评论 -
mysql中新增数据报错Incorrect string value: ‘\\xE5\\xBF\\xB5\\xE6\\x88\\x90‘ for column ‘**‘ at row 1
原因:插入数据中包含了Emoji表情导致的。解决方法:修改字段的字符集。修改前:修改后:utf8与utf8mb4的区别:UTF-8编码中,一个英文字符占用一个字节的存储空间,一个中文(含繁体)占用三个字节的存储空间。UTF8MB4:MySQL在5.5.3之后增加了utf8mb4的编码,mb4就是most bytes 4的意思,专门用来兼容四字节的unicode。因此可以用来存储emoji表情。...原创 2021-10-09 18:01:42 · 1644 阅读 · 0 评论 -
cn.hutool.core.net.url.UrlBuilder.ofHttp(Ljava/lang/String;)Lcn/hutool/core/net/url/UrlBuild,问题解决方案
cn.hutool.core.net.url.UrlBuilder.ofHttp(Ljava/lang/String;)Lcn/hutool/core/net/url/UrlBuild记录一个hutool包版本太高引起的报错,原本5.6.5的版本用httpUtil调用的时候会报出这个问题,把版本降低到5.1.1就可以了原创 2021-09-02 11:05:01 · 3045 阅读 · 0 评论 -
SpringBoot的启动流程
原创 2021-07-13 18:52:03 · 123 阅读 · 0 评论 -
bladex跳过鉴权直接访问
原创 2021-05-21 11:43:18 · 3066 阅读 · 3 评论 -
解决postman请求不到https的数据问题
打开postman中的设置将SSL这一项关闭即可原创 2021-04-13 11:47:55 · 1266 阅读 · 0 评论 -
解决浏览器时间与本地时间不一致问题
重启电脑与卸载重装浏览器都无法改变浏览器时间,需要在本地调整一下时区,然后在切换回来即可原创 2021-04-08 13:43:26 · 5726 阅读 · 0 评论 -
报错解决:java.lang.NullPointerException: element cannot be mapped to a null key
出现错误原因是因为分组时map的key为空,分组前加个filter过滤Map<Integer, List<AssetVulHistory>> levelMap = assetHisList.stream() .filter(assetVul->Func.isNotEmpty(assetVul.getVulLevel())) .collect(Collectors.groupingBy(AssetVulHistory::getVulLevel));...原创 2021-03-04 10:07:06 · 2624 阅读 · 1 评论 -
Error starting ApplicationContext. To display the conditions report re-run your application
Error starting ApplicationContext. To display the conditions report re-run your application with ‘debug’ enabled.解决此问题:重新build prcject试一下原创 2021-02-05 11:18:08 · 1715 阅读 · 1 评论 -
Spring Boot加载指定test配置文件
在启动类的Application中配置,进而读取指定test的application-test.yml文件--spring.profiles.active=test原创 2020-12-03 14:49:09 · 1822 阅读 · 0 评论 -
Bladex框架配置swagger问题:可以访问进模块,却无法加载各个接口
问题描述:配置好pom.xml文件的swagger依赖,并在注册中心配置加入需要swagger的服务名称配置,但仍无法访问。原因:因服务中的application.yml文件中swagger扫描路径配置错误。正确配置:swagger: base-packages: - org.springbalde #配置自己服务的指定名称 - com.blade.demo...原创 2020-11-30 11:33:28 · 3817 阅读 · 3 评论 -
Linux系统简单介绍和基本命令
服务器环境1.1 服务器1.2 操作系统2.Linux(CentOS7.X)常用命令2.1 系统相关su - 切换用户格式:su 用户名adduser - 添加用户格式:adduser 用户名userdel - 删除用户格式:userdel 用户名passwd - 修改密码格式:passwd [用户名] //不指定用户名时修改当前用户密码shutdown - 关机/重启格式:shutdown -h now // 立即关机shutdown -r now.原创 2020-08-03 10:33:03 · 7787 阅读 · 1 评论 -
idea 需mvn clean install之后在重启才可以加载修改后的代码
idea 修改了代码后直接重启无法运行修改后的代码,编译的还是加载修改前的代码,必须每次clean compile/install编译之后再启动才可以加载修改后的代码。把最外层的项目的.idea文件删掉,然后重新导入项目即可。...原创 2020-10-16 16:36:45 · 1278 阅读 · 0 评论 -
java获取Map中指定key后的所有元素
需求:给定一个有序的map,已知一个map中存在的key,但是不知道key的指定位置,需要根据这个key获取到这个key元素后的所有元素。Map<String, String> map = new LinkedHashMap<>();map.put("qqq","第1条");map.put("www","第2条");map.put("eee","第3条");map.put("rrr","第4条");map.put("ttt","第5条");map.put("yyy","原创 2020-10-12 10:38:49 · 2619 阅读 · 0 评论 -
List集合去重,保留重复元素中最后一个
对list进行去重:举例:list为1,2,3,2 正常方式去重得到结果为 1 2 3 ,需求要得到 1 3 2。不能采用stream的方式进行去重,那样无法去除重复元素的前一个。因此用如下排序方法机械能去重for (int i=0;i<list.size();i++){ for (int j=i+1;j<list.size();j++){ if (list.get(i).equals(list.get(j))){ list.remove(i); i--;原创 2020-10-12 10:25:49 · 3087 阅读 · 0 评论 -
JAVA8 新特性总结(LocalDateTime、Lamada、Stream)
LocalDateTime用法1.LocalDateTime用法与简介2.新时间日期API常用、重要对象介绍ZoneId: 时区ID,用来确定Instant和LocalDateTime互相转换的规则Instant: 用来表示时间线上的一个点(瞬时)LocalDate: 表示没有时区的日期, LocalDate是不可变并且线程安全的LocalTime: 表示没有时区的时间, LocalT...原创 2019-11-11 15:28:19 · 3090 阅读 · 0 评论 -
Java8 新特性(自用)
Lambda 表达式:函数式接口可以用:@FunctionalInterface 修饰Java8 内置的四大核心函数式接口:Consumer:消费性接口 void accept(T t);Supplier:供给型接口 T get();Function<T,R>:函数型接口 R apply(T t);Predicate:断言型接口 Boolean test(T t);...原创 2019-11-11 15:38:50 · 3105 阅读 · 1 评论 -
java 画pdf用itext调整表格宽度、自定义各个列宽
场景:左侧第一列宽度不够,导致数据换行。Table table = new Table(new float[2]);new 一个Table之后,setWidthPercent()这个参数是这是所有列宽,并不能试用个别列。需要在写入数据的时候对各个列进行自定义列宽:Cell cell=new Cell().setWidth(70).setBorder(Border.NO_BORDER).setHorizontalAlignment(HorizontalAlignment.RIGHT).add(ne原创 2020-08-05 16:40:53 · 10867 阅读 · 5 评论 -
Spring IOC原理及图解,通俗易懂
**IOC/DI**a) IOC(Inversion of Control)其思想是反转资源获取的方向,传统的资源查找方式要求组件向容器发起请求查找资源,作为回应,容器适时的返回资源;而应用了IOC之后,则是容器主动的将资源推送给它所管理的组件,组件需要做的仅是选择一种合适的方式(属性注入[set函数]、构造器注入…)来接受资源,这种行为成为查找的被动形式。b) DI(Dependency Injection)IOC的另一种表达方式,即组件以一些预先定义好的方式(如:setter方法)接受来自容原创 2020-08-06 14:45:29 · 7359 阅读 · 0 评论 -
Spring AOP原理及使用,面试必备
a) 什么是AOP?AOP(Aspect Oriented Programming),也就是面向切面编程,是对面向对象编程OOP的一种补充;通过“横切”技术剖解开封装的对象内部,把那些公共的行为封装到一个可重用模块,称为“切面”。这样的话,就可以通过切面编写一些与业务无关的逻辑,减少代码的重复,降低模块之间的耦合度,便于开发和维护。常用的场景有日志、事务、权限控制。AOP底层原理是代理和反射;代理有静态代理(用得少)和动态代理;动态代理有jdk代理和cglib代理,jdk的局限是被代理的类必须实现原创 2020-08-06 14:53:16 · 4531 阅读 · 0 评论 -
Spring MVC 原理及图解
图解:① 用户向服务器发送请求,被DispatcherServlet捕获② 通过HandlerMapping根据请求获得handler配置的相关对象,最后以HandlerExecutionChain对象的形式返回③ DispatcherServlet根据获得的Handler选择一个合适的HandlerAdapter 执行Handler,向DispatcherServlet返回一个ModelandView对象④ 根据返回的ModelandView,选择一个合适的ViewResolver(试图解析器)原创 2020-08-07 10:56:48 · 3788 阅读 · 0 评论 -
==和equals的区别
==和equals的区别== 的作用==是一个比较运算符基本类型:比较的就是值是否相同 引用类型:比较的就是地址值是否相同 equals 的作用equals()是一个方法只能比较引用数据类型。重写前比较的是地址值,重写后比一般是比较对象的属性引用类型:默认情况下,比较的是地址值。注:不过,我们可以根据情况自己重写该方法。一般重写都是自动生成,比较对象的成员变量值是否相同...原创 2020-08-07 11:31:45 · 4128 阅读 · 0 评论 -
Integer和int区别
Integer和int区别1、Integer是int的包装类,int则是java的一种基本数据类型2、Integer变量必须实例化后才能使用,而int变量不需要3、Integer实际是对象的引用,当new一个Integer时,实际上是生成一个指针指向此对象;而int则是直接存储数据值4、Integer的默认值是null,int的默认值是0...原创 2020-08-07 11:38:11 · 3752 阅读 · 0 评论 -
解决maven拉不下私服的依赖,不能实时刷到最新的包
maven拉不下私服的依赖,不能实时刷到最新的包。在Setting->maven配置中将这两项勾选中即可,下次就可以在刷新maven的时候刷到最新的依赖,而不是之前老版本的依赖。原创 2020-08-10 10:09:23 · 7592 阅读 · 0 评论 -
java8 stream 过滤、排序、求和、分组、去重等方法使用和说明
定义一个实体import lombok.Data;@Datapublic class TestVO { /** * 主键 */ private long id; /** * 姓名 */ private String name; /** * 年龄 */ private String age;}原创 2020-08-10 11:20:22 · 16211 阅读 · 1 评论 -
IDEA提示 ‘Optional.get()‘ without ‘isPresent()‘ check错误。
其返回的石Optional类型,该类型是为了规避NULL错误。应该使用orElse(“如果值为null的替代值”) 替代 get() 。转自https://blog.youkuaiyun.com/fofabu2/article/details/78936508转载 2020-08-10 14:00:27 · 9141 阅读 · 1 评论 -
clean,compile,build,install,package区别
clean: 执行该命令会删除项目路径下的target文件,但是不会删除本地的maven仓库已经生成的jar文件compile:编译命令,只编译选定的目标,不管之前是否已经编译过,会在你的项目路径下生成一个target目录,在该目录中包含一个classes文件夹,里面全是生成的class文件及字节码文件。package:这个命令会在你的项目路径下一个target目录,并且拥有compile命令的功能进行编译,同时会在target目录下生成项目的jar/war文件。如果a项目依赖于b项目,打包b项目时,只转载 2020-09-02 19:23:23 · 959 阅读 · 0 评论 -
判断String类型是否为空,判断list集合是否为空
需要导入这两个Apache的包import org.apache.commons.collections4.CollectionUtils;import org.apache.commons.lang3.StringUtils;//判断集合是否为空List list = new ArratList<>();CollectionUtils.isEmpty(list);CollectionUtils.isNotEmpty(list);返回的是boolean类型ture和false原创 2020-08-26 15:57:10 · 5997 阅读 · 0 评论 -
field.setAccessible(true);代码扫描有安全漏洞,解决方案
AccessibleObject类是Field、Method和Constructor对象的基类,能够允许反射对象修改访问权限修饰符,绕过由Java访问修饰符提供的访问控制检查。它让程序员能够更改私有字段或调用私有方法,这在通常情况下是不允许的。例如:以下代码片段中,将Field将accessible标记设置为true。Class clazz = User.class;Field field = clazz.getField("name");field.setAccessible(true);...原创 2020-08-18 16:08:39 · 13426 阅读 · 7 评论 -
IDEA 提示 Duplicated code fragment (15 lines long)
不勾选Duplicated Code fragment即可原创 2020-08-10 14:12:59 · 8711 阅读 · 0 评论