自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

打工人

  • 博客(91)
  • 资源 (1)
  • 问答 (1)
  • 收藏
  • 关注

原创 字符串里有加号,URLDecoder.decode解码出来是空格

URLDecoder.decode解码出来的确是空格,这是因为加号在URL中有特殊的含义(表示空格),而URLDecoder默认会将加号替换为空格。要想正确地解码字符串里的加号,可以先将字符串里的加号替换成"%2B",然后再进行解码。输出结果为:hello+world。

2023-05-04 11:34:55 2231 1

转载 @Autowired自动注入map

参考文档https//my.oschina.net/u/1000241/blog/3029017。适用于一个接口有多个实现类,然后根据不同的参数选择执行不同的实现类,其实这种通过@Autowired注入map(接口有多个实现类),这里有三个实现类,都实现了KakfaStrategy接口;除了可以注入到map中,也可以注入到list等其他集合中;spring是支持基于接口实现类的直接注入的;支持注入map,list等。中,不用做其他的配置,直接注入;这种方式多用于策略模式中。......

2022-07-28 14:37:04 5706

转载 最近学到的「短链接」知识

最近接了一个需求,涉及到了短链接的相关的知识,于是去查阅了相关的资料,在这里给大家整理分享一下。一、短链接介绍举个例子,现在我的GitHub的地址是这个:https://github.com/ZhongFuCheng3y/3y (36个字符)我通过百度的短链接服务可以将上面的地址转成https://dwz.cn/LwlrfG4j(23个字符)那我为什么要将原有的URL转成较短的链接呢?比如我们发短信提醒用户去XXX,XXX有优惠活动,在文案上往往会带有一个链接进行跳转,方便用户快速去

2022-02-24 10:36:36 609

转载 idea Process finished with exit code -1073741819 (0xC0000005) 金山词霸的坑

今天用idea跑spring boot,报如下错:Process finished with exit code -1073741819 (0xC0000005)maven编译也报错:以上两者的debug模式启动又正常,run模式启动死活不行!今天刚换社区版最新版:ideaIC-2019.2.2.win,一直以为是版本问题,于是尝试换回旧版本,也不行!然后更换jdk,也不行!然后清空本地关于idea的各种配置,删除自己安装的所有插件,清空工程配置文件,该做的都做了,也不行..

2022-01-10 11:02:53 345

原创 Redis 更新key值导致过期时间失效问题

场景再现首先,往redis里面存一个key,然后,设置超时时间为300s,如下图所示紧接着,更新name的值,问题来了,重新设置了name的值之后,这个key的过期时间是多少呢?A 过期时间无影响,就是剩余时间B 过期时间重置为300sC 清除掉超时时间,key永远有效答案是什么呢?执行ttl name命令之后,可以看到返回值是-1,也就是永远有效。答案很简单,问题的场景也很简单,我想大家都可以理解。但是如果在一个大的项目需求里面,我们在设置ke...

2021-08-24 17:23:59 6737

原创 自定义注解+aop实现-快速上手

本文不介绍spring aop的基础知识,只演示实现一个自定义注解的流程,但是读者应该对注解的基本概念,切面、切点、通知等的基本概念有所了解。项目基于Spring boot+maven+java8项目需求我想要在某些controller方法中记录请求日志,包括ip,方法,请求入参,返回结果,执行耗时等等。那么我们可以通过自定义一个注解实现,加在需要打印日志的方法上即可。项目结构首先展示一下项目的基本结构:项目的pom文件:<?xml version="

2021-08-02 17:21:55 1512

转载 在Java8的foreach()中使用return/break/continue

今天使用lambda表达式处理集合时,发现对return、break以及continue的使用有点迷惑,于是自己动手测试了一下,才发现在使用foreach()处理集合时不能使用break和continue这两个方法,也就是说不能按照普通的for循环遍历集合时那样根据条件来中止遍历,而如果要实现在普通for循环中的效果时,可以使用return来达到,也就是说如果你在一个方法的lambda表达式中使用return时,这个方法是不会返回的,而只是执行下一次遍历,看如下的测试代码:List<String&

2021-06-30 15:47:41 985

转载 方案虽好,成本先行:数据库Sharding+Proxy实践解析

