自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

大宇的博客,欢迎访问

知其然,知其所以然,方可造其所以然

  • 博客(386)
  • 问答 (1)
  • 收藏
  • 关注

原创 跟着大宇学SpringCloud目录贴

与君共勉 故不积跬步,无以至千里。不积小流,无以成江海。骐骥一跃不能十步,驽马十驾功在不舍。 谁都是从HelloWorld开始学习的,即使是架构师,也是一样。从头开始学SpringCloud目录 第一节:服务注册与服务发现 第二节:使用Ribbon作为服务消费者 第三节:使用Feign作为服务消费者...

2022-02-22 19:58:35 3410

原创 跟着大宇学MySQL------目录帖

与君共勉 故不积跬步,无以至千里。不积小流,无以成江海。骐骥一跃不能十步,驽马十驾功在不舍。 谁都是从HelloWorld开始学习的,即使是架构师,也是一样。MySQL学习目录 从头开始学MySQL--------表的基本操作 从头开始学MySQL--------数据类型(1) 从头开始学MyS...

2022-02-22 19:58:00 3296 2

原创 跟着大宇学RabbimtMQ目录贴

与君共勉 故不积跬步,无以至千里。不积小流,无以成江海。骐骥一跃不能十步,驽马十驾功在不舍。 谁都是从HelloWorld开始学习的,即使是架构师,也是一样。从头开始学RabbimtMQ目录贴第一节 RabbitMQ生产者消费者第二节 Fanout路由交换机:订阅发布模式第三节 Direct路由交换...

2020-11-10 15:11:33 1659 1

原创 跟着大宇学Shiro--------目录帖

一、我与Shiro 本系列Shiro已经重写,本次重写时间为2018年12月。博主已经在实际项目中接触快Shiro一年,也积累了不少使用心得。文章已经部分转移到了我的专栏里面:跟着大宇学Shiro博客专栏。 本系列教程源码:点击我下载源码 下面是本次重写的博客大纲,希望大宇能够帮助到正在学习shiro的你。我期待与大家一起交流学习、共同进步。...

2020-07-01 17:43:10 10963 10

原创 跟着大宇学SpringBoot目录贴

与君共勉 故不积跬步,无以至千里。不积小流,无以成江海。骐骥一跃不能十步,驽马十驾功在不舍。 谁都是从HelloWorld开始学习的,即使是架构师,也是一样。 纯干货,重实战,贵在积累。从头开始学SpringBoot目录 第一节 SpringBoot项目基础搭建 第二节 使用日志 ...

2019-11-18 17:40:00 1687

原创 GIT排除target或指定目录

在idea工具project旁边的空白处右键,取消勾选Show Excluded Files即可隐藏target目录。需要知道:如果不是maven工程,是没有target目录的,其次编译后才会生成target目录.注意:在这里配置后,git提交时会隐藏target目录,idea项目下也会隐藏target目录。在idea-2020.1.4版本下讲解idea怎么显示或隐藏target目录。2.2、git提交时隐藏target目录。2.1、idea隐藏target目录。二、idea隐藏target目录。

2023-11-20 16:50:40 329

原创 nacos的各个客户端的功能

总结起来,`com.alibaba.nacos:nacos-client`是Nacos的核心客户端库,用于与Nacos服务器进行通信,而`com.alibaba.boot:nacos-config-spring-boot-starter`是Spring Boot的集成模块,用于在Spring Boot应用程序中注入Nacos配置中心的配置值。1. `com.alibaba.nacos:nacos-client`:这是Nacos的Java客户端库,用于与Nacos服务器进行通信。

2023-09-19 09:33:26 263

原创 nacos服务端--切换数据源

这个脚本用于创建Nacos数据库表结构的MySQL版本。它包含了创建Nacos所需的所有表和索引的SQL语句,以及一些初始化数据。根据您使用的数据库类型,您可以选择使用相应的脚本来创建Nacos数据库表结构。根据使用的数据库类型,可以在Nacos GitHub存储库的。都是用于创建Nacos数据库表结构的SQL脚本,但它们针对的是不同的数据库。:这个脚本用于创建Nacos数据库表结构的Derby版本。类似,但使用了Derby特定的语法和数据类型。如果您使用的是Derby,则应使用。目录中找到相应的脚本。

2023-09-18 11:19:46 394

原创 java.util.Date在json的格式化上的研究与成果

当有一个对象含有Date属性,例如我们直接在URL中无法构造对应的Java.util.Date对象,此时可以增加如下注解,这样在URL中,可以直接使用字符串作为入参。

