自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

佳佳乐的博客

好好学习,天天向上

  • 博客(123)
  • 资源 (5)
  • 收藏
  • 关注

转载 SpringBoot中使用Ehcache的详细教程

SpringBoot中使用Ehcache的详细教程

2022-08-06 16:56:21 4674

转载 代码中大量的if/else,你有什么优化方案?

观点一(灵剑):前期迭代懒得优化,来一个需求,加一个if,久而久之,就串成了一座金字塔。当代码已经复杂到难以维护的程度之后,只能狠下心重构优化。那,有什么方案可以优雅的优化掉这些多余的if/else?1. 提前return这是判断条件取反的做法,代码在逻辑表达上会更清晰,看下面代码:if (condition) { // do something} else { return xxx;}其实,每次看到上面这种代码,我都心里抓痒,完全可以先判断!condition,干掉else。i

2022-04-17 16:05:57 1103

原创 通过策略 +工厂 + 模板设计模式对if else业务逻辑进行优化

通过工厂 + 策略 + 模板设计模式对f else业务逻辑进行优化需要优化的业务代码:@SpringBootTestclass FansApplicationTests2 { @Test String noDesign2() { String name = "张三"; if (name.equals("张三")) { // 业务逻辑B return "张三完成任务BBB"; } else if (name.equals("李四")) { // 业务逻辑B

2022-04-17 15:47:50 677

原创 工作中常用的设计模式(策略模式、责任链模式、模板方法模式、观察者模式、工厂模式、单例模式)

工作中常用到哪些设计模式使用设计模式的好处重用性高、扩展性性能、灵活性单元测试、结构型设计模式:松耦合、避免了客户端环境与产品对象复杂的构造逻辑耦合1.策略模式1.1 业务场景假设有这样的业务场景,大数据系统把文件推送过来,根据不同类型采取不同的解析方式。多数的小伙伴就会写出以下的代码:if(type=="A"){ //按照A格式解析 }else if(type=="B"){ //按B格式解析}else{ //按照默认格式解析}这个代码可能会存在哪些问题呢?

2022-04-17 15:38:59 1108

原创 java8 新特性

1.概述1.1 生态Lambda 表达式函数式接口方法引用 / 构造器引用Stream API接口中的默认方法 / 静态方法新时间日期 API其他新特性1.2 新特性速度更快代码更少强大的 Stream API便于并行最大化减少空指针异常 Optional (Kotlin ?)1.3 温故而知新Hashmap 底层结构/原理 老话题不再阐述 …并发hashmap …Java虚拟机 …Java内存模型 …2. Lambda2.1 匿名函数Lambda是

2022-04-17 15:33:44 163

原创 大数据之HBase

第 1 章 HBase 简介1.1 HBase 定义HBase是一种分布式、可扩展、支持海量数据存储的NoSQL数据库。1.2 HBase 数据模型逻辑上,HBase 的数据模型同关系型数据库很类似,数据存储在一张表中,有行有列。但从 HBase 的底层物理存储结构(K-V)来看,HBase 更像是一个 multi-dimensional map。1.2.1 HBase 逻辑结构1.2.2 HBase 物理存储结构1.2.3 数据模型Name Space命名空间,类似于关系型数据

2022-04-11 00:17:40 2021

原创 实现 SpringBoot+WebSocket实时监控异常

前言此异常非彼异常,标题所说的异常是业务上的异常。需求消防的设备巡检,如果巡检发现异常,通过手机端提交,后台的实时监控页面实时获取到该设备的信息及位置,然后安排员工去处理。因为需要服务端主动向客户端发送消息,所以很容易的就想到了用WebSocket来实现这一功能。前端略微复杂,需要在一张位置分布图上进行鼠标描点定位各个设备和根据不同屏幕大小渲染,本文不做介绍,只是简单地用页面样式进行效果呈现。绿色代表正常,红色代表异常预期效果,未接收到请求前----->id为3的提交了异常,id为3的王

2021-11-20 09:57:21 428

转载 Docker + Intellij IDEA,提升生产力

Docker + Intellij IDEA,提升生产力!IDEA是Java开发利器,springboot是Java生态中最流行的微服务框架,docker是时下最火的容器技术,那么它们结合在一起会产生什么化学反应呢?一、开发前准备1.Docker安装可以参考:https://docs.docker.com/install/2.配置docker远程连接端口vi /usr/lib/systemd/system/docker.service 找到 ExecStart,在最后面添加 -H t

2021-11-19 18:17:10 116

转载 递归算法讲解

递归算法讲解摘要:大师 L. Peter Deutsch 说过:To Iterate is Human, to Recurse, Divine.中文译为:人理解迭代,神理解递归。毋庸置疑地,递归确实是一个奇妙的思维方式。对一些简单的递归问题,我们总是惊叹于递归描述问题的能力和编写代码的简洁,但要想真正领悟递归的精髓、灵活地运用递归思想来解决问题却并不是一件容易的事情。本文剖析了递归的思想内涵,分析了递归与循环的联系与区别,给出了递归的应用场景和一些典型应用,并利用递归和非递归的方式解决了包括阶乘、斐波那

2021-11-19 11:47:33 427

原创 SpringBoot整合knife4j

SpringBoot整合knife4j1.概述Swagger是一款测试文档Api接口,具体用法见SpringBoot整合Swagger。而knife4j是对Swagger进一步封装,其优化了api文档的界面。官网https://doc.xiaominfo.com/knife4j/documentation/。2.实战演练2.1环境准备新建一个SpringBoot的项目,导入需要的依赖 <dependency> <groupId>org

2021-11-17 14:32:43 203

转载 分布式任务调度平台XXL-JOB搭建教程

关于分布式任务调度平台XXL-JOB,其实作者 许雪里 在其发布的中文教程中已经介绍的很清楚了,这里我就不做过多的介绍了,关于其搭建教程,本人依照其文档搭建起来基本上也没遇到啥问题,这里通过博客的形式记录下来。回到顶部1、源码下载地址①、GitHub:https://github.com/xuxueli/xxl-job②、码云:https://gitee.com/xuxueli0323/xxl-job回到顶部2、文档地址①、中文文档:http://www.xuxueli.com/xxl-jo.

2021-11-16 18:41:37 737

原创 MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用

MyBatis-Plus QueryWrapper及LambdaQueryWrapper的使用实体类@Datapublic class BannerItem { private Long id; private String name; private String img; private String keyword; private Integer type; private Long bannerId;}QueryWrap.

2021-11-15 19:52:01 1164

原创 Kubernetes容器交付介绍

如何在k8s集群中部署Java项目容器交付流程开发代码阶段编写代码编写Dockerfile【打镜像做准备】持续交付/集成代码编译打包制作镜像上传镜像仓库应用部署环境准备PodServiceIngress运维监控故障排查应用升级k8s部署Java项目流程制作镜像【Dockerfile】上传到镜像仓库【Dockerhub、阿里云、网易】控制器部署镜像【Deployment】对外暴露应用【Service、Ingress】运维【监控、升级】

2021-11-14 21:25:41 72

原创 使用kubeadm方式搭建K8S集群

kubeadm是官方社区推出的一个用于快速部署kubernetes集群的工具。这个工具能通过两条指令完成一个kubernetes集群的部署:# 创建一个 Master 节点kubeadm init# 将一个 Node 节点加入到当前集群中kubeadm join <Master节点的IP和端口 >Kubeadm方式搭建K8S集群使用kubeadm方式搭建K8s集群主要分为以下几步准备三台虚拟机,同时安装操作系统CentOS 7.x对三个安装之后的操作系统进行初始化操作在

2021-11-14 18:31:15 132

原创 Kubernetes简介

Kubernetes简介来源bilibili尚硅谷K8S视频:https://www.bilibili.com/video/BV1GT4y1A756中文官网:https://kubernetes.io/zh中文社区:https://www.kubernetes.org.cn/介绍K8S主要讲的就是Kubernetes,首先Kubernetes首字母为K,末尾为s,中间一共有8个字母,所以简称K8s前置知识Linux操作系统Docker课程简介K8s概念和架构从零搭建K8s集群

2021-11-14 14:17:46 146

转载 postgres-explain使用

前言最近发现有几个接口响应缓慢 看了下 主要是之前偷懒写法 导致网络io过大 当数据量上来之后速度变慢现在把部分业务功能 拆分到不同的sql中 进行处理参考文档explain浅析: http://mysql.taobao.org/monthly/2018/11/06/postgres explain文档(pg11): https://www.postgresql.org/docs/11/using-explain.html命令说明指令格式:CopyEXPLAIN 指令... 要进行分析的sq

2021-11-14 12:35:34 268

原创 聊聊日常开发中,如何减少bug呢?

聊聊日常开发中,如何减少bug呢?原创 捡田螺的小男孩 [捡田螺的小男孩](javascript:void(0)???? 6月20日前言大家好呀~ 我是捡田螺的小男孩,今天跟大家聊聊日常开发中,如何减少bug?本文将从数据库、代码层面、缓存使用篇3个大方向,总结出一共50多个注意点,助大家成为开发质量之星。欢迎关注公众号:捡田螺的小男孩1. 数据库篇慢查询数据库篇的话,哪些地方容易导致bug出现呢?我总结了7个方面:慢查询、数据库字段注意点、事务失效的场景、死锁、主从延迟、新老数据兼容、一

2021-11-13 18:04:00 321

原创 docker概述

docker概述概 述docker是go语言开发的docker官方文档:https://docs.docker.com/get-started/docker hub:https://hub.docker.com/Docker的思想就如它的logo一样:docker就是大鲸鱼,而每个镜像container就是对应的集装箱。那么docker的核心思想是什么呢?答案就是——隔离!!通过隔离机制,既可以保障每个"集装箱里面的东西"是互不影响的,也可以将服务器的资源压榨到最大程

2021-11-13 16:34:18 2037

转载 Springboot打包为Docker镜像并部署的实现

Springboot打包为Docker镜像并部署的实现一、Springboot项目运行正常打包前,Springbooot项目在本地必须是运行正常的。我们这里使用本专栏写起来的项目,如下所示:二、Maven打包项目执行如下命令即可:// 先清空再打包mvn clean package打包成功之后如下所示,提示BUILD SUCCESS,target目录下会有打好的jar包:三、打包镜像前准备1、创建一个文件夹mkdir dockerFile2、进入文件夹,创建文件:Docke

2021-11-13 15:46:03 286

原创 谷歌浏览器CSND广告屏蔽方法

CSND 写挺爽的但是看博客比较多广告使用csdn_chrome_plugin插件进行过滤点广告,舒适性很多下载链接:https://img-operation.csdnimg.cn/plugin/package/csdn_chrome_plugin_v2.15.3.crx下载到本地后选择设置>扩展工具将文件拖拽到浏览器页面中然后再回到CSDN 会发现博客特别干净...

2021-11-12 10:37:40 511

原创 Java程序占用 CPU 过高怎么排查

Java程序占用 CPU 过高怎么排查线上一台服务器 CPU 使用率100% 了,如果你碰到这样的情况,如何排查并找到问题原因?这就是一个套路题,所谓套路题就是有标准的套路解法的,掌握了套路,不仅能解决面试官,还能解决问题。不然真的就掉进套路里了。当我们真碰到这个问题的时候应该怎么排查呢?模拟一个高 CPU 场景先用一段程序创建几个线程,将其中一个线程设置成高 CPU 使用率的。public static void main(String[] args) { for (int i = 0;

2021-11-12 10:21:06 4834

原创 多线程实现主线程累加子线程的值

需求分析主线程需要等待子线程执行完后 再将自身业务执行完毕,用于业务上的数据加和等相关联业务多线程有几种实现方法Java多线程实现的方式有四种1.继承Thread类,重写run方法2.实现Runnable接口,重写run方法,实现Runnable接口的实现类的实例对象作为Thread构造函数的target3.通过Callable和FutureTask创建线程4.通过线程池创建线程前面两种可以归结为一类:无返回值,原因很简单,通过重写run方法,run方式的返回值是void

2021-11-11 22:17:49 338

原创 Spug - 轻量级自动化运维平台

Spug - 轻量级自动化运维平台对于中小型企业而言,进行主机和应用的管理是比较麻烦的,应用部署往往需要直接连接服务器,再进行手动的环境配置、代码拉取、应用构建和部署发布等工作,容易出错,且耗时费力。一个好的自动化运维平台,往往能大大节省人力物力,提高开发部署效率。Spug,正是一个面向中小型企业设计的轻量级自动化运维平台。Spug自动化运维平台简介Spug,是 openspug 在 Github 上开源的自动化运维平台,项目位于 https://github.com/openspug/spug,

2021-11-11 10:29:58 1541

原创 WebSocket和kafka实现数据实时推送到前端

WebSocket和kafka实现数据实时推送到前端一. 需求背景需要将kafka中的数据实时推送到前端展示。最开始想到的是前端轮询接口数据,但是无法保证轮询的频率和消费的频率完全一致,或造成数据缺失等问题。最终确定用利用WebSocket实现数据的实时推送。二. websocket简介WebSocket用于在Web浏览器和服务器之间进行任意的双向数据传输的一种技术。WebSocket协议基于TCP协议实现,包含初始的握手过程,以及后续的多次数据帧双向传输过程。其目的是在WebSocket应用和We

2021-11-10 21:05:13 8056

原创 JVM内存模式

1. 什么是JVM内存结构?jvm将虚拟机分为5大区域,程序计数器、虚拟机栈、本地方法栈、java堆、方法区;程序计数器:线程私有的,是一块很小的内存空间,作为当前线程的行号指示器,用于记录当前虚拟机正在执行的线程指令地址;虚拟机栈:线程私有的,每个方法执行的时候都会创建一个栈帧,用于存储局部变量表、操作数、动态链接和方法返回等信息,当线程请求的栈深度超过了虚拟机允许的最大深度时,就会抛出StackOverFlowError;本地方法栈:线程私有的,保存的是native方法的信息,当一个jvm创

2021-11-10 19:34:11 317

原创 Kafka集群部署指南

Kafka集群部署指南一、前言1、ZooKeeper简介ZooKeeper是一个开源的分布式应用程序协调服务,是Google的Chubby一个开源的实现。ZooKeeper为分布式应用提供一致性服务,提供的功能包括:分布式同步(Distributed Synchronization)、命名服务(Naming Service)、集群维护(Group Maintenance)、分布式锁(Distributed Lock)等,简化分布式应用协调及其管理的难度,提供高性能的分布式服务。ZooKeeper本身

2021-11-10 15:32:14 202

原创 linux 常用命令

linux 常用命令查看文件1.文件夹按大小排序:du -sh * |sort -h2.查看文集夹大小的命令 : du -h3.查看文件夹大小 du -h --max-depth=1 /APP/data/docker/volumes/服务开机自启动java restart脚本文件ps auxf|grep -v grep|grep hechi-0.0.1-SNAPSHOT.jar |awk '{print $2}'|xargs kill -9nohup java -jar hechi-0.

2021-08-25 17:12:39 418

原创 推送本地文件到gitee

# 1git init# 2git add .git commit .# 3 git remote add original https://...仓库地址# 5git push original master# 注意:如果gitee仓库中有REDEME.md需要先合并在pushgit pull --rebase original master过程遇到问题 git pull --rebase origin master#解决 git commit -m 'xx'.

2021-07-08 22:39:50 78

原创 JdbcTemplate

JdbcTemplateSpring为传统的jdbc API进行封装,简化持久层操作,虽然jdbcTemplate很灵活,但和ORM框架相比jdbcTemplate功能就显得力不从心了,学习jdbcTemplate是为学习ORM框架做铺垫ORM:对象关系映射 O:对象 R:关系 M:映射传入Jdbc API与Spring jdbcTemplate比较//JDBC APIStatement statement = conn.createStatement();ResultSet r.

2021-06-18 16:00:35 355

原创 Leetcode算法题

反转链表 反转一个单链表。输入: 1->2->3->4->5输出: 5->4->3->2->1解法1:迭代,重复某一过程,每一次处理结果作为下一次处理的初始值,这些初始值类似于状态、每次处理都会改变状态、直至到达最终状态从前往后遍历链表,将当前节点的next指向上一个节点,因此需要一个变量存储上一个节点prev,当前节点处理...

2021-06-10 13:57:30 113

原创 分布式消息中间件-RocketMQ

MQ背景&选型 消息队列作为高并发系统的核心组件之一,能够帮助业务系统解构提升开发效率和系统稳定性。主要具有以下优势:削峰填⾕谷(主要解决瞬时写压力大于应用服务能力导致消息丢失、系统奔溃等问题)系...

2021-06-09 13:08:23 401

原创 分布式消息中间件-kafka

Kafka Kafka 基础 Kafka 是一个分布式的基于发布/订阅模式的消息引擎系统削峰填谷 应用解耦 异步处理理 高吐出(10-20w的QPS) 高性能架构图 Kafka用zk管理broker搞定术语 生产者:Producer。向主题发布新消息的应用程序。消费者:Consumer...

2021-06-08 11:35:51 138

原创 SpringBoot配置swagger_ui

1.引入依赖 <!-- https://mvnrepository.com/artifact/io.springfox/springfox-swagger2 --> <dependency> <groupId>io.springfox</groupId> <artifactId>springfox-swagger2</artifactId> <version>2.9.2</version

2021-03-14 15:23:02 515

原创 HttpRequestUtil方法get、post、JsonToPost

java后台发起请求使用的工具类package com.cennavi.utils;import org.apache.http.Header;import org.apache.http.HttpResponse;import org.apache.http.HttpStatus;import org.apache.http.client.HttpClient;import org.apache.http.client.methods.HttpPost;import org.apach

2020-09-26 14:58:12 785

原创 解决大数据量的遍历读取问题--线程池的调用方式

需求:有大量的数据处理,可以使用线程池,使处理速度加快解决方案:使用线程池创建工具类:MyThreadPoolpackage com.cennavi.audi_data_collect.utils;import java.util.concurrent.ExecutorService;import java.util.concurrent.Future;import java.util.concurrent.LinkedBlockingDeque;import java.uti..

2020-09-11 12:28:07 957

原创 java实现qq邮箱发送信息

引入maven依赖<dependency><groupId>javax.mail</groupId><artifactId>mail</artifactId><version>1.4.7</version></dependency>代码实现import java.util.Properties;import javax.mail.Authenticator;import j..

2020-07-16 12:09:36 321

原创 WGS84、GCJ02、BD09坐标系互转

各坐标系简介与转换,包括WGS84(地球坐标系)、GCJ02(火星坐标系)和BD09(百度坐标系)一、各坐标系简介与转换背景:从GPS和北斗卫星定位得到的定位数据采用的都是WGS84坐标系,即地球坐标系,但是国内不管是高德地图、百度地图采用的并不是WGS84坐标系,所以需要经过转换后才能使用,前端用百度API提供的方法转换速度较慢。通过网上搜索收集资料,然后自己编写代码测试,总结了一下有关坐标系简介与转换的知识,分享给大家!1.各坐标系简介WGS84坐标系 即地球坐标系,国际上通用的坐标系。 设

2020-06-03 18:39:57 1506

原创 jdbcTemplate动态查询且防止sql注入实现

使用jdbcTemplate.update(sql, array);防止sql注入public Object updateCarGroup(CarGroupInfo carGroupInfo) { try { List<Object> param = new ArrayList<>(); String sql = "UPDATE car_grou...

2020-03-06 17:50:19 4523 1

原创 使用redis记录登录次数防止暴力破解

//向redis里存入数据和设置缓存时间 stringRedisTemplate.opsForValue().set("baike", "100", 60 * 10, TimeUnit.SECONDS);//val做-1操作 stringRedisTemplate.boundValueOps("baike").increment(-1);//根据key获取缓存中的val stri...

2020-03-06 16:57:33 1944

原创 geojson、shp文件互转

geojson数据展示工具(默认84坐标系):http://geojson.io/文件格式转换工具:https://mapshaper.org/选择一个.json文件

2020-02-25 10:55:27 6929 2

多线程.md

多线程.md

2021-04-16

平安科技java面试题

1.jsp九大内置对象? 答:(request,response,pageContext,session,application,out,config,page,exception); 2.jsp与servlet的区别? 答: jsp编译后是‘类servlet’,jsp是servlet技术的扩展,是servlet的简易方式,jsp注重于视图,而servlet更注重逻辑。

2019-02-19

Springboot基础

Spring是Java企业版(Java Enterprise Edition,JEE,也称J2EE)的轻量级代替品。无需开发重量级的Enterprise JavaBean(EJB),Spring为企业级Java开发提供了一种相对简单的方法,通过依赖注入和面向切面编程,用简单的Java对象(Plain Old Java Object,POJO)实现了EJB的功能。 1.1.2 Spring的缺点分析 虽然Spring的组件代码是轻量级的,但它的配置却是重量级的。一开始,Spring用XML配置,而且是很多XML配 置。Spring 2.5引入了基于注解的组件扫描,这消除了大量针对应用程序自身组件的显式XML配置。Spring 3.0引入了基于Java的配置,这是一种类型安全的可重构配置方式,可以代替XML。 所有这些配置都代表了开发时的损耗。因为在思考Spring特性配置和解决业务问题之间需要进行思维切换,所以编写配置挤占了编写应用程序逻辑的时间。和所有框架一样,Spring实用,但与此同时它要求的回报也不少。

2018-12-23

黑马redis教程

随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的 SNS类型的web2.0纯动态网站己经显得力不从心,暴露了很多难以克服的问题,例如: · 1、High performance.对数据库高并发读写的需求 web2.0网站要根据用户个性化信息来实时生成动态页面和提供动态信息,所以基本上无法使用动态页面静态化技术,因此数据库并发负载非常高,往往要达到每秒上万次读写请求。关系数据库应付上万次SQL查询还勉强顶得住,但是应付上万次SQL写数据请求,硬盘℃就己经无法承受了。其实对于普通的BBS网站,往往也存在对高并发写请求的需求,例如网站的实时统计在线用户状态,记 . 录热门帖子的点击次数,投票计数等,因此这是一个相当普遍的需求。

2018-12-23

Spring data jpa 中文开发文档

Spring data jpa 中文开发文档 帮助你极大快速的开发项目

2018-08-25

空空如也

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

TA关注的人

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