一、分库分表的背景在谈论数据库架构演变和优化时,我们经常会听到分片、分库分表(Sharding)这样的关键词,在很长一段时间内,在各个公司、各中技术论坛里都很热衷谈论各种分片方案,尤其是互联网非常普及的 MySQL 数据库。但对笔者来说,分片、分库分表并不是一门创新技术,也不是一个好方案,它只是由于数据体系结构的限制而做的无奈之举,所以后来在听到这些词时,对笔者来说,更大意义在于感觉到朋友的公司业务量在快速增长,而对这个方案本身,其实有非常多问题。二、分表的根本原因...

2021-06-16 11:41:43 1220

转载 13个认证授权常见面试题/知识点总结!(2021 最新版)

大家好,我是 Guide哥!端午已过,又要开始工作学习啦!我发现有很多小伙伴对认证授权方面的知识不是特别了解,搞不清 Session 认证、JWT 以及 Cookie 这些概念。所以,根据我根据日常对这部分学习已经在项目中的实际运用总结了这 13 个相关的问题并且附上了详细的回答。希望能够对大家有帮助!认证 (Authentication) 和授权 (Authorization)的区别是什么?这是一个绝大多数人都会混淆的问题。首先先从读音上来认识这两个名词,很多人都会把它俩的读音搞混,所以我

2021-06-15 18:17:54 851

原创 XXL-JOB执行器注册成功但是在管理界面里不显示

场景描述:在配置正确,调度中心和执行器启动成功的情况下,在管理界面

2021-05-31 15:11:24 7308 3

转载 用低代码平台开发比用IDEA还牛逼吗?

有没有发现,每隔几年总会有一些火热的前沿词汇出现在我们面前,比如:云原生、微服务、中台、Servless、低代码等等。那么你是否有想过,这些概念的背后是什么推动的呢?结论并不难发现,从各种概念的目标上去合并同类项,它们的本质目标都是:提高研发效率! 在提高研发效率的道路上,各种方案都有着不同的侧重点,有的着力于基础设施的完善,有的着力于系统架构的优化,有的着力于生产工具的更新。拿最近最为热门的低代码平台来说,更多的是站在生产工具这一侧重点之上。不同于传统IDE的生产工具...

2021-05-25 18:06:53 269

转载 低代码平台如何一步步摧毁开发团队的效率与创新!

来源丨经授权转自 程序猿DD(ID:didispace)作者丨翟永超关于低代码平台,之前我也推送过两篇相关的文章,我的观点很简单:东西是好的,有它所擅长和适用的领域,但软件产品不存在银弹,低代码平台一样如此!现在在搜索引擎上搜“低代码”这样的关键词,你会看到很多夸张的标题,比如: “人人都是产品经理”之后,“人人都是程序员”的时代要来了? 阿里、腾讯都在押注的新赛道,能让程序员告别脱发和996吗? 还有诸多低代码平台的公司拿到各种融资或地区性政府补贴的新闻 甚.

2021-05-25 17:54:07 176

转载 为什么超过三张表禁止join?

一、 问题提出《阿里巴巴JAVA开发手册》里面写超过三张表禁止join,这是为什么?二、问题分析对这个结论,你是否有怀疑呢?也不知道是哪位先哲说的不要人云亦云,今天我设计sql,来验证这个结论。(实验没有从代码角度分析,目前达不到。可以把mysql当一个黑盒,使用角度来验证这个结论)验证结论的时候,会有很多发现,各位往后看。三、 实验环境vmware10+centos7.4+mysql5.7.22 ,centos7内存4.5G,4核,50G硬盘。 mysql配置为2G,特别说明...

2021-05-25 17:06:31 1418

原创 MySQL 日期函数

目录NOW()CURDATE()CURTIME()DATE()EXTRACT()DATE_ADD()DATE_SUB()DATEDIFF()DATE_FORMAT()下面的表格列出了 MySQL 中最重要的内建日期函数:函数 描述 NOW() 返回当前的日期和时间 CURDATE() 返回当前的日期 CURTIME() 返回当前的时间 DATE() 提取日期或日期/时间表达式的日期部分 EXTRACT() .

2021-05-25 16:51:40 242

转载 Java 8 stream的详细用法