2023-09-13 14:42:24 234

原创 @JsonFormat、@JSONField、@DateTimeFormat详细解说

三者出处1、来源于jackson,Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。Jackson所依赖的jar包较少,简单易用并且性能也要相对高些,并且Jackson社区相对比较活跃,更新速度也比较快。2、来源于,是阿里巴巴的开源框架,主要进行JSON解析和序列化。3、是spring自带的处理框架,主要用于将时间格式化。用法。

2023-09-13 13:58:18 1196

原创 SpringBoot集成nacos实现统一配置中心

导入依赖这里导入的依赖很有讲究,你是啥springboot版本,然后下面的配置值就是啥,我也是醉啦。 <!-- Spring Boot 启动父依赖 --> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> &

2022-03-12 15:25:01 12993 3

原创 React拦截器

axios拦截器之axios.interceptors.request.use和axios.interceptors.response.use(附示例代码)_阿小绿的博客-CSDN博客_interceptors.requestaxios.interceptors.request.use(function(config){ //比如是否需要设置 token config.headers.token='wwwwwsdsdf' return config})...

2022-02-28 09:24:11 1016

原创 Linux操作

查找日志,定位错误cd logsvi …logs按Esc 敲 /输入关键字敲回车如果继续查找关键字,敲字符n 或者N,可以查找上一个或者下一个如何退出? Esc : q !查看进程ps –ef | grep ${名称} , 名称可以输入 java 或者 Ocr查看一个进程起了多少个线程ps –mp ${ pid }top –Hp ${pid} ctrl+c退出显示文件时间ls -l --time-style=full连接数控制Linu...

2022-02-28 09:18:59 179 1

原创 锁性能优化的几种思路

一、减少线程持有锁的时间 一个方法中,并不是所有的地方都需要同步。所以,只在需要同步的地方,进行加锁操作。 在代码中,可以把同步方法修改为同步代码块,可以减少线程持有锁的时间,从而提高性能。public synchronized void synMethod() { methodA();//不需要同步的A方法 me...

2022-02-23 11:13:53 1956 3

原创 线程池ThreadPoolExecutor的使用

一、手动创建线程的缺点: (1)创建多个线程,会消耗许多内存。 (2)创建多个线程,也非常耗时。 (3)最重要的是,频繁创建线程,在任务执行完毕之后被回收,对GC也有一定的压力。二、线程池 线程池:创建线程变成了从线程池获取空闲的线程,关闭线程变成了向池子中归还线程。 合理地使用线程池能够带来三个好处:......

2022-02-23 11:13:34 20290

原创 从头开始学MySQL-------视图

11.1.1 视图的含义 视图是一个虚拟的表,它是把数据库中的一张或者多张表中的一些数据列,拼接起来的虚拟的表。 创建视图的信息来自表的部分信息,只取需要的信息。当对通过视图看到的数据进行修改的时候,相应的基本表的数据也要发生变化。同时,若基本表的数据发生变化,则这种变化也可以自动的反映到视图中。 视图的好处:看到的就是需要的。另外,当视图表...

2022-02-22 19:51:25 1618

原创 第七节 用户商城抢单并发实战(流量削峰实战)

一、基本思路 数据库有一张商品表,库存量是100。现在有1000个消费者准备开抢这100个库存。 t_product表维护商品编号与商品库存剩余数量。编号No123321的这种商品的库存量有100个。 t_product_record维护抢到商品的用户ID。理论上t_product表开抢后的 记录数量应该是100条(共有100个人抢到...

2022-02-22 19:46:41 3388 4

原创 第八节 使用RabbitMQ异步解耦(提高性能)

一、基本思路 假设我们有一个"更新用户"的业务,此业务需要花费1秒钟时间。 然后需要为当前系统"记录日志",日志需要记录用户操作的方法名以及模块名称,此操作需要花费3秒。 上述两个步骤在同步情况下(主线程顺序执行)需要 1+3 = 4秒。如果将"记录日志"的操作从"更新用户"的业务中异步解耦出来,即"记录日志"交给消息中间件使用另外一个线...

2022-02-22 19:46:26 4754 4

原创 第十节 死信队列

一、基本功能 场景一:订单下单之后30分钟后,如果用户没有付钱,则系统自动取消订单。 场景二:转账申请提交了,预计2小时内到账。 从上述常见的场景一开始入手。 从下订单(未付款)开始,这个订单,可以视为一种消息,就进入死信队列。进入死信队列的特点就是消息有时间限制。 如果这个订单30分钟后还没有付款,那么这个...

2022-02-22 19:46:14 3414

原创 第三节 Shiro对加密的支持

一、用代码谈加密 相信你已经知道,在实际项目中,用户的密码在数据库中一定是密文。比如你的CSDN帐号的密码是123456,但是在CSDN的数据库表中,可能存放的就是类似"e389b243168cd658ccae899240bf8321"这样的一段密文。 为了快速上手,我们需要知道一些加密的算法。常见的加密算法有MD5。该如何使用呢?Shiro提供了一套加密API...

2022-02-22 19:44:19 2258 2

原创 第三节:使用Feign作为服务消费者

一、环境准备 Ribbon是一个基于Http和TCP的负载均衡工具,Feign(音:菲恩)是一个声明式的伪Http客户端,它比Ribbon更加的优雅。Feign使用的是接口的方式。Feign默认集成了Ribbon,并和Eureka结合,默认实现了负载均衡的效果。 在第二小节的基础上,我们开始搭建Fegin作为服务消费者。 右击项目根目录,New...

2022-02-22 19:43:32 1973 5

原创 第二节:使用Ribbon作为服务消费者

一、环境准备 对于Ribbon而言,大宇只能记住:Ribbon是一个基于Http和TCP的负载均衡工具。 在上一小节的代码基础上,开启 Eureka--Server 与 Eureka--Client项目。 Eureka--Client 项目开启后,将配置文件中的端口从8762改为8763,再启动一次。这好比启动了两个服务器,来了一个小小的分布式项目...

2022-02-22 19:43:23 1415 2

原创 第一节:服务注册与服务发现

前言 大宇也是第一次学习SpringCloud哦,难免遇到很多困难。想必很多同学也会跟我一样。 看了方志朋 史上最简单的 SpringCloud 教程,被方老师的文风深深吸引,在此特别感谢方老师。 俗话说,纸上得来终觉浅,绝知此事要躬行。学编程,自己手撸一遍代码不失为一种好方法,所以,让我们开始吧。一、环境准备 首先创建了...

2022-02-22 19:43:11 3403 11

原创 从头开始学MySQL-------触发器

12.1.1 创建触发器 触发器是由事件触发的操作,这些事件包括INSERT、UPDATE、DELETE事件。触发器是一种特殊的存储过程,它预定义了一些SQL,不用CALL来调用。当指定的事件发生的时候,触发器就会自动执行。触发器语法:CREATE TRIGGER trigger_name trigger_time trigger_type ON table_...

2022-02-22 19:41:02 1393 2

原创 对象的初始化过程及其深入理解

一、什么是一个类在Java语言里面,类用class描述,拥有变量和函数。没有提供get或set方法的变量称之为字段。有get或者set的任意方法或全部方法的字段称之为属性。所有的类都继承自Object类,并且继承了Object类提供的class属性。类和对象的关系,简单说:类可以看成一类对象的模板,对象可以看成该类的一个具体实例。二、子类...

2022-02-22 19:26:20 9972 3

原创 IntelliJ IDEA 修改 get set快捷键

因为一些特殊的原因,alt+insert键不能用了,所以要修改生成相关代码的快捷键。 File-setting-keymap-Main menu-Code-Generate

2022-02-22 19:24:53 7128 1

原创 传一个Long类型的数组,后台如何接收

先定义一个对象,对象里面拥有一个 数组属性。发送的时候,发送的是这个对象。 在后台用一个数组接收。1. 前台写法 var data = {ids: null}; var ids = []; selected.forEach(fu......

2022-02-22 19:22:26 12287 2

原创 前端发送复杂JSON数据,后端使用@RequestBody接收

* JSON属性如下 * loginName: "jay" * password : "3333" * roles : { id : 4 } * user : { name:"username" , officeName : "java"} * --------------------------------------------------------- * Ja...

2022-02-22 19:21:44 22777 1

原创 第十六节 Shiro限制密码重试次数限制

一、基本思路 不管是单机还是集群,我们都得把用户的登录次数记录下来,放到缓存里面。 单机使用的是Ehcache缓存,集群使用的是Redis缓存。单机或集群对于缓存来说,只是CacheManager接口的实现方式不同。 我们可以按照如下的思路来限制登录次数: 先查看是否系统中是否已有登录次数缓存。缓存对象结构预期为:"用户名-...

2022-02-22 19:17:36 4717 4

原创 第十节 Shiro集成SSM框架

一、搭建基本的SSM框架 首先告诉大家一个好消息,现在github的私有仓库免费咯。 好,开始本小节的教学。首先需要搭建一个SSM框架。如何搭建SSM框架,不在本文的讨论范围之内。你可以下载我的已经搭建好的基本的SSM框架,地址:点击我下载源码。我提供了一个基本的SSM框架与集成Shiro后的SSM框架。如果你时间比较急,你可以直接查看搭建后的代码并进入第三步中直接...

2022-02-22 19:16:51 2062 5

原创 当使用update语句时出现Data truncation: Truncated incorrect DOUBLE value:错误.

当使用update语句时出现Data truncation: Truncated incorrect DOUBLE value:??错误.把你的sql语句的"and"全部换成"逗号"!例如 update table set A = "a" and B = "b" where id = 1 (报错)改成 update table set A = "a" , B= "b".........

2022-02-21 19:44:28 32625 6

原创 解决idea切换窗口光标位置跑到本行最左边的问题

参考:解决idea切换窗口光标位置跑到本行最左边的问题_xiangwangxiangwang的博客-CSDN博客

2022-02-21 17:00:40 582

原创 SpringBoot配置文件产生随机值

1.1int随机数使用${random.int}方式配置,结果从int的最大值、最小值中间产生,int的最小值为-2147483648,最大值为2147483647,配置如下所示:server: port: ${random.int}1.2int范围随机数使用${random.int(10000)}方式配置,这种方式我们可以指定随机数的最大值,当然不能超过2147483647,配置如下所示:server: port: ${random.int(10000)}注意事..

2022-02-18 17:45:33 2009

原创 SpringBoot使用logback

<configuration> <include resource="org/springframework/boot/logging/logback/defaults.xml"/> <!-- 定义参数,后面可以通过${APP_NAME}使用 --> <property name="APP_NAME" value="sample"/> <!-- ../logs日志文件会生成在项目的外面的一个文件夹下 --> .

2022-02-18 15:53:40 861

原创 JVM参数增加OOM事件

以部署在linux系统/opt/Server目录下的Server.jar为例1.在run.sh启动脚本中添加jvm参数:-XX:OnOutOfMemoryError=/opt/Server/restart.sh2.restart.sh脚本linux环境:#!/bin/bashpid=$(ps -ef|grep Server.jar|awk '{if($8=="java") {print $2}}')kill -9 $pidcd /opt/Server/;sh run.shWin

2022-02-09 13:43:28 758

原创 SpringBoot集成SpringSecurity

(1) 直接配置登录spring: security: user: name: admin password: admin(2) 内存登录import org.springframework.security.config.annotation.authentication.builders.AuthenticationManagerBuilder;import org.springframework.security.config.annotation

2022-02-03 17:55:26 2560 1

原创 Nginx上传文件大小、超时限制

修改Nginx上传文件大小限制  我们使用ngnix做web server的时候,nginx对上传文件的大小有限制,默认是1M。  当超过大小的时候会报413(too large)错误。这个时候我们要修改nginx的参数client_max_body_size 20M; location / { ... client_max_body_size 100m; }...

2022-02-02 19:26:24 13032 1

原创 nginx获取真实IP

server { listen 80; server_name www.xxx.cn; location / { proxy_pass http://xxxx:16000; proxy_http_version 1.1; #将用户的ip设置到请求头中,tomcat可以获取到真实的ip proxy_set_header Connection ""; proxy_set_he.

2022-02-02 15:26:06 2208

转载 base64编码处理大文件

在做项目的时候遇到需要将文件转为base64编码,并存储在文件中。在将文件转为base64编码是会将文件读入内存,进行base64编码,输出到文件中。代码入下:FileInputStream stream = new FileInputStream("D:\\桌面\\程序员-第4版.pdf"); ByteArrayOutputStream out = new ByteArrayOutputStream(1024); byte[] b = new byte[1024];

2022-01-26 17:47:49 2003

原创 最近OOM感悟

近期工作上真的到处都在遇到OOM。Kafka查询出现OOM原因:一次查询创建了太多consumer对象。解决方案:Consumer对象存放到ThreadLocal中复用,并在请求结束后调用 consumer#unsubscribe consumer#close 方法关闭Consumer对象,释放内存。业务上出现OOM使用我们JAR包的十几个应用的内存都达到了惊人的6G。显然根据他们实际的业务评估,根本不可能出现如此严重的内存消耗。经过我的排查,主要代码中出现了两处严重的内存泄露。①存

2022-01-26 11:10:25 1722

空空如也

空空如也

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

TA关注的人

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