自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 资源 (1)
  • 收藏
  • 关注

原创 分布式ID生成策略总结

1、UUID2、数据库自增ID2.1、主键表2.2、ID自增步长设置3、号段模式5、雪花算法6、美团(Leaf)7、百度(Uidgenerator)8、滴滴(TinyID)总结比较。

2023-04-22 14:29:41 538 1

原创 你知道多少接口性能优化的方案?

批量思想:批量操作数据库,这个很好理解,我们在循环插入场景的接口中,可以在批处理执行完成后一次性插入或更新数据库,避免多次IO。//批量入库我相信很多接口的效率问题不是一朝一夕形成的,在需求迭代的过程中,为了需求快速上线,采取直接累加代码的方式去实现功能,这样会造成以上这些接口性能问题。变换思路,更高一级思考问题,站在接口设计者的角度去开发需求,会避免很多这样的问题,也是降本增效的一种行之有效的方式。

2023-04-12 19:57:49 697

原创 Mysql优化的47个小技巧

1、先了解MySQL的执行过程了解了MySQL的执行过程,我们才知道如何进行sql优化。客户端发送一条查询语句到服务器;服务器先查询缓存,如果命中缓存,则立即返回存储在缓存中的数据;未命中缓存后,MySQL通过关键字将SQL语句进行解析,并生成一颗对应的解析树,MySQL解析器将使用MySQL语法进行验证和解析。例如,验证是否使用了错误的关键字,或者关键字的使用是否正确;预处理是根据一些MySQL规则检查解析树是否合理,比如检查表和列是否存在,还会解析名字和别名,然后预处理器会验证权限;

2023-04-07 13:56:46 425

原创 解决代码重复的优化方案

第一种代码重复是,有多个并行的类实现相似的代码逻辑。我们可以考虑提取相同逻辑在父类中实现,差异逻辑通过抽象方法留给子类实现。使用类似的模板方法把相同的流程和逻辑固定成模板,保留差异的同时尽可能避免代码重复。同时,可以使用 Spring 的 IoC 特性注入相应的子类,来避免实例化子类时的大量 if…else 代码。第二种代码重复是,使用硬编码的方式重复实现相同的数据处理算法。

2023-04-01 10:00:51 616

原创 Springboot整合多数据源配置

主要介绍两种整合方式,分别是 springboot+mybatis 使用分包方式整合,和 springboot+druid+mybatisplus 使用注解方式整合。

2023-03-24 16:00:29 374

原创 大学生考研的意义?

当我拿起笔头,准备写这个话题时,心里是非常难受的,因为看到太多的学生在最好的年华,在自由的大学本应该开拓知识,提升认知,动手实践,不断尝试和试错,不断历练自己跳出学生思维圈,准备迎接社会的时候,却一头扎进考研堆好几年,然后不断重复着高中的模式,要么考上,要么到头来竹篮打水一场空,这是对时间的巨大浪费,更是生命不可挽回的损失。考研,到底为了什么?如果这个情节,让你花费了大部分精力,耗费了你太多的心血,造成很大的经济压力,甚至是一种暂时性的逃避手段,那么让你渴望的这个成功,它带给你的价值,肯定是不值得。

2023-03-14 21:20:46 5550 28

原创 分布式理论

是两阶段提交的一个变种,针对每个操作,都需要有一个其对应的确认和取消操作,当操作成功时调用确认操作,当操作失败时调用取消操作,类似于二阶段提交,只不过是这里的提交和回滚是针对业务上的,所以基于TCC实现的分布式事务也可以看做是对业务的一种补偿机制。释放锁,就是删除服务创建的节点。订单服务执行自己的本地事务,并发送MQ消息,库存服务接收消息,执行自己的本地事务,乍一看,好像跟本地消息表的实现方案类似,只是省去 了对本地消息表的操作和轮询发送MQ的操作,但实际上两种方案的实现是不一样的。

2023-03-04 11:03:30 571

原创 面向Elasticsearch的高性能应用网关INFINI Gateway的介绍