一、概述Stream 是 Java8 中处理集合的关键抽象概念,它可以指定你希望对集合进行的操作,可以执行非常复杂的查找、过滤和映射数据等操作。使用Stream API 对集合数据进行操作,就类似于使用 SQL 执行的数据库查询。也可以使用 Stream API 来并行执行操作。简而言之,Stream API 提供了一种高效且易于使用的处理数据的方式。特点:1 . 不是数据结构,不会保存数据。2. 不会修改原来的数据源,它会将操作后的数据保存到另外一个对象中。...

2021-05-19 13:51:52 406

转载 RBAC权限系统分析、设计与实现

最近,因为项目上需要设计实现一个权限管理模块,所以专门整理总结了RBAC的一些知识。目前,使用最普遍的权限管理模型正是RBAC(Role-Based Access Control)模型,这篇文章也主要是介绍基于RBAC的权限管理系统,我会从RBAC是什么、如何设计RBAC两部分来介绍。一、RBAC是什么1、RBAC模型概述RBAC模型(Role-Based Access Control:基于角色的访问控制)模型是20世纪90年代研究出来的一种新模型,但其实在20世纪70年代的多用户计算时期,

2021-05-06 15:47:59 463

原创 mybatis使用<where>标签替换where 1=1

情景分析工作当中,动态sql经常会用到,当遇到多个查询条件时,我们可能会写出类似下面这样的sql<select id="selectUserByUsernameAndSex" resultType="user" parameterType="com.ztt.User"> select * from user where <if test="username != null"> username=#{usern

2021-03-03 16:09:06 5321 3

转载 springboot为何不使用@EnableTransactionManagement就能使用事务?

前言:在Springboot项目开发时,假如:公司项目比较多,从事开发的同学也会相应的比较多,如果公司没有统一的开发规范,我们使用的技术就会花里胡哨,不知道看到本篇博客的您,是否有所感想,比如????下面这个案例:package com.zcw;import org.springframework.boot.SpringApplication;import org.springframework.boot.autoconfigure.SpringBootApplication;import

2021-02-02 14:10:49 1162

原创 java map初始化并赋值

第一种方式:static 块public class MapTest { private static final Map<String, String> myMap = new HashMap<String, String>(); static { myMap.put("张三", "北京"); myMap.put("李四", "上海"); }}最常规的初始化方式。第二种方式:双括号初始化 (匿名内部类).

2021-02-02 11:56:29 30197 4

原创 pyecharts(一)1.x介绍

???? 概况Echarts是一个由百度开源的数据可视化,凭借着良好的交互性,精巧的图表设计,得到了众多开发者的认可。而 Python 是一门富有表达力的语言,很适合用于数据处理。当数据分析遇上数据可视化时,pyecharts诞生了。✨ 特性简洁的 API 设计,使用如丝滑般流畅,支持链式调用 囊括了 30+ 种常见图表,应有尽有 支持主流 Notebook 环境,Jupyter Notebook 和 JupyterLab 可轻松集成至 Flask,Django 等主流 Web 框架 高

2021-01-21 14:20:51 160

转载 selenium.common.exceptions.WebDriverException: Message: ‘chromedriver‘解决

今天在做selenium测试的时候,可能是很久没用了,直接报了这个异常!相信很多第一次学习selenium的同学们也对这个异常不陌生了,但具体该如何解决这个bug呢?主要的原因还是因为selenium模拟的客户端对浏览器的操作,但相应浏览器的驱动版本不匹配导致的。为了解决这个问题,我们需要先了解我们当前浏览器的版本。以小菌用的谷歌浏览器为例。打开浏览器,在地址栏输入chrome://version/便可以查看到谷歌当前的版本号...

2021-01-21 14:11:36 248

转载 微服务架构-- REST与RPC比较与应用场景

1.1.1REST与RPC概念什么是RESTREST是一种架构风格,指的是一组架构约束条件和原则。满足这些约束条件和原则的应用程序或设计就是 RESTful。REST规范把所有内容都视为资源,网络上一切皆资源。REST并没有创造新的技术,组件或服务,只是使用Web的现有特征和能力。可以完全通过HTTP协议实现,使用 HTTP 协议处理数据通信。REST架构对资源的操作包括获取、创建、修改和删除资源的操作正好对应HTTP协议提供的GET、POST、PUT和DELETE方法。HTTP动词...

2021-01-18 17:32:10 601

原创 Spring Cloud版本整理汇总及替换

