java
文章平均质量分 54
java学习常见的问题汇总,希望和大家一起进步
ourLang
更多资料请点击我的个人网站www.lsdCloud.com
展开
-
springBoot 集成https
pring Boot 需要.p12或.jks格式的证书。如果你只有.pem和.key文件,可以使用openssl工具将它们转换成.p12文件。原创 2024-09-10 13:43:00 · 541 阅读 · 0 评论 -
arthas诊断工具的使用总结
arthas 是一款用于java程序诊断的跨平台开源工具,由Alibaba开源、维护,集成了jvm跟踪查看、反编译、热更新、热加载、代码执行追踪等功能,方便开发者排查定位线上问题、调优等。原创 2023-09-13 10:49:05 · 723 阅读 · 0 评论 -
优雅的缓存解决方案--SpringCache和Redis集成(SpringBoot)
1、 前言一个系统在于数据库交互的过程中,内存的速度远远快于硬盘速度,当我们重复地获取相同数据时,我们一次又一次地请求数据库或远程服务,者无疑时性能上地浪费(这会导致大量时间被浪费在数据库查询或者远程方法调用上致使程序性能恶化),于是有了“缓存”。本文将介绍在spring boot项目开发中怎样使用spring提供的Spring Cache 与最近很火的 Redis 数据库来实现数据的缓存。2. SpringCache简介Spring Cache是Spring框架提供的对缓存使用的抽象类,支持多原创 2021-10-24 15:46:30 · 1008 阅读 · 0 评论 -
Could not parse multipart servlet request; nested exception is java.io.IOException: The tempo
1 产生原因在linux系统中,springboot应用服务在启动(java -jar 命令启动服务)的时候,会在操作系统的/tmp目录下生成一个tomcat*的文件目录,上传的文件先要转换成临时文件保存在这个文件夹下面。由于临时/tmp目录下的文件,在长时间(10天)没有使用的情况下,就会被系统机制自动删除掉。所以如果系统长时间无人问津的话,就可能导致上面这个问题。2 解决方法添加配置类手动的将临时文件夹设置为自定义的文件夹,就不会被Linux删除了。注:在windows系统中可以生效,系原创 2021-09-03 22:31:50 · 3604 阅读 · 0 评论 -
SpringBoot之配置文件加载位置
1、配置文件扫描顺序SpringBoot启动会扫描application.properties或者application.yml文件作为springboot的配置文件。默认创建项目生成application.properties/yml位置在classpath目录下,也可以在以下4个地方创建,优先级自上而下,但是各个配置文件成互补状态存在。file: ./config/file: ./classpath: /config/classpath:/...原创 2021-08-26 11:27:55 · 501 阅读 · 0 评论 -
Spring依赖注入
1 常见的注入方式1.1 field注入@RestController@RequestMapping("/user")public class UserController { @Autowired //@Inject private UserService userService; //简单的使用例子,下同 public List<User> userList() { return userService.list(); }}这种注入方式原创 2021-08-18 16:12:24 · 159 阅读 · 0 评论 -
java.nio.charset.MalformedInputException: Input length = 1
1 编码格式问题第一种可能是你的application.yml文件编码格式有问题,改为UTF-8,在idea中打开settings–Editor-File Econdings,设置yml为UTF-8,如下:2 第二种可能就是你的application.yml文件是通过把其他类型的文件后缀名直接改为yml生成的,这时就需要你把application.yml中的内容全部复制,然后删除,再新建一个application.yml文件,将复制的内容拷贝进去再运行项目就不会报错了。...原创 2021-06-08 15:50:21 · 4424 阅读 · 0 评论 -
json注解格式化字段
实际开发中,我们一定遇到过这样的问题:前端显示和后台存储数据单位不统一,而且各有各自的理由,统一不了,那就转换吧。每次返回给前端时再转换一遍,返回给前端的json数据,在后端里定义的往往是一个对象,如何做到优雅的转换呢?1 在实体类上需要装换的字段上加上注解根据使用不同的json工具转换自行选择1.1 fastjsonimport com.alibaba.fastjson.annotation.JSONField;import com.alibaba.fastjson.serializer.原创 2021-05-24 22:30:00 · 893 阅读 · 0 评论 -
windows上安装Arthas
1、Arthas能为你做什么?Arthas 是Alibaba开源的Java诊断工具,深受开发者喜爱。Arthas支持JDK 6+,支持Linux/Mac/Windows,采用命令行交互模式,同时提供丰富的 Tab 自动补全功能,进一步方便进行问题的定位和诊断1、当你遇到以下类似问题而束手无策时,Arthas可以帮助你解决:2、这个类从哪个 jar 包加载的?为什么会报各种类相关的 Exception?3、我改的代码为什么没有执行到?难道是我没 commit?分支搞错了?4、遇到问题无法在线上原创 2021-03-10 15:16:17 · 1872 阅读 · 0 评论 -
sql injection violation, delete not allow
1、问题描述进行简单的删除操作竟然报错了,一脸懵逼o((⊙﹏⊙))o2、原因查找WallFilter得check未通过,delete删除不被允许3、解决方案在配置文件中修改如下地方,配置这两处地方是为了checksql语句,当前项目不允许数据库删除,删除为逻辑删除,修改状态值等# 删除掉wall即可 spring.datasource.druid.filters=stat,wall,slf4j # true设为falsespring.datasource.druid.filt原创 2021-01-14 15:54:42 · 735 阅读 · 2 评论 -
java调用百度AI实现图文识别功能
一、创建百度应用1、在浏览器输入网址https://login.bce.baidu.com/或者百度搜索‘百度ai’点击第一个。点击主页的产品服务,看到文字识别。如下图所示:2、点击创建应用创建完应用后,才能获取百度AI的授权3、创建完成后可查看相应API key和Secret Key2、查看sdk文档点击文字识别下面的技术文档https://cloud.baidu.com/doc/OCR/index.html,如图可以根据官方提供的文档进行图文识别,下面博主为大家提供了java的工原创 2020-10-26 21:30:41 · 2260 阅读 · 0 评论 -
数据加密方案
1 什么是数据加密1.1 数据加密的定义数据加密又称密码学,它是一门历史悠久的技术,指通过加密算法和加密密钥将明文转变为密文,而解密则是通过解密算法和解密密钥将密文恢复为明文。数据加密目前仍是计算机系统对信息进行保护的一种最可靠的办法。它利用密码技术对信息进行加密,实现信息隐蔽,从而起到保护信息的安全的作用。1.2 加密方式分类数据加密技术要求只有在指定的用户或网络下,才能解除密码而获得原来的数据,这就需要给数据发送方和接受方以一些特殊的信息用于加解密,这就是所谓的密钥。其密钥的值是从大量的随原创 2020-10-24 13:13:10 · 6672 阅读 · 4 评论 -
java AES 32位加密解密
1、常用加密32位原因网上很多解密加密是16位的,用32位密钥加密会报java.security.InvalidKeyException: Illegal key size or default parameters异常错误,因为美国的出口限制,Sun通过权限文件(local_policy.jar、US_export_policy.jar)做了相应限制。因此存在以下一些问题:密钥长度上不能满足需求(如:java.security.InvalidKeyException: Illegal key s原创 2020-09-25 20:13:48 · 15240 阅读 · 1 评论 -
后台服务一键启动bat文件
1 服务列表redisnacosnginxtomcat服务springboot jar 包2 一键启动bat需要一键启动这么多服务,则需要写一个bat文件,如果需要开机重启运行此bat文件,则需要把这个bat文件加入到window 的任务计划中(任务计划开机启动,请自行百度), runServer.bat文件如下@echo offset REDIS_HOME="E:\serverFile\redis"title redis-serverE:color 0acd %RE原创 2020-09-08 22:38:50 · 7487 阅读 · 0 评论 -
取消Tomcat对POST请求长度限制
1 Request header is too large从字面意思可知,是请求头过大,设置connector的maxHttpHeaderSize为大点的值即可,单位byte,默认值:8192 (8 KB)。官方文档原文如下:http://tomcat.apache.org/tomcat-9.0-doc/config/http.html#Standard_ImplementationmaxHttpHeaderSize :The maximum size of the request and resp原创 2020-09-08 13:04:02 · 10713 阅读 · 1 评论 -
动态获取spring管理的bean工具类
1、说明java中利用反射去动态执行一个普通类的方法一般是非常简单的,但是遇到spring管理的bean类可能就不太好做了,这里给出以下方法解决这个问题。主要思路是用spring上下文获取bean的实例对象,然后用目标对象的代理对象反射执行方法。2、工具类代码package com.ourlang.dataextract.util;import org.springframework.beans.BeansException;import org.springframework.contex原创 2020-07-22 12:01:00 · 15018 阅读 · 0 评论 -
java实现异步调用
1、使用线程池的逻辑实现异步调用package com.ourlang.dataextract.controller;import com.google.common.util.concurrent.ThreadFactoryBuilder;import com.ourlang.dataextract.common.CommonResult;import com.ourlang.dataextract.service.ISInPatientListService;import org.apach原创 2020-07-21 17:21:02 · 15683 阅读 · 1 评论 -
java将本地Jar包导入Maven项目
1、添加system范围的直接引用${project.basedir} 指项目的所在路径直接采用system 的范围,指定本地jar包的绝对路径。如果jar包放在${project.basedir}/src/main/resources/lib/下面 <dependency> <groupId>cache</groupId> <artifactId>cache-jdbc</artifactId原创 2020-07-14 16:26:04 · 15484 阅读 · 1 评论 -
java通过jdbc获取查询sql的字段信息
jar包引入需要把连接数据库的jar包引入进行,以mysql为例 <!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java --> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId&g原创 2020-07-13 16:42:18 · 25892 阅读 · 1 评论 -
java调用webservice服务
引入jar包 <dependency> <groupId>org.apache.cxf</groupId> <artifactId>cxf-rt-frontend-jaxws</artifactId> <version>3.3.3</version> </dependency> <dependen原创 2020-07-07 23:50:11 · 20772 阅读 · 0 评论 -
xml格式的String字符串转json字符串
1.引入pom依赖<dependency> <groupId>org.json</groupId> <artifactId>json</artifactId> <version>20180130</version></dependency>2.需要转换的xml代码示例...原创 2019-09-23 11:32:41 · 24753 阅读 · 0 评论 -
Java常用工具类-发短信(集成云通信的企业信使短信平台)
1、网站后台地址 http://sms.58yhkj.com/2、java调用工具类package com.chinautil.sendsms;import java.util.ArrayList;import java.util.List;import org.apache.http.HttpResponse;import org.apache.http.client.HttpC...原创 2019-09-24 14:43:29 · 311 阅读 · 0 评论 -
Tomcat8如何正确进入Manager App和Host Manager页面
默认情况下,我们安装tomcat8之后,访问tomcat主页面,出现如下图所示界面:http://localhost:8080/(端口号可查看/conf/server.xml)当我们需要访问Manager App或者Host Manager时,出现如下所示的错误:401表示无权限。根据提示,我们需要在tomcat安装目录下的conf/tomcat-users.xml配置文件中增加用户角色...原创 2019-07-11 17:40:11 · 22101 阅读 · 0 评论 -
SonrLint常见解决方案
转载 https://blog.csdn.net/qq_37107280/article/details/86677098转载 2019-07-03 10:14:27 · 426 阅读 · 0 评论 -
(转)一个故事告诉你什么是消息队列
一个故事告诉你什么是消息队列案例有一天,产品跑来说:“我们要做一个用户注册功能,需要在用户注册成功后给用户发一封成功邮件。”小明(攻城狮):“好,需求很明确了。” 不就提供一个注册接口,保存用户信息,同时发起邮件调用,待邮件发送成功后,返回用户操作成功。没一会功夫,代码就写完了。验证功能没问题后,就发布上线了。线上正常运行了一段时间,产品匆匆地跑来说:“你做的功能不行啊,运营反馈注册操作响...转载 2019-05-20 16:05:59 · 176 阅读 · 0 评论 -
springboot启动项目编码问题
1.报错信息org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputExcep2、报错说明这个是java运行jar包编码问题导致3、处理方法3.1 删除配置文件的中文注释3.2 启动命令时添加编码格式启动java -Dfile.encoding=utf-8 -jar XXX.jar...原创 2020-06-09 23:14:27 · 23681 阅读 · 1 评论 -
导出excel工具类
1、excel工具类代码如下package com.senta.mdt.common.util;import com.senta.mdt.api.mdtvisit.controller.ExcelController;import org.apache.poi.hssf.usermodel.*;import org.apache.poi.ss.usermodel.HorizontalAl...原创 2019-07-07 15:53:09 · 10911 阅读 · 0 评论 -
IntelliJ Idea解决Could not autowire. No beans of 'xxxx' type found的错误提示
1.问题描述 在Idea的spring工程里,经常会遇到Could not autowire. No beans of ‘xxxx’ type found的错误提示。 首先你要判断是的是否注入进来了,一种是我没有注入进来报错(运行报错)第二种是注入进来了,可以正常运行,但是这个红色的提示看着看着不爽 2. 产生原因原因可能有两个,第一个是IntellijIDEA本身工具的问题。第二个便...原创 2019-06-13 22:27:34 · 854 阅读 · 0 评论 -
springboot事务管理学习总结
一、查看自己数据表是否支持事务sqlserver:默认支持事务MySQL:默认的存储引擎为MyISAM不支持事务,需要改成InnoDB才能支持事务二、在spring boot入口函数添加@EnableTransactionManagement注解是否有必要??2.1百度了很多都说要在springboot启动加上@EnableTransactionManagement才能生效,但是实际操作...原创 2019-05-15 22:35:23 · 23368 阅读 · 0 评论 -
springboot项目 java -jar xxx.jar 没有主清单属性解决方法
1.在pom文件中添加如下org.springframework.bootspring-boot-maven-plugintrue原创 2019-05-11 12:30:02 · 23922 阅读 · 3 评论 -
初学thymeleaf踩过的坑(@RestController和@Controller的区别)
1.问题重现(请求http://localhost:9090/world)返回的字符串而不是html页面2.百度一顿骚操作说是thymeleaf引入的jar把问题(然而pom.XML并没有问题……)3.最后发现是Controller类里面写的注解问题,正确应该是@Controller4.问题解惑4.1@RestController注解相当于@ResponseBody + @Contr...原创 2019-04-14 18:15:22 · 2120 阅读 · 0 评论 -
springboot 测试类 @Autowired对象时报错总结
1.创建实体类测试springboot配置文件给实体类赋值2.报错原因解读错误原因:实体类的位置没有在Application类的所在包下面因为SpringBoot项目的Bean自动装配默认规则是根据Application类所在的包位置从上往下扫描!“Application类”是指SpringBoot项目入口类。这个类的位置很关键:如果Application类所在的包为:com.exam...原创 2019-04-11 21:52:09 · 23041 阅读 · 0 评论 -
初学springboot用IDEA快速搭建一个springboot项目
1.菜单 -> New -> Project -> Spring Initializr 然后点 Next输入如图所示的两个地方的参数,其他参数不用修改,然后Next3.选择你所需要的依赖,因为是快速搭建,选择一个web即可,然后Next4.选择你项目存储的位置,然后点击Finish5.创建项目完成后,先看一下pom.xml中的jar包是否下载完成6.写一个...原创 2019-03-31 18:17:06 · 22296 阅读 · 0 评论 -
为什么要设置HashMap的初始化容量
经常在初始化hashmap的时候出现如下情况《阿里巴巴Java开发手册》解释那么,为什么要这么建议?你有想过没有。我们先来写一段代码在JDK 下面来分别测试下,在不指定初始化容量和指定初始化容量的情况下性能情况如何。public static void main(String[] args) { int aHundredMillion = 10000000; Ma...原创 2019-08-07 17:21:54 · 24190 阅读 · 0 评论 -
Java模拟Http请求封装工具类
封装一个简单的Http请求工具类,主要方便设置代理请求,无需额外框架1、需要引入的jar包 <!-- 简化代码getter setter --> <dependency> <groupId>org.projectlombok</groupId> <artifactId>lombok</artifactId> <optiona.原创 2020-06-29 16:54:27 · 23053 阅读 · 0 评论 -
apache Jmeter 下载、安装、汉化
一、jdk 的安装首先,需要先安装好jdk8(推荐)二、官网下载 jmeter 安装 zip 包,直接解压到电脑任意硬盘(一)jmeter官网地址:https://jmeter.apache.org 点击打开链接(二)官网直接下载地址:https://jmeter.apache.org/download_jmeter.cgi 点击打开链接官网下载版本步骤:→打开链接:https...原创 2019-11-15 16:04:46 · 23381 阅读 · 0 评论 -
java 里面耦合和解耦
百度解释: 耦合是指两个或两个以上的体系或两种运动形式间通过相互作用而彼此影响以至联合起来的现象。解耦就是用数学方法将两种运动分离开来处理问题。这是形象搞笑的比喻: 完全可以这么想像嘛,有一对热恋中的男女,水深火热的,谁离开谁都不行了,离开就得死,要是对方有一点风吹草动,这一方就得地动山摇。 可以按照琼瑶阿姨的路子继续想象,想成什么样都不过分,他们之间的这种状态就应该叫做“偶合”。...原创 2019-11-10 18:35:38 · 42061 阅读 · 1 评论 -
RPC、RMI、HTTP、REST的区别
1.RPC:远程服务调用(Remote Procedure Call),加上Protocol后可以称为远程过程调用协议,可以用不同的语言实现,可以借用HTTP协议或者其他协议来实现,一般都是通过基于TCP/IP的自定义协议实现。比如Feign。1.1 HTTP协议和TCP/IP协议有什么关系呢?HTTP是应用层协议,TCP/IP是传输层协议。HTTP协议请求中会包含很多内容,传输效率要低,一...原创 2019-11-10 17:53:10 · 43158 阅读 · 0 评论 -
spring添加定时器@Scheduled
1、在springmvc.xml里面配置 <!--spring定时器配置自动扫描,初始化线程池大小等--> <task:annotation-driven scheduler="myScheduler"/> <task:scheduler id="myScheduler" pool-size="5"/>-->2、编写定时器工具类...原创 2019-07-15 09:30:27 · 22066 阅读 · 0 评论 -
将List数据转成树的两种方式(递归、循环)
在做用户菜单权限的时候(因为多张表关联外键,hibernate返回回去会出现无限循环),所以把他转换成和数据库无关的VO类即可一 、VO类如下** * * * 封装菜单的树形结构 * @author 六松岛福小林 * **/public class MenuTree implements java.io.Serializable { /** * 树形节点id...原创 2019-07-18 14:13:20 · 46219 阅读 · 1 评论