自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(227)
  • 资源 (6)
  • 收藏
  • 关注

原创 研发安全(二)——后端开发必须掌握的SQL注入漏洞与防护

SQL 注入对于我们研发人员来说,应该基本都听说过,甚至还在开发功能过程中不知不觉引入了SQL注入漏洞,只是没被发现而已。所以,本文会系统的介绍下SQL注入漏洞的危害以及我们开发过程中如何进行防护。

2024-03-24 18:58:13 59

原创 MySQL调优之SQL语句

在开发中,我们要尽量写出高性能的 SQL 语句,但也无法避免一些慢 SQL 语句的出现,或因为疏漏,或因为实际生产环境与开发环境有所区别,这些都是诱因。面对这种情况,我们可以打开慢 SQL 配置项,记录下都有哪些 SQL 超过了预期的最大执行时间。//开启慢SQL日志//记录日志地址//最大执行时间除此之外,很多数据库连接池中间件也有分析慢 SQL 的功能。

2024-03-17 23:26:54 766

原创 研发安全(一)——研发人员必须掌握的安全开发常识

掌握安全开发常识对于研发人员来说至关重要。通过树立正确的安全开发意识、遵循安全原则、实施数据安全与隐私保护、进行输入验证与过滤、管理漏洞与风险、遵循安全编码规范、进行安全测试与验证、持续学习与跟踪最新安全动态、跨领域合作与沟通以及遵守合规性与法规要求等多方面的努力,研发人员可以有效提升软件的安全性,为用户提供更加安全、可靠的服务。

2024-03-17 11:37:22 187

原创 一个简单的转账场景示例带你了解并发安全?

本文转帐场景主要参考来自于极客时间 王老师的 《Java 并发编程实战》

2024-01-17 23:52:42 1028

原创 Docker 安装 MySQL5.7

如果你安装了 docker-desktop,点击图标进入命令窗口。整个 pull 过程需要花费一些时间,耐心等待。#启动容器,并设置mysql忽略大小写。#输入命令,并按提示输入密码root。

2023-10-13 22:56:27 758

原创 IEDA 自动生成类注释和方法注释

类注释 【快捷键:cls + TAB】

2023-10-13 21:32:08 251

原创 实践_定时任务开发规范

定时任务开发经验规范总结

2023-06-30 07:33:21 178

原创 实践_Redis开发规范

Redis 开发规范总结

2023-06-29 19:43:39 448

原创 实践_技术文档结构规范

技术文档规范示例说明,技术文档该怎么写

2023-06-28 12:50:27 142

原创 实践_数据库规范

数据库设计与开发规范

2023-06-27 19:04:49 196

原创 并发编程_SimpleDateFormat 线程安全问题

SimpleDateFormat 线程安全问题

2023-05-09 21:13:33 91 1

原创 【项目实战】—— 我们应该如何正确得创建线程池?

spring项目实践中,如何正确选择与创建线程池?

2023-05-08 22:58:58 1459

原创 思维导图之规范与重构

规范与重构

2022-11-29 22:02:53 180

原创 思维导图之设计原则

设计原则

2022-11-29 22:00:25 214

原创 Shell脚本速查手册

Shell脚本入门手册

2022-11-25 20:57:14 2938

原创 L01_一条SQL查询语句是如何执行的?

MYSQL执行流程

2022-06-19 18:24:14 96

原创 L07_Spring 生命周期

导读1、BeanFactory 是怎样处理 Bean 生命周期?BeanFactory 的默认实现为 DefaultListableBeanFactory,其中 Bean生命周期与方法映射如下:(1) BeanDefinition 注册阶段 - registerBeanDefinition(2) BeanDefinition 合并阶段 - getMergedBeanDefinition(3) Bean 实例化前阶段 - resolveBeforeInstantiation Instantiati

2022-04-05 20:38:38 98

原创 L06_Spring 依赖来源

导读1、依赖查找的来源1.1、BeanDefinition元数据:BeanDefinition注册:BeanDefinitionRegistry#registerBeanDefinition类型:延迟和非延迟顺序:Bean 生命周期顺序按照注册顺序<bean id="user" class="com...User">@Bean public User user(){...}BeanDefinitionBuilder1.2、单例对象来源:外部普通 Java 对象(

2022-04-05 12:00:58 104

原创 L04_spring依赖查找

spring 依赖查找1、单一类型依赖查找单一类型依赖查找接口 - BeanFactory(1)根据 Bean 名称查找:getBean(String)(2)根据 Bean 类型查找 :getBean(Class)getBeanProvider(Class)( Spring 5.1 Bean 延迟查找)(3)根据 Bean 名称 和类型查找:getBean(String,Class)2、集合类型依赖查找集合类型依赖查找接口 - ListableBeanFactory(1)根据 Bean