一、Spring Cloud各个版本,以及兼容的Spring Boot版本 很多人在使用springboot和springcloud,但是对于这两者之间的版本关系不是很清楚,特别是在面临升级的时候不知道该如何操作。 例如,我现在使用的是1.5.1版本的springboot 和Edgware.RELEASE版本的springcloud,我想升级到springboot到2.0.0, springcloud需要升级吗? 或者我想单独升级springcloud到Finchley...

2021-01-18 14:38:18 690

转载 webpack打包文件build.js解读

webpack打包文件build.js解读,build.js通过package.json中的script来执行脚本:npm run build。一般build.js都是以下结构: require('./check-versions')() //process.env是一个包含用户环境信息的对象 NODE_ENV是用户自定义的变量,用来判断是开发环境还是生产环境 process.env.NODE_ENV = process.argv.splice(2)[0] == '..

2021-01-12 17:13:33 841 1

转载 vue-cli中的check-versions.js配置文件包括semver,chalk,shell插件的解释

本文介绍vue-cli脚手架build目录中check-versions.js的配置本文件是用来检测node和npm版本的 直接上代码加注释// 下面的插件是chalk插件,他的作用是在控制台中输出不同的颜色的字,大致这样用chalk.blue('Hello world'),这款插件只能改变命令行中的字体颜色var chalk = require('chalk')// 下面这个是semver插件,是用来对特定的版本号做判断的,比如// semver.gt('1.2.3','9.8.7') f

2021-01-12 16:56:39 651

转载 vue之require与import之间的区别

首先我们要明白require与import的基本语法:require的基本语法:在导出的文件中定义module.export,导出的对象的类型不予限定(可以是任何类型,字符串,变量,对象,方法),在引入的文件中调用require()方法引入对象即可,换一种说法就是require相当于module.exports的传送门,module.exports后面的内容是什么,require的结果就是什么,对象、数字、字符串、函数……再把require的结果赋值给某个变量,代码实现首先如: 1 2

2021-01-12 16:50:10 491 1

转载 Java 中初始化 List 集合的 6 种方式

List 是 Java 开发中经常会使用的集合,你们知道有哪些方式可以初始化一个 List 吗?这其中不缺乏一些坑,今天栈长我给大家一一普及一下。1、常规方式List<String> languages = new ArrayList<>();languages.add("Java");languages.add("PHP");languages.add("Python");System.out.println(languages);这种就是我们平常用的最多最

2021-01-11 16:27:45 517

原创 Java使用Collections查找List中最大值、最小值