1.微服务的API网关介绍网关的含义很多,应用范围也很广,不同的领域理解也不一样,站在分布式领域基于微服务的架构风格中,API网关其实就是一个微服务系统的统一入口。往往微服务是指由多个应用组成的一个个独立的服务系统,各自拥有自己的数据库、框架甚至语言等,这些小的服务通常以Rest API风格向外提供统一的服务支持,来被多个终端以及第三方应用调用。此时如果没有一个网关服务对这些微服务进行统一的授权、认证、接入、监控和日志记录等管理,就会非常麻烦,各个服务之间的调用也很混乱,复杂度会急剧上升,扩容也麻烦。

2023-02-27 11:21:20 830

原创 你了解互联网APP推荐的背后逻辑么(下)?

用户的交互数据通常是支撑大数据和推荐的关键,没有用户交互行为数据,无法谈得上推荐,因此如何构建并提取用户行为在学术界和工业界非常关心的问题,通常对用户的数据采集可以包括一些显式交互数据(包括点击、转发、购买等)和隐式交互数据(包括播放时长,停留时长、社交关系等)。推荐的背后,离不开每个用户的数据,而且这个用户要规模非常大,这个就叫用户流量,当然,每个用户的个人行为以及普遍习惯的收集,才是后台算法能做准确猜想和推荐的核心逻辑,这个就叫大数据。(4)更优秀的视频会被推荐到更大的流量池,以获得更多的用户浏览量。

2023-02-20 15:51:28 539

原创 你了解互联网APP搜索和推荐的背后逻辑么?

本文以概述的方式大概介绍了互联网搜索背后的故事,让普通没有涉及到开发的用户能够概览,也期望能够解开互联网那层最神秘的面纱。这里没有深入讲解专业知识和模型算法,因为涉及的链路非常长,某一个环境进去,都是知识的海洋和无底洞,我也仅仅只知其一。下一节,会重点讲当你打开抖音时候,手动划一划,就能为你推荐出你喜欢的小视频,其背后的逻辑。

2023-02-10 17:12:45 1674

原创 程序员视角下对ChatGPT热潮的思考

ChatGPT

2023-02-07 16:08:49 3632

原创 VMware克隆的Centos镜像想在另外的虚拟机上运行,网络无法访问,windows和Linux联不通。该怎么办?已解决

1.我们经常遇到,在自己的VMware虚拟机上面的Centos想克隆到其他电脑上面,但是不是网络连不上就是和宿主机ping不通。下面我以自己的亲身经历来演示怎么解决的。1.安装虚拟机,将centos镜像加载到虚拟机,这一步无需演示。大家自行百度。2.centos 终端无法连接网络02 network-scripts]# ping www.baidu.comping: www.baidu.com: 未知的名称或服务原因查看:发现自己的centos地址是:192.168.100.102,而

2022-02-19 15:28:44 1648

原创 nginx config 配置参数详解

user nobody; #以哪个用户身份运行,以在configure指定的用户为准worker_processes 6; #work进程的个数 ,通常其数值应该为cpu的物理核心数减1 #error_log logs/error.log;#error_log logs/error.log notice;#error_log logs/error.log info;pid logs/nginx.pid;  #指定nginx的pid文件 # 涉及的指..

2021-09-02 15:47:53 3400

原创 Mysql性能优化注意点

转载自:大数据云技术Java程序员编程时需要混合面向对象思维和一般命令式编程的方法,能否完美的将两者结合起来完全得依靠编程人员的水准: 技能(任何人都能容易学会命令式编程) 模式(有些人用“模式-模式”,举个例子,模式可以应用到任何地方,而且都可以归为某一类模式) 心境(首先,要写个好的面向对象程序是比命令式程序难的多,你得花费一些功夫) 但当Java程序员写SQL语句时,一切都不一样了。SQL是说明性语言而非面向对象或是命令式编程语言。在SQL中要写个查询语句是很简单的。

2021-06-29 19:30:17 208 1

原创 JVM内存模型及调优

