自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

银魄清辉自夜凝的博客

再小的帆也能远航!

  • 博客(159)
  • 资源 (1)
  • 收藏
  • 关注

原创 Map和String相互转换

Map转String/** * * Map转String * 1、获取map的key的set集合 转换成String数组 * 2、循环String数组 拼接字符串 每个key value 一组间用 顿号隔开 * @param map * @return */ public static String mapConvertString(Map<String,Object> map){ Set<St

2022-05-09 00:47:55 7363

原创 Docker安装rabbitmq以及使用(映射端口、设置账号密码)

docker search rabbitmq:managementdocker pull rabbitmq:managementdocker imagesdocker run -d -p 15672:15672 -p 5672:5672 -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=admin --name rabbitmq --hostname=rabbitmqhostone rabbitmq:management

2022-04-24 22:11:27 4205

原创 读取yml配置文件以及工具类静态方法获取配置文件配置信息

获取阿里文件上传配置信息为例配置文件配置好 oss: access-key-id: xxxxx accesskey-secret: xxxxxx bucket-name: xxxx endpoint: https://oss-cn-shenzhen.aliyuncs.com使用配置类读取配置文件信息/** * @ClassName: AliOssProperties * @Description: oss配置文件类 * @author: ruyi

2022-04-06 17:35:27 1286

原创 架构其实是经验的累积

在很多人眼里架构好像是特别厉害的存在,一个好的其实架构是经验的累积不谈场景的架构设计都是耍流氓架构没有对不对,只有合不合适架构与框架的区别架构:系统的宏观设计的标准框架:具体实现的规则架构师解决问题如:大量文件数据读写 影响到磁盘IO 导致数据库查询出现高延迟解决:新架构解决方式:新增redis节点 通过redis高吞吐特性 来完成这些无事物的处理 和数据交互工作​ 京东在618也是采用类似的方案 使用redis 进行数据的持久化与提取工作但是对于公司来说 有几点问题1、架构

2022-03-18 00:20:14 5090 4

原创 linux connect: 网络不可达、没有ip解决方法

查看网卡[root@localhost ruyi]# ifconfig切换root用户(避免权限不足 使用不了命令)su root 编辑文件 /etc/sysconfig/network-scripts/ifcfg-xxxxxx是图片以太网的名称 我的就是ens33vi /etc/sysconfig/network-scripts/ifcfg-ens33修改保存ONBOOT=yes将 ONBOOT=no 改为 ONBOOT=yes按下Esc 键,输入 :wq,保存

2022-03-17 20:09:01 7544 2

原创 docker修改redis的密码

docker ps 找到redis容器root@3670:/home# docker ps -a通过容器名称或者容器id 进入redisdocker exec -it 容器id或者容器名称 /bin/bashroot@3670:/home# docker exec -it redis /bin/bash进入容器成功进入redis客户端redis-cliroot@0e0be7413708:/data# redis-cli# 进入成功127.0.0.1:6379>

2022-03-16 22:06:48 2649

原创 SpringSecurity+ oauth2实现同账号多端同时登录

问题复现项目中使用了app+ pc+ 小程序,当用户同时登录app+pc时 其中一端会被挤下线。出现原因我们使用的是redis存储token,由于redis生token算法原因,多端登录返回同一个token,导致另外一端被挤下线,出现文章开头的情况。下图就是security基于redis生成token的方式可见:extractKey方法中使用values去生成token,多端登录参数进入values都一样所以我们只需要重写token生成规则即可。解决方式:重写token生成规则

2022-02-28 20:36:59 3235 8

原创 优雅的转换拷贝对象—MapStruct集成以及使用

优雅的转换拷贝对象—mapstructMapStruct是什么MapStruct优点MapStruct使用MapStruct代码生成器处理器选项配置具体配置方式创建用户类创建用户VO创建一个转换接口调用user转userVO方法就会自动转换通过接口方法 看自动生成的代码如下自定义属性映射多个source参数的映射MapStruct是什么项目经常有这样的场景,我要把对象a的name转换到对象b的name去,我们经常是使用BeanUtils.copyProperties();方法去实现的,但是这样做很大的

2022-02-27 23:31:12 522

原创 优雅的记录程序执行时间

优雅记录程序执行时间

2022-02-17 15:11:42 1310

原创 【微服务集成阿里SMS短信服务发送短信】

发送短信项目中很多地方都在使用,所以集成一个单独的服务,如果某个服务需要发送短信只需要依赖短信服务即可。1、开通阿里SMS短信,创建模板 (省略)2、创建短信服务 common-server-sms2.1 添加依赖<dependencies> <dependency> <groupId>com.aliyun</groupId> <artifactId>ali..

2022-01-11 18:22:19 672

原创 【计算两点经纬度距离】

知道两个地方的经纬度,计算两点的距离/** * @ClassName: CoordinateUtils * @Description: 计算两点经纬度距离 * @author: ruyi * @date: 2022/1/6 19:52 */public class CoordinateUtils { /** * 6378.137为地球半径(单位:千米) */ private static final double EARTH_RADIUS = 6378.13

2022-01-06 19:57:37 256

原创 随机获取集合中n个元素

需求:每次请求接口要求返回数据是随机不重复的n条数据思路:确定好每次随机取几条数据n,当n>=集合长度时就直接返回集合当n<集合长度时取集合长度的随机数,每次以集合长度的随机数为key,集合的第集合长度的随机数元素为value装入map中,每次循环就去判断map是否包含当前集合长度的随机数key,不包含就进行put操作。实现: /** * 从集合中随机取出N个不重复的元素 * @param list 需要被取出数据的集合 * @param n

2021-12-12 19:59:20 687 2

原创 解决fastjson不输出空字符串、null/设置显示fastjson空值也显示

问题重现首先新建一个map向里面put key和value Map < String , Object > testMap= new HashMap< String , Object>(16); testMap.put("test1","value1"); testMap.put("test2","value2"); testMap.put("test3",null); String testStr = JSON

2021-12-08 14:09:30 6305

原创 集成OpenFeign实现服务通信

创建用户业务服务略 (可以参考前面SpringAlibabaCloud系列文章)业务服务控制层写一个测试接口@RestController@RequestMapping("/user")public class UserController { /** * 测试使用feign 调用 */ @GetMapping("/feign/test") public R<String> feignTest() { return R.o

2021-11-03 17:45:33 118

原创 SpringAlibabaCloud集成服务网关GateWay

1、 创建gataway-server项目pom导入依赖与配置文件 <build> <!-- 如果不设置resource 会导致application.yaml中的@@找不到pom文件中的配置--> <resources> <resource> <directory>src/main/resources</directory>

2021-11-03 09:54:54 137

原创 修改Nacos登录密码和登录名称

一般安装nacos后登录密码默认都是nacos/nacos,但是在正式的生成环境这样肯定是不安全的。查看nacos源码加密方式nacos底层源码是BCryptPasswordEncoder加密器加密,我们这里使用该加密器就可以package com.alibaba.nacos.console.utils;import org.springframework.security.crypto.bcrypt.BCryptPasswordEncoder;/** * Password encoder

2021-11-02 15:14:03 7200 8

原创 SpringAlibabaCloud项目在nacos配置中心读取文件

SpringAlibabaCloud组件中nacos不仅是注册中心也是配置中心,方便配置统一管理。命名空间概念命名空间用来隔离不同环境下的配置文件,在Nacos中配置了命名空间后,需要指定命名空间后才能拉取到该命名空间下的配置文件。我在本地开发,新建开发环境的命名空间创建配置文件在nacos中dev命名空间创建配置文件配置一个字符串用于测试user: learn: "用户服务配置"创建一个为user-server-biz-dev.yaml的配置,使用的是YAML格

2021-10-28 16:44:20 321 2

原创 创建SpringAlibabaCloud项目将服务注册到nacos

一、创建项目,结构如下二、将用户服务(user-server-biz)注册到nacos1、在父项目pom引入相关依赖 <!--公共的一些配置--> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> <project.reporting.outputEncoding>UTF-8</proj

2021-10-27 14:50:05 332 3

原创 解决问题:SpringBoot中application.yml无法使用@@读取pom.xml中标签值

在application.yml中使用了@@读取标签值,报下面的错误Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next token found character '@' that cannot start any token. (Do not use @ for indentation) in 'reader', line 5, column 11: name:.

2021-10-27 14:08:29 1537

原创 下载并启动nacos

官网下载nacos最新稳定版本(我这里用的2.0.3版本)下载解压后如下图进入bin文件夹选择中目录url输入cmd 然后回车然后输入启动命令(standalone代表着单机模式运行,非集群模式):startup.cmd -m standalone启动成功访问 :http://你的ip:8848/nacos/index.html出现以下界面成功启动默认账号nacos密码nacos登录成功,出现一下画面...

2021-10-27 10:45:51 70

原创 Linux安装Erlang、RabbtiMQ,添加新的用户、RabbitMQ常用命令等

安装或者使用所有组件都是从官网入手RabbitMQ官网点击Get Started进入开始页面进行下载准备下载对应的版本(我这里是CentOS)安装Erlang环境RabbitMQ是Erlang语言编写的,所以在安装RabbitMQ之前, 安装之前先查看官网RabbitMQ与Erlang的版本对应关系。使用PackageCloud提供的脚本安装Erlang进入PackageCloud官网找到需要的Erlang版本# 1:执行脚本依赖curl -s https://pack

2021-10-25 18:08:00 1142 2

原创 Linux开放防火墙指定端口

很多时候我们需要通过外部来访问服务器,但是为了保证服务器的安全,不能完全关闭防火墙任由访问,所以我们只开放指定需要访问的端口以开放8080端口为例方法一(适用于centos7和低于7版本)开启8080端口/sbin/iptables -I INPUT -p tcp --dport 8080 -j ACCEPT重启服务/etc/rc.d/init.d/iptables restart方法二先开启防火墙systemctl start firewalld 查看防火墙.

2021-10-15 14:34:01 2787

原创 Linux安装jdk8、配置jdk环境

安装jdk卸载系统自带的openjdk运行命令:rpm -qa | grep java(查看到自带的jdk)通过 rpm -e --nodeps 后面跟系统自带的jdk名 这个命令来删除系统自带的jdk 例如: rpm -e --nodeps java-1.8.0-openjdk-1.8.0.102-4.b14.el7.x86_64`上传安装包到/usr/local/src目录下,解压文件 tar -zxvf jdk-8u151-linux-x64.tar.gz将解压好

2021-10-13 17:17:26 54

原创 Linux修改hosts

在linux环境修改hostssudo vi /etc/hosts填写映射对应的ip保存退出即可:wq

2021-10-10 23:19:46 276

原创 SpringCloudAlibaba集成seata分布式事务遇见的问题总结

一、安装seata 事务管理器时报错:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Could not create connection to database server. at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImp

2021-10-08 01:18:58 568 2

原创 基于seata解决分布式事务

Seata(Simple Extensible Autonomous Transaction Architecture) 是阿里巴巴一款开源的分布式事务解决方案,致力于提供高性能和简单易用的分布式事务服务(详细可见官网)。现在就来使用下seata~~一、下载seata软件下载链接 点击进入下载页面我使用的版本下载链接:https://github.com/seata/seata/releases/download/v1.4.2/seata-server-1.4.2.zip解压如下图文件:二.

2021-09-28 09:29:28 35

原创 Spring Bean的循环依赖The dependencies of some of the beans in the application context form a cycle解决记录

事情起因很久没有遇见循环依赖的问题了,起早上班启动准备和前端联调就报这个问题,大概率是昨天同事写的代码没有启动测试(所以啊,在提交代码前还是得自己启动下测试过才提交,避免影响他人)问题出现启动报错:The dependencies of some of the beans in the application context form a cycleAPPLICATION FAILED TO STARTDescription:The dependencies of some of

2021-08-19 10:45:38 21259 2

原创 mysql查询语句底层的执行流程

引入我去查询T表中 ID为10的数据,我们通常只是看到得到一条结果。其中的过程还不太清楚,如何找到这条数据,先做的什么再做的什么?看到的只是输入一条语句,返回一个结果,却不知道这条语句在 MySQL 内部的执行过程。mysql> select * from T where ID=10;这里把MYSQL拆解下,看看它的组成,经过这个拆解的过程更深入的理解Mysql,当碰到Mysql一些异常和问题,能够看到本质,快速定位与解决。层层刨析MYSQL基本架构下图MySQL 的基本架构示

2021-07-22 20:35:54 110 1

原创 优雅脱敏—利用注解进行数据脱敏(电话号、人名等使用****代替)

一、背景引入在项目中经常有联系人的信息,如电话、身份证等敏感信息,我们肯定不能直接显示在前端,正确的做法应该是对这部分敏感数据进行脱敏,相当于进行简单的加密。eg:手机号:15354568768,应该脱敏成 153****8768这样返回...

2021-06-04 15:48:44 1959 12

原创 使用拦截器和Aop在控制台 日志打印请求参数和请求路径等信息

一、使用拦截器在控制台日志打印请求参数和请求路径等信息public class GlobalRequestInterceptor implements HandlerInterceptor { private static final Logger log = LoggerFactory.getLogger(GlobalRequestInterceptor.class); public GlobalRequestInterceptor() { } public bool

2021-06-04 09:17:15 755

原创 深究简化杀手Lombok(lombok使用以及原理)

一、为什么会出现lombok在近代java史中一个javabean类里面,有着各种getter、setter以及equals方法。看起来是不是非常让人难受呢,特特别是改动了一个字段属性,那么该字段的getter、setter以及equals都要重写去写,是不是非常麻烦?这时候lombok的出现简化了这一系列操作!二、What is lombok?lombok 官网的介绍简单明了的告诉了我们总结来说:lombok就是一个可以通过简单的注解的形式来帮助我们简化一些必须有但显得很臃肿的 Java

2021-05-20 01:46:42 529 1

原创 Idea配置热部署JRebel+快捷键实现热部署

安装插件激活配置插件去到设置setting界面激活插件第一步:生成一个GUID并且准备好自己的邮箱在线生成GUID地址地址格式是https://jrebel.qekang.com/GUID,其中的GUID是步骤一生成的配置好JRebel 自动构建项目Ctrl+Shift+A, 输入Registry,选择第一个勾上 --app.running安装配置完毕启动热部署-快捷键:实现热部署ctrl + shift + f9...

2021-05-07 00:25:24 2799 4

原创 Docker让部署更方便

Docker安装准备换机centos7查看系统信息[root@VM-0-17-centos ~]# cat /etc/os-release[root@VM-0-17-centos ~]# cat /etc/os-release NAME="CentOS Linux"VERSION="8 (Core)"ID="centos"ID_LIKE="rhel fedora"VERSION_ID="8"PLATFORM_ID="platform:el8"PRETTY_NAME="CentOS

2021-05-06 17:28:22 736 3

原创 在JAVA中像数学正常除法计算保留小数点

在JAVA中"/“是取整,”%"是取余,那要是想算类似x÷y=0.z怎么算?方法一:DecimalFormat/** * 除法运算,保留小数 * @param a 被除数 * @param b 除数 * @return 商 */ public static Double txDouble(int a,int b) { //设置保留位数 DecimalFormat df=new DecimalFormat("0.00"); e.setAreaRatio(Doub

2021-04-27 21:34:37 482

原创 已解决:connection holder is null问题。

错误信息Caused by: java.sql.SQLException: connection holder is nullat com.alibaba.druid.pool.DruidPooledConnection.checkState(DruidPooledConnection.java:1085)at com.alibaba.druid.pool.DruidPooledConnection.getMetaData(DruidPooledConnection.java:825)at org.

2021-04-21 20:55:20 11227

原创 参数问题:nested exception is java.lang.NumberFormatException: For input string: “null“,已解决。

org.springframework.web.method.annotation.MethodArgumentTypeMismatchException: Failed to convert value of type 'java.lang.String' to required type 'java.lang.Long'; nested exception is java.lang.NumberFormatException: For input string: "null" at org.sprin

2021-04-05 19:18:43 11785 1

原创 nacos持久化配置到mysql 8.0.+

克隆nacos源码git clone https://github.com/alibaba/nacos.git切换到 nacos 1.1.3 tag修改nacos项目根目录下的pom.xml,手动指定mysql驱动版本打包源码mvn -Prelease-nacos -Drat.skip=true -Dmaven.test.skip=true clean install -U打包后的文件在distribution模块下nacos,复制到指定目录修改配置文件# mysql dat

2021-04-02 21:57:41 1366

原创 下载npm并配置npm环境

下载npm官网下载安装 选择Add to PATH 自动配置到path环境然后一直next 直到完成打开cmd,查看版本。这以上就安装好了。直接可以启动前端的项目进行npm install如果还是报错:‘npm’ 不是内部或外部命令,也不是可运行的程序 或批处理文件。那么就关掉开发软件以管理员方式启动开发软件就可以了。可以选择配置npm的全局模块的存放路径以及cache的路径,我选择的路径使Node.js的安装路径,在此路径下建两个文件夹node_global 和 node_ca

2021-04-01 23:53:56 3459

原创 将本地项目上传至远程仓库

1、在gitee上创建以自己项目名称命名的空项目2、 git bash 到本地项目目录下 打开git3、执行命令 git init 初始化项目4、执行git add . 将本地项目所有文件加入本地仓库缓存5、执行 git commit -m ‘init’ 将本地仓库缓存提交到本地仓库6、执行 git remote add origin git@gitee.com:xxx/xxx.git(你的远端仓库ssh路径)设置远端仓库7、执行 git pull --rebase origin mas

2021-03-30 17:47:35 57

原创 记录一次线上重大问题,商城无法下单。

这周周一刚刚到公司,屁股都没有坐热,客户就发消息来说,商城下单提交不了了。

2021-03-16 23:57:17 142

浏览器端存放数据技术.txt

浏览器端存放数据技术.txt

2020-07-17

空空如也

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

TA关注的人

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