
Java
文章平均质量分 60
Java
培根芝士
相看两厌,不若相忘于江湖
展开
-
SpringBoot使用开发环境的application.properties
在Spring Boot项目中,application.properties 或 application.yml 文件是用于配置应用程序外部属性的重要文件。这些文件允许定制你的应用,而无需更改代码。根据不同的运行环境,可以通过创建以application-{profile}.properties格式命名的文件来定义不同环境的配置,其中{profile}是环境标识,如test(测试)、dev(开发)、prod(生产)等。原创 2024-07-16 19:56:19 · 632 阅读 · 0 评论 -
SpringBoot如何使用Kafka来优化接口请求的并发
在Spring Boot中使用 Kafka 来优化接口请求的并发,主要是通过将耗时的任务异步化到Kafka消息队列中来实现。这样,接口可以立即响应客户端,而不需要等待耗时任务完成。在Spring Boot应用程序中调用Kafka通常涉及使用Spring Kafka库,它提供了与Apache Kafka的高级集成,使得从Spring Boot应用程序中发送和接收消息变得更加简单和直观。原创 2024-07-16 18:05:06 · 675 阅读 · 0 评论 -
SpringBoot 解决 getSession().getAttribute() 在负载均衡环境下无法获取session的问题
在Spring Boot中,使用方法时遇到在负载均衡环境下无法正确获取session属性的问题,通常是由于session属性存储在单个服务器的内存中,而负载均衡会导致用户的请求被分配到不同的服务器上,因此无法找到在其他服务器上未定义的session属性。原创 2024-07-15 20:51:41 · 1088 阅读 · 0 评论 -
SpringBoot解决Apache Tomcat输入验证错误漏洞
ApacheTomcat 输入验证错误漏洞(CVE-2024-24549)CVE编号漏洞描述Apache Tomcat是美国阿帕奇(Apache)基金会的一款轻量级Web应用服务器。该程序实现了对Servlet和JavaServer Page(JSP)的支持。Apache Tomcat存在输入验证错误漏洞,该漏洞源于HTTP/2请求的输入验证不正确,会导致拒绝服务。修复方案目前,官方漏洞修复版本已经发布。建议用户升级到安全修复版本: 8.0.x 用户升级组件到 8.5.99 版;原创 2024-07-15 20:39:01 · 2905 阅读 · 0 评论 -
Java实现图像处理
在Java中,图片处理可以通过java.awt和库来完成,java.awt是 Java 标准库(Java Standard Edition, JSE)的一部分。原创 2024-07-12 13:15:38 · 383 阅读 · 0 评论 -
SpringBoot使用@RestController处理GET和POST请求
在Spring MVC中,@RestController注解的控制器类可以处理多种HTTP请求方法,包括GET和POST。这些请求方法通过特定的注解来映射,比如@GetMapping用于GET请求,@PostMapping用于POST请求。这些注解是@RequestMapping的特定化版本,提供了更清晰的语义。原创 2024-07-08 11:26:21 · 1251 阅读 · 0 评论 -
解决MySQL报错:“The last packet sent successfully to the server was 0 milliseconds ago.”
方法就是将mysql回收空闲连接的时间变长,mysql默认回收时间是8小时,可以在mysql目录下的my.cnf中增加下面配置,将时间改为1天。之所以出现异常,是由于数据库回收了连接,而系统的缓冲池不知道,继续使用被回收的连接所致的。wait_timeout=86400 //加上这一句。原创 2023-09-07 13:13:07 · 34074 阅读 · 0 评论 -
Java通过正则对字符串中的数字补零
可以先通过正则对字符串中的数字补0,然后再通过正则去除掉多余的0原创 2023-08-11 11:28:12 · 530 阅读 · 0 评论 -
SpringBoot集成MQTT
SpringBoot实现MQTT消息发送和接收原创 2023-07-12 10:53:16 · 2340 阅读 · 0 评论 -
LocalDateTime报错“Unable to obtain LocalDateTime from TemporalAccessor…”
把yyyy-MM-dd 格式的字符串转为 LocalDateTime 对象时抛出异常。原创 2023-06-26 14:41:00 · 8440 阅读 · 0 评论 -
Maven打包无法连接数据库解决办法
在Maven项目打包时报错:打包过程中会执行test单元测试,但是正式环境的数据库限制了访问,所以在本地打包时因为连不上数据库导致打包失败。原创 2023-03-16 11:32:00 · 1468 阅读 · 0 评论 -
SpringBoot+Mybatis-Plus使用多数据源
常见的使用Mybatis-Plus配置多数据源方式有两种:一种是通过java config的方式手动配置两个数据源,另一种方式便是使用 dynamic-datasource-spring-boot-starter。dynamic-datasource-spring-boot-starter 是一个基于springboot的快速集成多数据源的启动器。原创 2023-03-08 23:12:56 · 1963 阅读 · 0 评论 -
Java接入微信支付APIV3(Native)
Native支付是指商户系统按微信支付协议生成支付二维码,用户再用微信“扫一扫”完成支付的模式。原创 2023-03-07 20:13:39 · 4109 阅读 · 2 评论 -
Java的JVM(Java虚拟机)参数配置
程序在运行过程中,会产生大量的内存垃圾(一些没有引用指向的内存对象都属于内存垃圾,因为这些对象已经无法访问,程序用不了它们了,对程序而言它们已经死亡),为了确保程序运行时的性能,java虚拟机在程序运行的过程中不断地进行自动的垃圾回收(GC)。GC是不定时去堆内存中清理不可达对象。不可达的对象并不会马上就会直接回收, 垃圾收集器在一个Java程序中的执行是自动的,不能强制执行清楚那个对象,即使程序员能明确地判断出有一块内存已经无用了,是应该回收的,程序员也不能强制垃圾收集器回收该内存块。原创 2023-03-04 16:01:43 · 3815 阅读 · 0 评论 -
Java通过属性名获取Object对象属性值
通过已知的属性名称,从对象里获取数据的方式。原创 2023-02-24 10:56:52 · 4079 阅读 · 0 评论 -
Java使用itextpdf生成PDF文件
iText是用于生成PDF文档的一个java类库。通过iText不仅可以生成PDF文档,而且可以将Html文件转化为PDF文件。原创 2023-02-22 10:51:27 · 7234 阅读 · 0 评论 -
Mybatis将参数作为查询字段或表名
在传入的参数作为select、create等后面的查询或创建列的字段名或表名时,一定要使用“${column}”的格式,而不能使用“#{column}”的格式。sql语句:会被解析为:select?;#{ }被解析为一个参数占位符“?”,select后面的“?”在运行时会报异常,无法解析。sql语句:当传递参数“sex”、“user”时,sql会解析为:可以看到预编译之前的sql语句已经不包含变量column和name了。原创 2023-02-08 19:44:29 · 3402 阅读 · 0 评论 -
Mybatis批量增删改查操作数据
Mybatis批量操作数据。原创 2023-02-08 17:57:09 · 257 阅读 · 0 评论 -
Mybatis的mapper.xml出现 tag name excepted 错误
mapper报了tag name excepted错误。原创 2023-02-06 15:31:29 · 480 阅读 · 0 评论 -
Mybatis使用insert插入后获取id值
调用orderMapper.insertOrder(record)执行插入语句,返回值是一个int类型,如果成功返回的是1,失败返回的是exception。插入成功后可以使用这个实体类对象.getId()获取ID值。原创 2023-01-29 10:53:32 · 5846 阅读 · 0 评论 -
解决feign变慢的问题
微服务之间通过feign调用,最近发现调用速度变慢了。原创 2022-11-15 19:29:19 · 2872 阅读 · 0 评论 -
SpringBoot集成Druid
Druid是阿里巴巴开源平台上一个数据库连接池实现,它结合了C3P0、DBCP、Proxool等DB池的优点,同时加入了日志监控,可以很好的监控DB池连接和SQL的执行情况,可以说是针对监控而生的DB连接池。原创 2022-11-07 16:00:24 · 1018 阅读 · 0 评论 -
解决CVE-2022-22978 Spring Security RegexRequestMatcher 认证绕过漏洞
Spring 官方通报了一个 Spring Security 框架的认证绕过漏洞 CVE-2022-22978 :因为 `RegexRequestMatcher` 正则表达式处理的特性,导致可能某些需要认证的 `Servlet` 被绕过。原创 2022-09-24 16:09:50 · 3301 阅读 · 0 评论 -
解决Maven报错“Cannot resolve com.lowagie:itext:2.1.7.js7”
Maven下载2.1.7.js7版本的itext依赖时报错:“Cannot resolve com.lowagie:itext:2.1.7.js7”原创 2022-09-15 10:42:14 · 5238 阅读 · 0 评论 -
IDEA Maven导入本地jar包
3、然后重新importmavenproject,就可以跟使用Maven包一样使用本地的jar包了。1、使用maven命令将本地jar包安装到maven的本地repository中。注意1和2中的groupId、artifactId、version保持一致。2、在项目的pom.xml文件中中加入相应的依赖。...原创 2022-07-15 18:53:11 · 14794 阅读 · 0 评论 -
SpringBoot集成MyBatis-Plus代码生成器FastAutoGenerator
MyBatis-Plus提供FastAutoGenerator代码生成器,根据数据库中已经存在的表,生成Entity、Mapper、Mapper XML、Service、Controller等各个模块的代码,可以极大的提升开发效率。 2、编写快速生成代码类3、修改application.properties配置文件4、运行GeneratorUtil生成代码执行完成。就可以看到项目结构和文件已经生成好了。............原创 2022-07-08 18:51:15 · 7524 阅读 · 0 评论 -
SpringCloud使用OpenFeign
OpenFeign是一种声明式、模板化的HTTP客户端。使用OpenFeign能让编写Web Service客户端更加简单。使用时只需定义服务接口,然后在上面添加注解。OpenFeign也支持可拔插式的编码和解码器。Spring cloud对Feign进行了封装,使其支持MVC注解和HttpMessageConverts。和Eureka和Ribbon组合可以实现负载均衡。OpenFeign默认将Ribbon作为负载均衡器,直接内置了 Ribbon。在导入OpenFeign 依赖后无需专门导入Ribbon 依原创 2022-07-08 11:04:12 · 1107 阅读 · 0 评论 -
SpringBoot使用RestTemplate
RestTemplate 是由 Spring 提供的一个 HTTP 请求工具,它提供了常见的REST请求方案的模版,例如 GET 请求、POST 请求、PUT 请求、DELETE 请求以及一些通用的请求执行方法 exchange 以及 execute。RestTemplate 继承自 InterceptingHttpAccessor 并且实现了 RestOperations 接口,其中 RestOperations 接口定义了基本的 RESTful 操作,这些操作在 RestTemplate 中都得到了实现原创 2022-05-19 17:13:55 · 7052 阅读 · 0 评论 -
SpringBoot使用JWT实现Token登录校验
JWT全称JSON Web Token,实现过程简单的说就是用户登录成功之后,将用户的信息进行加密,然后生成一个token返回给客户端,与传统的session交互没太大区别。区别就是token存放了用户的基本信息,更直观一点就是将原本放入redis中的用户数据,放入到token中去了。1、导入依赖<dependency> <groupId>io.jsonwebtoken</groupId> <artifactId>jjwt<原创 2022-05-16 20:04:34 · 1864 阅读 · 0 评论 -
SpringBoot读取application.properties配置文件
方案1:使用PropertiesLoaderUtilsimport java.util.Properties;import org.springframework.core.io.Resource;import org.springframework.core.io.ClassPathResource;import org.springframework.core.io.support.PropertiesLoaderUtils;public static Properties read原创 2022-05-12 15:55:57 · 3757 阅读 · 0 评论 -
SprintBoot使用RabbitMQ
1、配置RabbitMQ1.1、创建交换机创建交换机的时候需要指定虚拟主机以及交换机的类型(direct(路由模式)、fanout(广播)、headers、topic)direct:Exchange通过消息携带的路由键来将消息分发到对应的队列中 fanout:Exchange将消息分发到所有绑定到交换机的队列中 headers:Exchange通过判断消息头的值是否与绑定的值相匹配来分发消息x-match为any时,消息头的任意一个值匹配就可以满足条件x-match为all时,消息头的原创 2022-05-11 19:52:18 · 356 阅读 · 0 评论 -
Java生成随机数
在java.util.Random中提供了产生随机数的API:int nextInt(int bound)返回从随机数生成器序列中提取的,均匀分布在0(包含)和bound(不包含)之间的一个int类型的伪随机数。简单说,就是返回[0,bound)区间中的一个int值。0 <= x < bound返回指定范围的随机数如果想在范围 [MIN, MAX]之间产生随机数,即:MIN <= x <= MAX,只需要这样:nextInt(MAX- MIN+ ..原创 2022-05-09 16:43:29 · 712 阅读 · 0 评论 -
SpringBoot使用Nacos
Nacos(Dynamic Naming and Configuration Service)是阿里巴巴开源的一个动态服务发现、配置管理和服务管理平台。Nacos特性支持配置中心管理(含图形化界面) 部署交付简单 包含注册中心,不用独自搭建配置和注册中心。 完美集成spring cloud和dubbo,拓展性好1、Nacos基本原理Nacos作为注册中心分为server与client。Server采用Java编写,为client提供注册发现服务与配置服务。而client可以用多语言实现原创 2022-04-08 16:26:16 · 29985 阅读 · 3 评论 -
SpringBoot添加定时任务
开启定时任务在启动类上添加@EnableScheduling注解,启动自动任务@EnableScheduling@SpringBootApplicationpublic class TestDemoApplication { public static void main(String[] args) { SpringApplication.run(TestDemoApplication.class, args); }}新建定时任务定时方法使用 @Sc原创 2022-04-06 15:40:43 · 1154 阅读 · 0 评论 -
SpringBoot添加HTTPS支持
证书生成使用SSL需要我们先生成一个证书,这个证书我们可以自己生成,也可以从SSL证书授权中心获得。命令生成证书生成JKS证书keytool -genkeypair -alias tomcat -keyalg RSA -keysize 1024 -validity 365 -keystore keystore.jks -keypass 123456 -storepass 123456生成P12证书keytool -genkeypair -alias tomcat -keyalg原创 2022-03-28 20:20:45 · 1197 阅读 · 0 评论 -
SpringBoot使用dozer
Dozer是Java Bean到Java Bean映射器,它以递归方式将数据从一个对象复制到另一个对象。通常,这些Java Bean将具有不同的复杂类型。Dozer支持简单属性映射,复杂类型映射,双向映射,隐式显式映射以及递归映射。这包括映射还需要在元素级别进行映射的集合属性。1、导入依赖<dependency> <groupId>net.sf.dozer</groupId> <artifactId>dozer-spring<原创 2022-03-29 16:02:00 · 797 阅读 · 1 评论 -
SpringBoot使用Mybatis-Plus
MyBatis-Plus(简称 MP)是一个 MyBatis的增强工具,它在 MyBatis 的基础上只做增强不做改变,为简化开发、提高效率而生。原创 2022-03-28 15:46:09 · 3724 阅读 · 0 评论 -
使用IDEA搭建SpringCloud项目
创建服务注册发现中心工程1、选中项目右击–>New–>Module勾选Web->Spring Web勾选Spring Cloud Discovery->Eureka Server2、修改application.properties文件server.port=8761eureka.instance.hostname=localhosteureka.client.register-with-eureka=falseeureka.client.fetc.原创 2022-03-09 14:50:48 · 1812 阅读 · 0 评论 -
Log4j漏洞修复
Apache Log4j是一个功能强大的日志组件,提供方便的日志记录。12 月 10 日凌晨,Apache 开源项目 Log4j 的远程代码执行漏洞细节被公开,由于Apache Log4j2某些功能存在递归解析功能,攻击者可直接构造恶意请求,触发远程代码执行漏洞。此次漏洞的出现,正是由用于 Log4j 2 提供的 lookup 功能造成的,该功能允许开发者通过一些协议去读取相应环境中的配置。但在实现的过程中,并未对输入进行严格的判断,从而造成漏洞的发生。简单来说,就是在打印日志时,如果发现日志内原创 2021-12-30 11:24:17 · 2227 阅读 · 0 评论 -
Java数据类型转换
String 转换为String[]String str = "aaa,bbb,ccc";String[] s = str.split(",");String[] 转换为StringString[] s = {"aaa","bbb","ccc"};String str = String.join(",", s);ArrarList<String> 转换为 String[]ArrayList<String> list = new ArrayList&l..原创 2021-12-22 20:04:20 · 434 阅读 · 0 评论