1.什么是Java虚拟机?为什么Java被称作是“平台无关的编程语言”?Java虚拟机是一个可以执行Java字节码的虚拟机进程。Java源文件被编译成能被Java虚拟机执行的字节码文件。 Java被设计成允许应用程序可以运行在任意的平台,而不需要程序员为每一个平台单独重写或者是重新编译。Java虚拟机让这个变为可能,因为它知道底层硬件平台的指令长度和其他特性。2.Java内存结构?方法区和对是所有线程共享的内存区域;而java栈、本地方法栈和程序员计数器是运行是线程私有的内存区域。Jav

2021-06-24 11:33:43 360

原创 SpringBoot中必须掌握的45个注解

1.SpringBoot/spring 2. Jpa 3. 全局异常处理 4. SpringCloud 1.SpringBoot/spring@SpringBootApplication:包含@Configuration、@EnableAutoConfiguration、@ComponentScan通常用在主类上;@Repository:用于标注数据访问组件,即DAO组件;@Service:用于标注业务层组件;@RestControll...

2021-06-23 14:46:26 130

原创 sqlTools使用文档

## sqlTools使用文档#### 1.sqlTools介绍   sqlTools是数据挖潜项目研发过程中,从大量重复业务代码中抽离出来的前端基于SQL进行后台接口配置的配置工具,该工具极大简化了编写重复的CRUD接口,将研发人员从写重复的业务接口中解放出来。sqlTools配置的接口方便管理,方便修改,支持热部署。sqlTools配置好项目和分组模块,可以支持多个项目并行使用。以下是sqlTools具有的主要特征:> * 免除后台Java写接口,..

2021-06-18 17:37:53 1919 1

原创 MyBatis-Plus的获取时间戳优化类SystemClock分析