在开发当中,有时候我们需要查找List中的最大值,最小值。虽然可以自己写代码遍历,但是有轮子可用的情况下,直接用轮子方便的多。在Java中使用Collections查找List中最大值、最小值如下: public static void main(String[] args) { List<Integer> list = new ArrayList<>(); list.add(1); list.add(5);

2021-01-07 16:44:26 5304 2

原创 git库的膨胀导致:[remote rejected] master -> master (pre-receive hook declined) error: failed to push s

某天回家,本地修改好相关文档,开始推送到远程,结果,idea报了个错:Push rejectedPush master to origin/master was rejected by remote为避免idea的问题,又用git bash手动push,结果还是报错:! [remote rejected] master -> master (pre-receive hook declined)error: failed to push some refs to 'git@xxxxx..

2021-01-04 21:46:30 5761 2

转载 浅析VO、DTO、DO、PO的概念、区别和用处

由于不同的项目和开发人员有不同的命名习惯,这里我首先对上述的概念进行一个简单描述,名字只是个标识,我们重点关注其概念:概念:VO(View Object):视图对象,用于展示层,它的作用是把某个指定页面(或组件)的所有数据封装起来。DTO(Data Transfer Object):数据传输对象,这个概念来源于J2EE的设计模式,原来的目的是为了EJB的分布式应用提供粗粒度的数据实体,以减少分布式调用的次数,从而提高分布式调用的性能和降低网络负载,但在这里,我泛指用于展示层与服务层之间的数.

2020-12-24 10:32:03 256

原创 阿里云如何获取AccessKey ID和AccessKey Secret

https://help.aliyun.com/knowledge_detail/38738.html

2020-12-19 18:25:29 15099 1

转载 在浏览器地址栏中输入URL后发生了什么

一、基本流程:①查询ip地址②建立tcp连接,接入服务器③浏览器发起http请求④服务器后台操作并做出http响应⑤网页的解析与渲染二、详细步骤如下:1、查询ip地址①浏览器解析出url中的域名。②查询浏览器的DNS缓存。③浏览器中没有DNS缓存,则查找本地客户端hosts文件有无对应的ip地址。④hosts中无,则查找本地DNS服务器(运营商提供的DNS服务器)有无对应的DNS缓存。⑤若本地DNS没有DNS缓存,则向根服务器查询,进行递归查找。⑥递.

2020-12-18 15:02:52 285

原创 mysql中limit和offset的用法

mysql里分页一般用limit来实现,例如:1、select* from user limit 3表示直接取前三条数据2、select * from user limit 1,3;表示取2,3,4三条条数据3、select * from user limit 3 offset 1;表示取2,3,4三条条数据解释:1、当 limit后面跟一个参数的时候,该参数表示要取的数据的数量例如select* from user limit 3 表示直接取前三条数据2、...

2020-12-16 11:16:56 3431

原创 Java等待唤醒机制wait/notify深入解析

本文将帮助你彻底弄明白Java的wait/notify等待唤醒机制。为了弄明白wait/notify机制,我们需要清楚线程通信、volatile和synchronized关键字、wait/notify方法、Object的monitor机制。本文将会从这几个方面详细讲解Java的wait/notify等待唤醒机制。一、线程通信 如果一个线程从头到尾执行完也不和别的线程打交道的话,那就不会有各种安全性问题了。但是协作越来越成为社会发展的大势,一个大任务拆成若干个小任务之后...

2020-11-25 16:44:58 8154 4

转载 package.json的所有配置项及其用法,你都熟悉么

package.json的所有配置项及其用法,你都熟悉么写在前面在前端开发中,npm已经是必不可少的工具了。使用npm,不可避免的就要和package.json打交道。平时package.json用得挺多,但是没有认真看过官方文档。本文结合npm官方文档以及自己平时使用过程中的感悟,谈一谈package.json。官方文档在这里。初始化使用npm init命令就可以初始化一个package.json文件。在初始化的过程中,会叫用户输入name, version等等信息,当然,你都可以忽略。一

2020-11-17 14:27:56 398

原创 多线程代码的作用

我们应该都写过多线程代码,但是为什么要用多线程可能没有深究过,仅仅只是觉得多线程会提高系统性能,加快响应。多线程主要有下面三方面的作用1、发挥多核CPU 的优势。随着工业的进步,现在的笔记本、台式机乃至商用的应用服务器至少也都是双核的,4 核、8 核甚至 16 核的也都不少见,如果是单线程的程序,那么在双核 CPU 上就浪费了 50%, 在 4 核 CPU 上就浪费了 75%。单核 CPU 上所谓的"多线程"那是假的多线程,同一时间处理器只会处理一段逻辑,只不过线程之间切换得比较快,看着像多

2020-11-16 16:46:46 247

原创 Java多态的概念、原理和实践

一、概念多态性是指允许不同子类型的对象对同一消息作出不同的响应。简单的说就是用同样的对象引用调用同样的方法但是做了不同的事情。

2020-11-10 16:55:49 534

原创 List,Set,Map能否存储null

List常用的List又ArrayList和LinkedList。 @Test public void testList(){ List arrayList = new ArrayList(); arrayList.add(null); arrayList.add(null); System.out.println(arrayList.size()); List linkedList = new Lin

2020-11-06 16:25:34 5654

转载 SpringCloud gateway 详解

本文为《SpringCloud gateway 详解》篇,为大家解读如果做到使用SpringCloud gateway。1.1SpringCloud Gateway 简介SpringCloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。SpringCloud Gateway 作为 Spr..

2020-10-30 16:11:31 739 1

原创 微服务网关Zuul和Gateway的简单比较

概述 SpringCloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。 因为zuul2.0连续跳票和zuul1的性能表现不是很理想,所以催生了spring团队开发了Gateway项目。 SpringCloud Gateway 作为 Spring Cloud 生...

2020-10-30 15:41:12 1595

alibbJava开发手册高清最新版.rar

alibbJava开发手册高清最新版.rar

2020-02-18

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

TA关注的人

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