- 博客(227)
- 资源 (6)
- 收藏
- 关注
原创 研发安全(二)——后端开发必须掌握的SQL注入漏洞与防护
SQL 注入对于我们研发人员来说,应该基本都听说过,甚至还在开发功能过程中不知不觉引入了SQL注入漏洞,只是没被发现而已。所以,本文会系统的介绍下SQL注入漏洞的危害以及我们开发过程中如何进行防护。
2024-03-24 18:58:13 61
原创 MySQL调优之SQL语句
在开发中,我们要尽量写出高性能的 SQL 语句,但也无法避免一些慢 SQL 语句的出现,或因为疏漏,或因为实际生产环境与开发环境有所区别,这些都是诱因。面对这种情况,我们可以打开慢 SQL 配置项,记录下都有哪些 SQL 超过了预期的最大执行时间。//开启慢SQL日志//记录日志地址//最大执行时间除此之外,很多数据库连接池中间件也有分析慢 SQL 的功能。
2024-03-17 23:26:54 766
原创 研发安全(一)——研发人员必须掌握的安全开发常识
掌握安全开发常识对于研发人员来说至关重要。通过树立正确的安全开发意识、遵循安全原则、实施数据安全与隐私保护、进行输入验证与过滤、管理漏洞与风险、遵循安全编码规范、进行安全测试与验证、持续学习与跟踪最新安全动态、跨领域合作与沟通以及遵守合规性与法规要求等多方面的努力,研发人员可以有效提升软件的安全性,为用户提供更加安全、可靠的服务。
2024-03-17 11:37:22 191
原创 Docker 安装 MySQL5.7
如果你安装了 docker-desktop,点击图标进入命令窗口。整个 pull 过程需要花费一些时间,耐心等待。#启动容器,并设置mysql忽略大小写。#输入命令,并按提示输入密码root。
2023-10-13 22:56:27 760
原创 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 2476
原创 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 878
原创 L03_什么是 BeanDefinition
什么是 BeanDefinition?BeanDefinition 是SpringFreamwork 定义配置元信息的接口。包含:• Bean 的类名• Bean 行为配置元素,如作用域、自动绑定的模式,生命周期回调等• 其他 Bean 引用,又可称依赖• 配置设置,比如 Bean1、BeanDefinition 元信息属性说明ClassBean 全类名NameBean 名称或 IDScopeBean 作用域范围Constructor ArgsB
2022-03-25 09:03:58 206
原创 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 164
原创 小程序-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 985
原创 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 1477
原创 Elasticsearch-概述
本文的主要介绍Elasticsearch 是什么、它有什么优势、应用场景和发展历程。Elasticsearch 是一款基于Lunece开源分布式实时搜索分析引擎。
2021-11-17 09:37:43 883
原创 Elasticsearch-下载和安装详解
本文的说明及讲解是基于ElasticSearch 7.15.1 版本,安装在centos7环境上,如文章配置有差异之处,以官网文档为准,主要介绍下载、安装、运行和主要配置说明。JVM配置-config/jvm.options 默认设置的是4GB。配置建议:Xmx不用超过机器内存的50%,最大不要超过30GB。
2021-11-06 12:44:43 1395
原创 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 82
原创 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
MobaXterm_Portable_v20.3.zip
2020-07-21
WebService
2018-02-13
Java编码规范总结
2017-11-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人