System.currentTimeMillis()性能分析:获取时间戳的JDK调用方法System.currentTimeMillis()有性能问题,主要原因是在调用时间戳的时候,需要和操作系统进行交互,尤其是在并发情况下,会导致竞争原子钟.那么在MyBatis-plus中是怎么避免这个问题的呢?MyBatis-plus在创建自增主键的时候,就需要获取当前时间戳来判断主键的顺序。所以其作者做了一个优化。详情代码如下:public class SystemClock {private vola

2021-04-28 18:00:34 1665

原创 统一单点登录的名词介绍

1.什么叫OpenID Connect 协议 OpenID Connection与Author2的关系

2021-03-09 16:43:03 136

原创 OAuth2的理解和学习

1.什么叫做OAuth2文章目录OAuth2的理解简单来讲,是一种授权机制,授权第三方应用通过令牌(Token)的方式登陆服务系统。实现方案是:OAuth 引入了一个授权层,用来分离两种不同的角色:客户端(第三方系统)和资源所有者(用户)。资源所有者同意以后,资源服务器(服务端)可以向客户端颁发令牌。客户端通过令牌,去请求数据。一、OAuth2的原理 二、四种授权方案 1.授权码(Authorization-code) 2.隐藏式(impliccit) 3.密码式 4.客户.

2021-03-07 19:37:11 139

原创 windwos 在DOS里面查找并杀掉一个线程

2020-12-25 15:17:15 277

原创 java 代码通过调用mysqldump命令备份mysql数据库

java 代码通过调用mysqldump命令备份mysql数据库   数据库备份是开发工作中经常要做的事情,好处是mysql提供了一个非常好的命令 mysqldump,直接调用它就可以将数据以sql文件的形式备份出来。但是直接写命令非常不方便,遇到定时备份或者指定备份那么就需要代码调用。下面是一个使用java代码调用该命令的小示例: /** * 备份调用工具方法 * * @param connectParam 包含数据库连接信息的对象 *

2020-08-27 15:32:38 1229

原创 oracle数据库通过生日获取年龄sql语句

oracle获取年龄一般是将日期类型的生日转化成整数类型的数字。 方式如下: 生日日期类型一般为yy-MM-dd ss24:mm:ss,通过months_between()函数将当前时间到生日时间之间的时间转化成月份数,值一般是多精度的小数。 再使用floor()函数向下取整月份数,就得到整数的生日。SELECT floor( months_between( SYSDATE, t.birthday ) / 12 ) AS age, t.birth...

2020-08-22 11:26:05 1968 1

原创 SpringBoot 初始化过程的核心类ApplicationContext解析

SpringBoot 初始化过程SpringBoot初始化所用到的ApplicationContext是AnnotationConfigServletWebServerApplicationContext1.AnnotationConfigServletWebServerApplicationContext的继承关系[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Wsk5CeQ5-1595380972906)(DB05F5E1F81D421E85756384C83993C

2020-07-22 09:23:22 934

原创 MyBatis缓存机制详解

MyBatis缓存机制详解MyBatis的缓存机制介绍一级缓存一级缓存调用流程一级缓存原理解释一级缓存使用注意事项二级缓存MyBatis的缓存机制介绍   Mybatis包含一个非常强大的的查询缓存机制,可以减少系统直接和数据库数据的IO操作,大幅度提高查询效率。同时MyBatis的缓存即使可以很方便的进行配置和定制。MyBatis默认定义了两级缓存一级缓存     一级缓存是在没有配置默认情况下,MyBatis开启的缓存,是相对于同一个S

2020-07-04 18:49:19 1326 1

原创 什么是RESTful架构

要理解REST架构,必须知道的应用背景:“互联网软件”,既现在程序员开发的大多数软件,都是跑在互联网上的,都是基于“服务端/客户端(server/client)”模式的,具有:高延迟、高并发特性。而如何开发在互联网环境中使用的软件(高效的、统一的让客户端访问服务端)就是RESTful架构的目的,它结构清晰、符合标准、易于理解、扩展方便。到底什么是RESTful架构?REST( Rep...

2020-01-20 21:32:54 441

原创 分布式、高可用、集群、负载均衡、反向地阿里和正向代理名词大意解释

1)什么是分布式 系统中的多个模块在不同服务器上部署,即可称为分布式系统,入Tomcat和数据库分别部署在不同的服务器上,或者两个相同的Tomcat分别部署在不同的服务器上。2)什么事高可用 系统中部分节点失效时,其他节点能够继续代替提供服务,则可认为系统具有高可用性。3)什么是集群 一个特定领域的软件部署在多台服务器上并作为一个整体提供一类...

2019-12-14 13:20:00 143

原创 SpringBoot启动配置原理

SpringBoot启动配置原理    SpringBoot最大的优势就是自动化配置,只需将需要的配置按照一定的规则,加上@Configuration @ConfigurationProperties @EnableAutoConfigurations 注解,便可以自动将需要的数据加入到IOC容器中。使用非常方便快捷,同时降低代码量,无需XML文件另外进行配置。那么SpringBoot底层到底做...

2019-10-29 00:32:59 163

原创 Spring Boot 自动配置数据源

Spring Boot 自动配置数据源 SpringBoot连接数据库无论是关系型数据库mysql、 oracle 还是非关系型数据库redis 、mongdb等都非常方便,只需要在配置文件中添加需要的配置信息,在pom中添加相应的数据库starter启动器和Driver连接器。springBoot在启动的时候就自动给我们进行配置组装好了,用起来非常方便,可是springBoot自动配置的原理...

2019-10-27 22:53:38 1850

原创 SpringBoot 数据库连接自动配置原理

SpringBoot 数据库连接自动配置原理SpringBoot连接数据库无论是关系型数据库mysql、 oracle 还是非关系型数据库redis 、mongdb等都非常方便,只需要在配置文件中添加需要的配置信息,在pom中添加相应的数据库starter启动器和Driver连接器。springBoot在启动的时候就自动给我们进行配置组装好了,用起来非常方便,可是springBoot自动配置的原理...

2019-10-27 12:03:22 2069 2

原创 分析Spring 的BeanFactory继承结构以及功能

BeanFactory是spring IOC容器的最父级容器

2019-10-20 13:00:56 318

原创 四种Lambda内置表达式用法

1.Lamdba表达式使得在java编程当中,因为高效的编码方式和对接口与功能实现的分离,极大的减少了编程代码量,下面对四种Lamdba内置接口进行简易的描述和功能介绍。四种接口: * Consumer<T> : 消费型接口 * void accept(T t); :有参数,但是没有返回值 * * Supplier<T> : 供给型接口 :有...

2019-03-21 22:54:16 548

原创 Java程序员排行前10的错误

今天看到一个帖子,是对java基础是个最常见错误进行的总结,很详细很到位,我一一验证一遍1.Array转ArrayList当需要把Array转成ArrayList的时候,开发人员经常这样做: List<String> stooges = Arrays.asList("Larry", "Moe", "Curly");Arrays.asList()会返回一...

2019-03-21 22:24:24 144

原创 MySQL外键约束删除时和更新时对应参数的用法:

mysql创建表的时候,外键删除时 和更新时的参数区别: 1. restrict(默认) , no action:当删除父表(则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则不允许删除。) 2.当取值为Cascade时,则当在父表(即外键的来源表)中删除对应记录时,首先检查该记录是否有对应外键,如果有则也删除外键在子表(即包含外...

2019-03-13 10:32:50 4963

原创 Java SimpleDateFormate 简单用法

SimpleDateFormate是时间简单格式化,将String类型的时间格式转化成Date类型或者将Date类型时间转化成为String类型1.String 类型转化成DateSimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");Date start = sdf.parse(startTime);...

2019-03-09 11:30:32 9529 1

原创 EL和JSTL不能出现同时解析标签

  问题:        学习jstl和el表达式时候,单独使用el没有任何问题,在引入jstl标签库之后,报出了jstl的错误: 引入标签:&lt;%@ taglib prefix="fmt" uri="http://java.sun.com/jstl/fmt_rt"%&gt; &lt;%@ taglib prefix="c" uri="http://java.sun.com/j...

2019-02-24 16:30:46 187

原创 表单重复提交

    在平时开发中,如果网速比较慢的情况下,或者远程有延迟,用户提交表单后,发现服务器半天都没有响应,那么用户可能会以为是自己没有提交表单,就会再点击提交按钮重复提交表单,这样会出现表单的重复提交,造成向服务器发送两次请求,所以我们在开发中必须防止表单重复提交。  表单重复提交的情况:          1.第一次单击提交之后,在没有提交成功情况下,又单击提交按钮。       ...

2019-02-24 00:27:02 688

原创 请求转发和重定向中文乱码问题解决方案

问题:        在web开发中,经常会遇到中文乱码问题,尤其是URL重定向或者页面转发的时候,出现乱码的原因也有很多,叫人烦不甚烦。下面对于请求转发和重定向出现乱码分别提供一种解决方案:1.请求转发和重定向都可以试用:    jsp页面设置  :         &lt;%@ page language="java" contentType="text/html; charset...

2019-02-23 19:32:10 3746 1

原创 javaweb站点根目录和web应用根目录应用场景

      什么叫Web站点的根路径,什么叫Web应用的根路径,在对它们的 "/"应用场景中,到底是代表站点路径还是web应用路径开始路径,  恐怕是很多人在web开发时候经常被搞混的的问题。现在简单解答如下: 问题:1.什么是web站点根目录,什么是web应用的根目录:自己的理解:     web站点的根目录:浏览器访问的工程名上一级的目录,比如:http://localhost...

2019-02-23 18:05:11 6297 1

原创 Spring MVC 中注解@ResponseBody 加上之后不能解析ModelAndView

今天在项目当中的Conttroller的方法当中使用了@ResponseBody 注解,同时在方法体中返回的是 ModelAndView,结果返回的连接不是ModelAndView里面的URL,而是默认返回在了@RequestMapping(value=URL),中的url,同时以JSON格式打印了视图解析器里面的参数,格式如下:{"view":null,"model":{"formatNam...

2019-02-21 11:00:05 4102

ArcGIS Desktop 10.2

ArcGIS Desktop 10.2 破解版+汉化包+安装教程详细说明pdf

2017-12-20

空空如也

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

TA关注的人

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