2022-04-05 10:22:33 331

原创 L05_spring依赖注入

spring 依赖注入1、依赖注入的模式和类型1.1、Setter 方法注入实现方法(1)手动模式XML 资源配置元信息<bean class="com.injection.UserHolder"> <property name="user" ref="user"></property></bean>Java 注解配置元信息API 配置元信息(2)自动模式#byName <bean class="injecti

2022-04-05 10:20:13 369

原创 2022-03_shell 如何编写定时任务?

导读crontab命令常见于Unix和Linux的操作系统之中,用于设置周期性被执行的指令。该命令从标准输入设备读取指令,并将其存放于“crontab”文件中,以供之后读取和执行。通常,crontab储存的指令被守护进程激活。1. crontab 使用步骤(1)、编写定时任务需求脚本,如以下脚本 处理vertica ros to many 问题。脚本需要在 vertica 需要放在vertica mpp 服务器执行。ros_mergetout_task.sh 如下所示:#!/bin/sh#Au

2022-03-31 21:45:00 2475

原创 2022-03_arthas 如何热更新线上代码?

导读当线上出问题,可能因为一个简单的判断逻辑写错或者业务逻辑有问题,需要及时修复验证,修改代码,打包上线时间周期长,有没有快速的修复解决办法呢?那今天就主要来介绍下 如何使用 arthas 工具热更新线上代码?1. 什么是Arthas?Arthas 是Alibaba开源的Java诊断工具。详情见http://arthas.gitee.io/2. 如何使用 arthas 工具热更新线上代码?热更新步骤:(1)jad 命令反编译出内存中的字节码,生成class文件。(2) 使用 sc 查找类加载器

2022-03-31 21:30:00 877

原创 L03_什么是 BeanDefinition

什么是 BeanDefinition?BeanDefinition 是SpringFreamwork 定义配置元信息的接口。包含:• Bean 的类名• Bean 行为配置元素,如作用域、自动绑定的模式,生命周期回调等• 其他 Bean 引用,又可称依赖• 配置设置,比如 Bean1、BeanDefinition 元信息属性说明ClassBean 全类名NameBean 名称或 IDScopeBean 作用域范围Constructor ArgsB

2022-03-25 09:03:58 205

原创 L02_什么是IoC容器?

导读Spring IoC 容器负责创建对象、管理对象,装配对象、配置对象、并且管理这些对象的生命周期。本文涉及代码均为部分代码,仅仅供个人学习记录参考。[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-Hc0YzrMq-1647929291235)(./images/L02.png)]1、IoC 依赖查找根据 Bean 名称查找根据 Bean 类型查找根据 Bean 名称 + 类型查找根据Java 注解查//根据名称-实时查找User user = (Us

2022-03-22 14:09:28 106

原创 L04_什么是数组

导读在大部分编程语言中,数组都是从 0 开始编号的,但你是否下意识地想过,为什么数组要从 0 开始编号,而不是从 1 开始呢? 从 1 开始不是更符合人类的思维习惯吗?1、什么是数组数组(Array)是一种线性表数据结构。它用一组连续的内存空间,来存储一组具有相同类型的数据。2、数组的操作实现2.1、随机访问数组支持随机访问,根据下标随机访问的时间复杂度为 O(1)。2.2、插入如果在数组的末尾插入元素,那就不需要移动数据了,这时的时间复杂度为 O(1)。但如果在数组的开头插入元素,那

2022-03-13 22:30:46 849

原创 L03_如何评估算法的好坏

导读我们都知道,数据结构和算法本身解决的是“快”和“省”的问题。所以,执行效率是算法一个非常重要的考量指标。那如何来衡量你编写的算法代码的执行效率呢?这里就要用到我们今天要讲的内容:时间、空间复杂度分析。1、什么是复杂度分析复杂度描述的是算法执行时间(或占用空间)与数据规模的增长关系。2、为什么要进行复杂度分析复杂度分析有不依赖执行环境*、成本低、效率高、易操作、指导性强的特点。掌握复杂度分析,有利于编写出性能更优的代码,降低系统开发和维护成本。3、如何进行复杂度分析3.1、大O表示法

2022-03-13 22:20:07 577

原创 L01_什么是数据结构与算法

