自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

〆、风神的博客

我们总是梦想着伟大,却过着平凡。

  • 博客(136)
  • 收藏
  • 关注

原创 热门面试题

表类型如果是 MyISAM ,那 id 就是 8。表类型如果是 InnoDB,那 id 就是 6。InnoDB 表只会把自增主键的最大 id 记录在内存中,所以重启之后会导致最大 id 丢失。1、 用户向服务器发送请求,请求被 Spring 前端控制 Servelt DispatcherServlet 捕获(捕获)2、 DispatcherServlet对请求 URL进行解析,得到请求资源标识符(URI)。

2023-08-18 15:47:11 242

原创 Java POI实现Excel导出

【代码】Java POI实现Excel导出。

2023-01-13 14:28:02 387 1

原创 java注解以及如何利用反射获取注解的属性值

1.使用@interface自定义注解时,自动继承了java.lang.annotation.Annotation接口2.分析:(1) @ interface用来声明一个注解,格式: public @ interface注解名{定义内容}(2)其中的每一个方法实际上是声明了一个配置参数(3)方法的名称就是参数的名称(4)返回值类型就是参数的类型(返回值只能是基本类型,Class , String , enum )(5)可以通过default来声明参数的默认值。

2023-01-13 11:43:56 2478

原创 Spring Boot 和 Spring Cloud Feign调用服务及传递参数踩坑记录

FeignClient用于通知Feign组件对该接口进行代理(不需要编写接口实现),使用者可直接通过@Autowired注入。Spring Cloud应用在启动时,Feign会扫描标有@FeignClient注解的接口,生成代理,并注册到Spring容器中。生成代理时Feign会为每个接口方法创建一个RequetTemplate对象,该对象封装了HTTP请求需要的全部信息,请求参数名、请求方法等信息都是在这个过程中确定的,Feign的模板化就体现在这里。微服务端。

2022-12-22 12:02:16 1191

原创 SpringCloud Fegin解决java.lang.IllegalArgumentException: Body parameter 0 was null

造成这个错误的原因是,我在服务a 调用服务b 的时候参数传递的是null,而服务b通过 @RequestBody 来接收参数,@RequestBody 的 required 默认值是true。最近在工作中遇到了一个Fegin传参异常,特此记录便于日后查阅。

2022-12-22 11:30:23 993

原创 DozerMapper:对象转换器使用教程

【代码】DozerMapper:对象转换器使用教程。

2022-12-22 11:28:12 372

原创 Method has too many Body parameters的处理办法

当使用Feign时,如果发送的是get请求,那么需要在请求参数前加上@RequestParam注解修饰,Controller里面可以不加该注解修饰 ,@RequestParam可以修饰多个,@RequestParam是用来修饰参数,不能用来修饰整个对象。注意 用来处理@RequestBody Content-Type 为 application/json、application/xml编码的内容。

2022-12-22 11:17:07 1451 2

原创 PDF文件的二进制流转图片文件的二进制流工具类

首先我们来实现pdf字节流转成img字节流。最近有个客户要求将pdf转成图片保存在桶。

2022-12-22 10:51:34 550

原创 Java根据URL获取文件的二进制工具类

【代码】Java根据URL获取文件的二进制工具类。

2022-12-22 10:46:24 893

原创 SpringBoot 集成 WebSocket

WebSocket 是一种全新的协议。它将 TCP 的 Socket(套接字)应用在了web page上,从而使通信双方建立起一个保持在活动状态的连接通道,并且属于。

2022-12-22 10:38:14 1382

原创 超详细的Kafka入门,看这篇就够了

Kafka是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者规模的网站中的所有动作流数据。以时间复杂度为O(1)的方式提供消息持久化能力,即使对TB级以上数据也能保证常数时间复杂度的访问性能。高吞吐率。即使在非常廉价的商用机器上也能做到单机支持每秒100K条以上消息的传输。支持Kafka Server间的消息分区,及分布式消费,同时保证每个Partition内的消息顺序传输。同时支持离线数据处理和实时数据处理。Scale out:支持在线水平扩展。

2022-12-21 16:45:58 712

原创 JAVA反射之访问字段

Java的反射API提供的Field类封装了字段的所有信息:通过Class实例的方法可以获取Field实例:getField(),getFields(),getDeclaredField(),getDeclaredFields();通过Field实例可以获取字段信息:getName(),getType(),getModifiers();通过Field实例可以读取或设置某个对象的字段,如果存在访问限制,要首先调用来访问非public字段。通过反射读写字段是一种非常规方法,它会破坏对象的封装。

2022-12-20 18:14:50 114

原创 No Feign Client for loadBalancing defined. Did you forget to include spring-cloud-starter-loadbalanc

今天的疑惑报错,我大意了啊,没有闪。项目中引入了openfeign,没有在意版本。直到运行项目进行远程调用时报错。由于SpringCloud Feign在Hoxton.M2 RELEASED版本之后不再使用Ribbon而是使用spring-cloud-loadbalancer,所以不引入spring-cloud-loadbalancer会报错。加入spring-cloud-loadbalancer依赖 并且在nacos中排除ribbon依赖,不然loadbalancer无效。

2022-12-20 17:53:55 83

原创 idea中的调试按键(f5,f6,f7,f8)

如果断点处存在方法,f5 则强制进入方法内部,然后一步一步执行方法体,如果再遇到方法,则继续进入方法体,如此循环,直到执行到断点开始处;

2022-12-20 17:42:16 830

原创 SpringData JPA使用聚合函数返回结果如何接收

我的需求是统计域名以及域名出现的次数。之前使用springboot jpa都是把数据库中的表跟实体类绑定,创建继承JpaRepository的接口。但是对于这种查询却无法绑定到原有的实体类。那么改怎么解决这种需求呢?

2022-12-20 17:36:23 589

原创 MyBatis-Plus枚举类型处理

男,女,后台存储的是1,2,前端展示的是男女。

2022-12-20 17:25:52 347

原创 mysql锁机制

锁是计算机协调多个进程或线程并发访问某一资源的机制。在数据库中,除传统的计算资源(如CPU、RAM、V/O等)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。

2022-10-29 16:12:43 79

原创 mysql索引优化与失效场景

Like百分写最右,覆盖索引不写星;VAR引号不可丢,SQL高级也不难!不等空值还有or,索引失效要少用;全值匹配我最爱,最左前缀要遵守;带头大哥不能死,中间兄弟不能断;索引列上少计算,范围之后全失效;

2022-10-10 16:38:57 77

原创 EXPLAIN使用简介

【代码】EXPLAIN使用简介。

2022-10-09 10:31:21 337

原创 使用EasyExcel导出excel

【代码】使用EasyExcel导出excel。

2022-09-22 17:26:32 296

原创 MySQL8.0.24版本`decimal` 的最大位数是 `65`,最大小数点位数是 `30`

【代码】MySQL8.0.24版本`decimal` 的最大位数是 `65`,最大小数点位数是 `30`

2022-09-22 16:14:12 857

原创 EasyExcel常用注解

ExcelProperty 字段配置@ColumnWith 列宽@ContentFontStyle 文本字体样式@ContentLoopMerge 文本合并@ContentRowHeight 文本行高度@ContentStyle 文本样式@HeadFontStyle 标题字体样式@HeadRowHeight 标题高度@HeadStyle 标题样式@ExcelIgnore 忽略项@ExcelIgnoreUnannotated 忽略未注解。

2022-09-14 11:35:44 1102

原创 windows10搭建Elasticsearch8.4.1环境

下载后解压。

2022-09-13 18:06:21 493

原创 windows 上 Kafka 启动

1. 下载Kafka 官网下载链接本例 下载的是 kafka_2.12-3.1.0.tgz下载后解压2. 启动服务需遵循以下几步, 依次打开新的命令行启动, 也不要关闭之前的命令行窗口cmd 至 D:\tools\kafka_2.12-3.1.0启动 Zookeeper 服务, 默认端口 2181bin\windows\zookeeper-server-start.bat config\zookeeper.properties启动 Kafka 服务,默认端口 9092bin\wind

2022-05-21 18:26:12 6170 1

原创 谈谈new Thread的弊端及Java四种线程池的使用