导读本文为个人学习笔记思维导图,数据结构与算法对训练我们的思维和提升后续编程内功和源码也有重要重要,带着问题,开始了个人的第一部分学习,什么是数据结构与算法。1、什么是数据结构数据结构是相互之间存在一种或多种特定关系的数据元素的集合。2、什么是算法算法是解决特定问题步骤的描述,在计算机中为指令的有序序列,并且每条指令表示为一个或多个操作。3、算法的特性输入输出、有穷性、确定性、可行性。输入输出:有零个或多个输入。至少有一个或者多个输出。有穷性:执行有限步骤之后,自动结束而不会出现无限

2022-03-06 20:58:52 163

原创 小程序-WXSS入门知识

选择器类选择器 class ,. 号开始的 /* 多个地放被使用;一个地方使用多个 */ <view class="course-card sec-card"></view>element组合选择器,逗号分隔.course-card image { width: 100%; border-radius: 5px;}ID 选择器后代选择器,空格分隔颜色rgb/16进制哪些地方使用颜色,字体、背景、边框、阴影famil

2022-02-13 23:06:26 634

原创 Elasticsearch-入门.md

1、基本概念1.1 文档Elasticsearch 是面向文档的,文档会被序列化成 JSON 格式,保存在 Elasticseach 中。文档的元数据,用于标注文档的相关信息。如_index,_type,_id,_source,_version,_score。#查看索引的文档总数GET kibana_sample_data_ecommerce/_count#查看具体的字段GET /_cat/indices/kibana*?pri&v&h=health,index,pri,re

2021-11-21 18:50:56 984

原创 Elasticsearch-在Docker容器中运行Elasticsearch, Kibana和Cerebro

1. Linux 环境下安装docker在 CentOS 7安装docker要求系统为64位、系统内核版本为 3.10 以上,可以使用以下命令查看,uname -r。#安装yum-utils包并设置稳定存储库sudo yum install -y yum-utilssudo yum-config-manager \ --add-repo \ https://download.docker.com/linux/centos/docker-ce.repo#查看仓库中docker版本

2021-11-21 18:46:12 1475

原创 Elasticsearch-概述

本文的主要介绍Elasticsearch 是什么、它有什么优势、应用场景和发展历程。Elasticsearch 是一款基于Lunece开源分布式实时搜索分析引擎。

2021-11-17 09:37:43 882

原创 Elasticsearch-下载和安装详解

本文的说明及讲解是基于ElasticSearch 7.15.1 版本,安装在centos7环境上,如文章配置有差异之处,以官网文档为准,主要介绍下载、安装、运行和主要配置说明。JVM配置-config/jvm.options 默认设置的是4GB。配置建议:Xmx不用超过机器内存的50%,最大不要超过30GB。

2021-11-06 12:44:43 1372

原创 L02_如何学习数据结构与算法

如何系统的学习数据结构与算法导读我们似乎都有类似的情况,在刚开始接触数据结构与算法的时候,都觉得晦涩难懂,一度怀疑自己智商有问题。从个人角度来看,无论是学习数据结构与算法还是学习其它如计算机网络,操作系统,都需要掌握好的学习方法,抓住学习重点,今天就带领大家一起思考下如何系统高效的学习数据结构与算法。1、是什么从广义上讲,数据结构就是指一组数据的存储方式,算法就是操作这组数据的方法。从狭义上来看,数据结构就是平时我们常说的一些经典的数据结构与算法,队列、栈、二叉树、链表、动态规划等。所以,

2021-07-03 10:34:10 494 1

原创 Spring Bean 定义常见错误案例

Spring Bean 定义常见错误案例使用好 Spring,就一定要了解它的一些潜规则,例默认扫描 Bean 的范围、自动装配构造器等。通过本节案例的分析,我们也可以感受到 Spring 的很多实现是通过反射来完成的,了解了这点,对于理解它的源码实现会大有帮助。例如在案例 3 中,为什么定义了多个构造器就可能报错,因为使用反射方式来创建实例必须要明确使用的是哪一个构造器。案例 1:spring bean 隐式扫描问题案例描述:spring boot 开发项目时,构建一个简单的web 程序示例

2021-06-20 23:59:37 591 1

原创 Spring Freamwork IoC 容器概述

Spring IoC 容器概述1、Spring IoC 依赖查找根据 Bean 名称查找根据 Bean 类型查找根据 Bean 名称 + 类型查找根据Java 注解查找dependency-lookup-context.xml<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://w

2021-05-30 15:38:43 81

原创 L01_Spring总览介绍

###导读1、What is Spring Framework?Spring makes it easy to create Java enterprise applications. It provides everything you need to embrace the Java language in an enterprise environment, with support for Groovy and Kotlin as alternative languag on the JVM