1.new Thread的弊端执行一个异步任务你还只是如下new Thread吗?new Thread(new Runnable() { @Override public void run() { // TODO Auto-generated method stub }}).start();说说弊端:a. 每次new Thread新建对象性能差。b. 线程缺乏统一管理,可能无限制新建线程,相互之间竞争,及可能占用过多系统资源导致死机或oom。c

2022-05-21 18:24:42 1087

原创 Spring注解@Transactional是什么?具体的使用方法

本篇文章,我将和大家介绍 Spring 中的一个注解 @Transactional,将介绍一下 @Transactional的基本概念以及具体的使用方法。希望本篇文章能够对对大家的学习有所帮助!一、Transactional声明式事务管理建立在AOP之上的。其本质是对方法前后进行拦截,然后在目标方法开始之前创建或者加入一个事务,在执行完目标方法之后根据执行情况提交或者回滚事务。简而言之,@Transactional注解在代码执行出错的时候能够进行事务的回滚。二、实战1、首先我在Mysql

2022-05-21 18:14:36 1308

原创 SpringBoot项目Maven打包时跳过测试

解决方式:在pom.xml配置文件的properties中加入 <skipTests>true</skipTests>,这样在打包时就不是去测试SpringBoot项目的可执行性了。<properties> <java.version>1.8</java.version> <!-- 跳过测试 --> <skipTests>true</skipTests>&lt

2022-05-21 15:51:59 2369

原创 【SpringBoot DB 系列】Mybatis-Plus 多数据源配置

MyBatis-Plus (opens new window)(简称 MP)是一个 MyBatis (opens new window)的增强工具,在 MyBatis 的基础上只做增强不做改变,既然做增强,那多数据源这种硬性场景,肯定是有非常简单的解决方案的本文将实例演示 Mybatis-Plus 多数据源的配置I. 环境准备1. 数据库相关一个oracle,一个sqlserver2. 相关配置pom.xml<?xml version="1.0" encoding="UTF-8"?&gt

2022-04-03 21:04:41 1733

原创 SpringBoot 使用jedis整合redis实现缓存处理

目录简介redis基本结构:代码实现1.新建Springboot项目,添加必要的依赖 pom.xml:2. 在application.yml配置文件中添加 redis的相关配置3.SpringBoot 添加 自定义 redis 配置类4.创建redis工具类5.User 实体类6.redis使用实例(以存取为例):7.启动项目,进行测试简介Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库。Redis 与其他 key - value 缓存产品有以下三个特点:R

2022-04-03 20:20:43 597 1

原创 Mysql启动失败:InnoDB: mmap(137428992 bytes) failed; errno 12

[root@iZwz98m7yqiqoatk3bc39fZ ~]# systemctl start mysqldJob for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.linux服务器上Mysql启动报错,找了很多资料,查看Mysql日志如下:[root

2022-03-26 09:08:25 570

原创 SpringBoot发送邮件

目录简述使用SpringBoot发送邮件使用SpirngBoot发送邮件,首先需要引入mail依赖然后在配置文件application.yml中加入相关配置信息开启邮箱第三方支持以及获取授权码(以QQ邮箱为例)开始撸代码测试简述在日常工作开发中,发送邮件功能有时需要我们去开发使用,这里首先介绍以下与发送接受邮件相关的一些协议:发送邮件:SMTP、MIME,是一种基于"推"的协议,通过SMTP协议将邮件发送至邮件服务器,MIME协议是对SMTP协议的一种补充,如发送图片附件等接收邮件:POP、IMA

2022-03-16 22:22:12 290

原创 Redis分布式锁

目录为什么要使用分布式锁满足分布式锁的必要条件实现分布式锁的几种方式Redis实现分布式锁的命令分布式锁考虑的问题互斥性。在任何时刻,保证只有一个客户端持有锁不能出现死锁。如果在一个客户端持有锁的期间,这个客户端崩溃了,也要保证后续的其他客户端可以上锁。保证上锁和解锁都是同一个客户端。java代码实现Redis分布式锁先把需要的jar包引入加锁设置参数的实体类Redis分布式具体代码实现Redis分布式锁使用为什么要使用分布式锁如果在一个分布式系统中,我们从数据库中读取一个数据,然后修改保存,这种情况很

2022-03-15 15:48:50 968

原创 Lombok之EqualsAndHashCode注解

1)测试准备(父类People,子类User)@Data//不能在此加@EqualsAndHashCode(callSuper = true),会出现报错//Generating equals/hashCode with a supercall to java.lang.Object is pointless.//翻译:生成对该对象的equals和hashcode方法是毫无意义的,最后分析完原理在回答这个错误的原因public class People { private Integer

2022-03-15 11:52:24 2023

原创 RSA加解密、签名及验签的原理及工具类

package com.ahysf.common.utils;import cn.hutool.core.codec.Base64;import com.ahysf.controller.saas.SaaSDemo;import sun.misc.BASE64Decoder;import sun.misc.BASE64Encoder;import javax.crypto.Cipher;import java.nio.charset.StandardCharsets;import java

2022-03-15 11:37:33 1978

原创 AESUtil

package com.ahysf.common.utils;import com.alibaba.fastjson.JSONObject;import org.apache.commons.codec.binary.Base64;import org.apache.commons.lang3.StringUtils;import org.bouncycastle.jce.provider.BouncyCastleProvider;import javax.crypto.Cipher;imp

2022-03-15 11:30:33 368

原创 Linux 中安装 JDK(rpm包安装)

1、进入链接下载 rpm 安装包https://www.oracle.com/java/technologies/javase/javase-jdk8-downloads.html2、下载完成后,上传到 Linux3、开始安装命令sudo rpm -ivh jdk-8u211-linux-x64.rpm4、查询 jdk 安装路径查询命令find / -name java进入到安装路径下cd /usr/java/jdk1.8.0_211-amd64/查看当前路径,并将该路径进行

2022-02-19 01:15:49 2178

原创 MyBatis-Plus 解除分页限制

前言如果你的MyBatis-Plus的分页受到限制,例如每次最多一页只能查询500条,不用担心,马上解除限制吧。解决方案在MybatisPlusConfig中配置paginationInterceptor.setLimit(-1); 代表分页不受任何限制,当然如果对系统性能有限制,建议选择一个合理值,例如1w等。package org.springblade.config;import com.baomidou.mybatisplus.extension.plugins.PaginationIn

2022-02-11 14:24:24 1802

原创 Linux - yum安装步骤

yum安装步骤yum是Linux系统的安装必备神器,简直不要太方便。但是新系统一般是不自带yum工具的,所以需要手动安装一下。环境:centos71.新建一个目录用来保存yum安装包mkdir yum2.进入文件夹并输入命令wget http://yum.baseurl.org/download/3.2/yum-3.2.28.tar.gz3.解压tar -xvf yum-3.2.28.tar.gz5.进入yum目录cd yum-3.2.286.脚本安装./yummain.py

2022-02-10 22:09:52 22346 5

原创 手把手教你搭建SpringCloud项目(十八)集成Sleuth分布式链路跟踪

今天这篇文章介绍一下链路追踪相关的知识,以Spring Cloud Sleuth和zipkin这两个组件为主。为什么需要链路追踪?大型分布式微服务系统中,一个系统被拆分成N多个模块,这些模块负责不同的功能,组合成一套系统,最终可以提供丰富的功能。在这种分布式架构中,一次请求往往需要涉及到多个服务,如下图:服务之间的调用错综复杂,对于维护的成本成倍增加,势必存在以下几个问题:服务之间的依赖与被依赖的关系如何能够清晰的看到?出现异常时如何能够快速定位到异常服务?出现性能瓶颈时如何能够迅速定位哪个

2021-12-28 19:00:42 2611 1

原创 手把手教你搭建SpringCloud项目(十七)集成Stream消息驱动

一、概述1. 是什么?在实际应用中有很多消息中间件,比如现在企业里常用的有ActiveMQ、RabbitMQ、RocketMQ、Kafka等,学习所有这些消息中间件无疑需要大量时间经历成本,那有没有一种技术,使我们不再需要关注具体的消息中间件的细节,而只需要用一种适配绑定的方式,自动的在各种消息中间件内切换呢?消息驱动就是这样的技术,它能屏蔽底层消息中间件的差异,降低切换成本,统一消息的编程模型。Spring Cloud Stream 是一个构建消息微服务驱动的框架。可以屏蔽底层消息中间件的差异,降低

2021-12-28 16:36:00 651

空空如也

空空如也

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

TA关注的人

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