2021-05-16 23:38:35 159

原创 202105_Linux 脚本编写实践常用命令总结

commandsource filepath 使当前shell读入路径为filepath的shell文件依次执行文件中的所有语句$0 shell的名称pwd -P 显示出实际路径,而非使用链接路径jq 读取处理json文件#config=$(echo demo.json | jq -r --arg key "key" '.data[] | select(.key == "key") | .value')function read_json_file(){ fil

2021-05-15 09:27:14 161

原创 Kafka_基础概念(一)

一、Kubernetes入门1. kindkind 用来表明此资源类型的类型。# Pod 这种资源对象归属于V1这个核心API。# Kubernetes大部分常见的核心 资源对象都归属于v1这个核心API,比如Node、Pod、Service、 Endpoints、Namespace、RC、PersistentVolume等apiVersion: v1kind: Pod2. MasterKu

2021-04-11 21:22:32 375 1

原创 02_代码加锁,不要让“锁”事成为烦心事

I. 代码加锁1.加锁前要清楚锁和被保护的对象是不是一个层面的静态字段属于类,类级别的锁才能保护;而非静态字段属于类实例,实例级别的锁就可以保护。2.加锁要考虑锁的粒度和场景问题在方法上加 synchronized 关键字实现加锁确实简单,也因此我曾看到一些业务代码中几乎所有方法都加了 synchronized,但这种滥用 synchronized 的做法:一是,没必要。通常情况下 60% 的业务代码是三层架构,数据经过无状态的 Controller、Service、Repository 流转到数

2021-03-15 22:54:03 301

原创 01_使用并发工具类库,线程安全就高枕无忧了吗

I. 使用并发工具类库问题1.没有意识到线程重用导致用户信息错乱的 Bug一是,只知道使用并发工具,但并不清楚当前线程的来龙去脉,解决多线程问题却不了解线程。比如,使用 ThreadLocal 来缓存数据,以为 ThreadLocal 在线程之间做了隔离不会有线程安全问题,没想到线程重用导致数据串了。请务必记得,在业务逻辑结束之前清理 ThreadLocal 中的数据。2.使用了线程安全的并发工具,并不代表解决了所有线程安全问题二是,误以为使用了并发工具就可以解决一切线程安全问题,期望通过把线程不安

2021-03-13 23:35:31 217

Dark-Reader 浏览器阅读插件

Dark-Reader 浏览器阅读插件

2021-05-15

MobaXterm_Portable_v20.3.zip

支持各种连接SSH,FTP 如何使用? 1. 解压后,直接双击 .exe文件 2. 创建一个新的session,输入主机IP,用户名和密码即可登录远程主机

2020-07-21

my-report.zip

运行单元测试TestReport,就会根据模版自动生成自动化报告文件,生成在项目目录中report_result_02.html,支持搜索功能

2020-06-29

图片截图工具,拖动不影响屏幕切换

图片截图工具,方便快速,且可节省空间,方便快速,推荐。

2019-02-14

WebService

Web Service, 能使得运行在不同机器上的不同应用无须借助附加的、专门的第三方软件或硬件, 就可相互交换数据或集成。依据Web Service规范实施的应用之间, 无论它们所使用的语言、 平台或内部协议是什么, 都可以相互交换数据 通俗的讲,Web Service就是一个部署在Web服务器上的一个,它向外界暴露出一个能够通过Web进行调用的API。这就是说,你能够用编程的方法通过Web来调用这个应用程序。我们把调用这个Web Service 的应用程序叫做客户端,发布这个web服务的机应用程序器称为Web Service服务器

2018-02-13

Java编码规范总结

文中部分节选 1.整型实例。 修复建议:使用Integer.valueOf()替代new Integer。 2.switch语句包含太少分支。 修复建议:分支比较少的时候建议使用if else。原因:switch用来处理多分支的情况。 3.Switch语句应该包含一个default。 4.多线程错误 - 错误的延迟初始化和更新静态属性。 5.错误用法 - 集合转换为数组元素时发生的类型转换错误。 修复建议:使用c.toArray(new String[c.size()])。 6.不良实践 - 方法返回boolean类型返回了null。 7.错误用法 - "."用作正则表达式。 修复建议:String的split方法传递的参数是正则表达式,正则表达式本身用到的字符需要转义,如:句点符号“.”,美元符号“$”,乘方符号“^”,大括号“{}”,方括号“[]”,圆括号“()” ,竖线“|”,星号“*”,加号“+”,问号“?”等等,这些需要在前面加上“\\”转义符

2017-11-18

空空如也

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

TA关注的人

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