自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(26)
  • 收藏
  • 关注

原创 关于Spring IoC bean 的加载问题讨论

前言本系列全部基于 Spring 5.2.2.BUILD-SNAPSHOT 版本。因为 Spring 整个体系太过于庞大,所以只会进行关键部分的源码解析。本篇文章主要介绍 Spring IoC 容器是怎么加载 bean 的。正文我们先看一下Spring IoC BeanDefinition 的加载和注册一文中获取 bean 的实例代码:Copypublic class BeanDefinitionDemo {public static void main(String[] args) {

2020-06-26 13:18:24 303

原创 最新Java 数组指南,快收藏以方便以后使用!

两年前,我甚至写过一篇文章,吐槽数组在 Java 中挺鸡肋的,因为有 List 谁用数组啊,现在想想那时候的自己好幼稚,好可笑。因为我只看到了表面现象,实际上呢,List 的内部仍然是通过数组实现的,比如说 ArrayList,在它的源码里可以看到下面这些内容:/**The array buffer into which the elements of the ArrayList are stored.The capacity of the ArrayList is the length of th

2020-06-26 13:15:19 161

原创 Linux下9种优秀的代码比对工具推荐

大家好,我是良许。在我们编写代码的时候,我们经常需要知道两个文件之间,或者同一个文件不同版本之间有什么差异性。在 Windows 下有个很强大的工具叫作 BeyondCompare ,那在 Linux 下需要用到什么工具呢?本文介绍 9 种 Linux 下常用的 9 种代码比对工具,不仅有命令行工具,还有 GUI 界面工具,让你轻松进行代码比对。diff命令diff 命令是 Linux 下自带的一个强大的文本比对工具,而且使用起来非常方便。对于它的使用,我之前也单独写过一篇文章介绍,点击下方链接

2020-06-24 21:01:06 870

原创 .NET Core请求控制器Action方法正确匹配,但为何404?

前言有些时候我们会发现方法名称都正确匹配,但就是找不到对应请求接口,所以本文我们来深入了解下何时会出现接口请求404的情况。匹配控制器Action方法(404)首先我们创建一个web api应用程序,我们给出如下示例控制器代码复制代码[ApiController][Route("[controller]/[action]")]public class WeatherController : ControllerBase{[HttpGet]string Get(){return “He

2020-06-24 20:57:41 1659

原创 谈谈 Promise 以及实现 Fetch 的思路

Promise 是异步编程的一种解决方案。Promise/**属性*/Promise.lengthPromise.prototype/**方法*/Promise.all(iterable) // 所有成功触发成功 任何失败触发失败Promise.race(iterable) // 任意一个成功或失败后触发Promise.reject(reason)Promise.resolve(value)/**原型*/Promise.prototype.construc

2020-06-24 20:55:28 850

原创 010.OpenShift综合实验及应用

目录实验一 安装OpenShift 1.1 前置准备 1.2 配置规划 1.3 确认Ansible 1.4 检查Inventory 1.5 确认节点 1.6 准备工作 1.7 确认验证 1.8 检查Inventory 1.9 安装OpenShift Ansible playbook 1.10 Ansible安装OpenShift 1.11 确认验证 1.12 授权 1.13 登录测试 1.14

2020-06-23 14:07:38 361

原创 Blazor带我重玩前端(一)

写在前面曾经我和前端朋友聊天的时候,我说我希望有一天可以用C#写前端,不过当时更多的是美好的想象,而现在这一切正变得真实……什么是Blazor我们知道浏览器可以正确解释并执行JavaScript代码,那么浏览器是如何执行C#代码的呢?答案是通过WebAssembly。通过WebAssembly,我们可以让浏览器运行很多的高级语言,如 C#、C、C++、GO等,并使他们运行在基于内存安全的沙箱环境中。如下图所示:Blazor作为一个已经五六年没有写过前端的.NET程序员,遇到Blazor实在是幸运中

2020-06-23 13:42:53 802

原创 Spring Boot 2.x基础教程:Spring Data JPA的多数据源配置

上一篇我们介绍了在使用JdbcTemplate来做数据访问时候的多数据源配置实现。接下来我们继续学习如何在使用Spring Data JPA的时候,完成多数据源的配置和使用。添加多数据源的配置先在Spring Boot的配置文件application.properties中设置两个你要链接的数据库配置,比如这样:spring.datasource.primary.jdbc-url=jdbc:mysql://localhost:3306/test1spring.datasource.primary.u

2020-06-23 13:41:00 491

原创 手把手教你基于SqlSugar4编写一个可视化代码生成器(生成实体,以SqlServer为例,文末附源码)

在开发过程中免不了创建实体类,字段少的表可以手动编写,但是字段多还用手动创建的话不免有些浪费时间,假如一张表有100多个字段,手写有些不现实。这时我们会借助一些工具,如:动软代码生成器、各种ORM框架自带的代码生成器等等,都可以使用。我们现在就基于SqlSugar(ORM框架)自己动手制造一个轮子,以SqlServer为例。我们先看一下成品效果,使用流程:配置好数据库链接,点击【链接数据库】获取指定服务器上的数据库名,点击数据库名,动态获取数据库下面的所有表,点击数据表,如果生成过了的会自动获取生

2020-06-23 13:39:07 2099

原创 说说TCP的三次握手和四次挥手

一、传输控制协议TCP简介1.1 简介TCP(Transmission Control Protocol) 传输控制协议,是一种 面向连接的、可靠的、基于字节流的传输层 通信协议。TCP是一种面向连接(连接导向)的、可靠的基于字节流的传输层通信协议。TCP将用户数据打包成报文段,它发送后启动一个定时器,另一端收到的数据进行确认、对失序的数据重新排序、丢弃重复数据。TCP把连接作为最基本的对象,每一条TCP连接都有两个端点,这种端点我们叫作套接字(socket),将端口号拼接到IP地址即构成了套接字,

2020-06-22 15:20:10 353

原创 Jmeter(十二) - 从入门到精通 - JMeter逻辑控制器 - 终篇(详解教程)

1.简介Jmeter官网对逻辑控制器的解释是:“Logic Controllers determine the order in which Samplers are processed.”。意思是说,逻辑控制器可以控制采样器(samplers)的执行顺序。由此可知,控制器需要和采样器一起使用,否则控制器就没有什么意义了。放在控制器下面的所有的采样器都会当做一个整体,执行时也会一起被执行。JMeter逻辑控制器可以对元件的执行逻辑进行控制,除仅一次控制器外,其他可以嵌套别的种类的逻辑控制器。2.逻辑

2020-06-22 15:17:54 375

原创 Linux操作篇之配置DNS服务(一)

一、什么是DN。域名(Domain Name)又称网域,是由一串用点分隔的名字组成的Internet上某一台计算机或计算机组的名称,用于在数据传输时对计算机的定位标识(有时也指地理位置)。它的作用只是为了便于人们对网站的记忆。就好比通讯录,好友的手机号码根本记不了几个,所以使用名字来记录手机号,记住名字就知道手机号是那个朋友的。域名就相当于好友名字;IP地址就相当于好友手机号。二、什么是DNS。随着域名越来越多。便出现了一种系统,也就是DNS(Domain Name System)系统,它会起到综合管

2020-06-22 15:14:00 325

原创 使用DragonFly进行智能镜像分发

Dragonfly 是一款基于 P2P 的智能镜像和文件分发工具。它旨在提高文件传输的效率和速率,最大限度地利用网络带宽,尤其是在分发大量数据时,例如应用分发、缓存分发、日志分发和镜像分发。在阿里巴巴,Dragonfly 每个月会被调用 20 亿次,分发的数据量高达 3.4PB。Dragonfly 已成为阿里巴巴基础设施中的重要一环。尽管容器技术大部分时候简化了运维工作,但是它也带来了一些挑战:例如镜像分发的效率问题,尤其是必须在多个主机上复制镜像分发时。Dragonfly 在这种场景下能够完美支持

2020-06-21 13:52:34 797

原创 超详细BERT介绍(一)BERT主模型的结构及其组件

BERT(Bidirectional Encoder Representations from Transformers)是谷歌在2018年10月推出的深度语言表示模型。一经推出便席卷整个NLP领域,带来了革命性的进步。从此,无数英雄好汉竞相投身于这场追剧(芝麻街)运动。只听得这边G家110亿,那边M家又1750亿,真是好不热闹!然而大家真的了解BERT的具体构造,以及使用细节吗?本文就带大家来细品一下。前言本系列文章分成三篇介绍BERT,本文主要介绍BERT主模型(BertModel)的结构

2020-06-21 13:48:22 14388 5

原创 安卓开发,Service 服务

Service 服务是一种应用组件,可长时间后台运行,不提供用户界面。如音乐播放器/下载程序。不能自己运行。使用Service的方式:(一)startService():调用者和服务之间没有联系,即使调用者退出了,服务仍然进行;调用者(Activity)无法访问服务中的方法,因为不能自己new出来服务,new出来的就不是服务了,只是普通对象。onCreate()->onStartCommand()->服务启动->onDestroy()。注意onCreate()只执行一次,Serv

2020-06-21 13:45:43 286

原创 mysql大表在不停机的情况下增加字段该怎么处理

MySQL中给一张千万甚至更大量级的表添加字段一直是比较头疼的问题,遇到此情况通常该如果处理?本文通过常见的三种场景进行案例说明。1、 环境准备数据库版本: 5.7.25-28(Percona 分支)服务器配置: 3台centos 7虚拟机,配置均为2CPU 2G内存数据库架构: 1主2从的MHA架构(为了方便主从切换场景的演示,如开启GTID,则两节点即可),关于MHA搭建可参考此文 MySQL高可用之MHA集群部署准备测试表: 创建一张2kw记录的表,快速创建的方法可以参考快速创建连续数

2020-06-20 15:24:42 770

原创 这一次搞懂Spring Web零xml配置原理以及父子容器关系

前言在使用Spring和SpringMVC的老版本进行开发时,我们需要配置很多的xml文件,非常的繁琐,总是让用户自行选择配置也是非常不好的。基于约定大于配置的规定,Spring提供了很多注解帮助我们简化了大量的xml配置;但是在使用SpringMVC时,我们还会使用到WEB-INF/web.xml,但实际上我们是完全可以使用Java类来取代xml配置的,这也是后来SpringBoott的实现原理。本篇就来看看Spring是如何实现完全的零XML配置。正文先来看一下原始的web.xml配置:

2020-06-20 15:23:10 223

原创 Quartz.Net系列(七):Trigger之SimpleScheduleBuilder详解

所有方法图SimpleScheduleBuilder方法RepeatForever:指定触发器将无限期重复。WithRepeatCount:指定重复次数var trigger = TriggerBuilder.Create().WithSimpleSchedule(s=>s.WithIntervalInSeconds(1).RepeatForever()).Build(); var trigger = TriggerBuilder.Create().WithSimpleSche

2020-06-20 15:18:08 5166

原创 Spring Boot 2 实战:利用Redis的Geo功能实现查找附近的位置

前言老板突然要上线一个需求,获取当前位置方圆一公里的业务代理点。明天上线!当接到这个需求的时候我差点吐血,这时间也太紧张了。赶紧去查相关的技术选型。经过一番折腾,终于在晚上十点完成了这个需求。现在把大致实现的思路总结一下。图12. MySQL 不合适遇到需求,首先要想到现有的东西能不能满足,成本如何。MySQL是我首先能够想到的,毕竟大部分数据要持久化到MySQL。但是使用MySQL需要自行计算Geohash。需要使用大量数学几何计算,并且需要学习地理相关知识,门槛较高,短时间内不可能完成需.

2020-06-19 14:27:00 681

原创 003.OpenShift网络

目录一 OpenShift网络实现 1.1 软件定义网络(SDN) 1.2 Kubernetes SDN Pod 1.3 Kubernetes SDN Service 1.4 service对外暴露 1.5 pod访问外部网络二 OpenShift SDN练习 2.1 前置准备 2.2 本练习准备 2.3 创建应用 2.4 扩展应用 2.5 测试访问 2.6 检查服务 2.7 检查pod 2.8 设置

2020-06-19 14:24:24 1796

原创 Spring Cloud Alibaba系列(四)使用gateway作为服务网关

什么是网关在微服务架构里,服务的粒度被进一步细分,各个业务服务可以被独立的设计、开发、测试、部署和管理。这时,各个独立部署单元可以用不同的开发测试团队维护,可以使用不同的编程语言和技术平台进行设计,这就要求必须使用一种语言和平台无关的服务协议作为各个单元间的通讯方式。换句话说就是网关为所有的请求提供了统一的入口,方便我们对服务请求和响应做统一管理。为什么要用网关API 网关是一个处于应用程序或服务(提供 REST API 接口服务)之前的系统,用来管理授权、访问控制和流量限制等,这样 REST AP

2020-06-17 15:28:51 1411

原创 Asp.Net Core入门之自定义中间件

什么是中间件?这里引用官方解释: 中间件是用于组成应用程序管道来处理请求和响应的组件。管道内的每一个组件都可以选择是否将请求交给下一个组件、并在管道中调用下一个组件之前和之后执行某些操作。请求委托被用来建立请求管道,请求委托处理每一个 HTTP 请求。 请求委托通过使用 IApplicationBuilder 类型的 Run、Map 以及 Use 扩展方法来配置,并在 Startup 类中传给 Configure 方法 。每个单独的请求委托都可以被指定为一个内嵌匿名方法,或其定义在一个可重用

2020-06-17 15:27:13 359

原创 重学 Java 设计模式:实战代理模式「模拟mybatis-spring中定义DAO接口,使用代理类方式操作数据库原理实现场景」

一、前言难以跨越的瓶颈期,把你拿捏滴死死的!编程开发学习过程中遇到的瓶颈期,往往是由于看不到前进的方向。这个时候你特别希望能有人告诉你,你还欠缺些什么朝着哪个方向努力。而导致这一问题的主要原因是由于日常的业务开发太过于复制过去,日复一日的重复。没有太多的挑战,也没参与过较大体量的业务场景,除了这些开发场景因素外,还有缺少组内的技术氛围和技术分享,没有人做传播和布道者,也缺少自己对各项技术学习的热情,从而导致一直游荡在瓶颈之下,难以提升。小公司与大公司,选择哪个?刨除掉薪资以外你会选择什么,是不有人建

2020-06-17 15:23:28 277

原创 C++ Primer Plus(一)

完整阅读C++ Primer Plus #系统重新学习C++语言部分,记录重要但易被忽略的,关键但易被遗忘的。预备#1、C++相对于C增加了最关键的两项,面向对象和范型编程。处理数据#2、对于变量明,C++没有长度限制;同时,以两个下划线或一个下划线和大写字母开头的名称被保留给实现(编译器及其使用的资源)使用;以一个下划线开头的名称被保留给实现,用作全局标识符。3、C++11提供一种大括号初始化器,可以用它初始化任何类型。1 int ham = {24};2 int ems{7};3 in

2020-06-15 23:45:10 1407

原创 Spring:BeanDefinition&PostProcessor不了解一下吗?

水稻:这两天看了BeanDefinition和BeanFactoryPostProcessor还有BeanPostProcessor的源码。要不要了解一下菜瓜:six six six,大佬请讲水稻:上次我们说SpringIOC容器是一个典型的工厂模式假如我们把Spring比作一个生产模型的大工厂,那么.class文件就是原材料。而BeanDefinition就是创建模型的模具。不管是传统的XML还是后面的注解,Spring在启动的时候都会创建一个扫描器去扫描指定目录下的.class文件,并根据文件的注

2020-06-15 23:40:51 168

原创 工作5年,一位来自广西测试妹子学习《自动化测试》经验分享

大家好,我是黎婷,一位来自广西南宁的测试妹子,工作5年,借着原作者平台,今天给大家分享一下近期在学习《自动化测试实战宝典》一书过程中的一些感想、学习心得,希望对大家有所帮助。来自大多数测试人员的困惑在当前整个软件行业的高速发展中,作为测试人员如何在这个急速浪潮中站稳脚跟,想必大多数人都知道需要学习更多的知识与技能,巩固并加强自身能力,才能保证自己不被淘汰。然而目前相当多行业内的测试人员基本都会面临这种困惑:大体的方向是确定了,但是具体学什么,怎么学,落实到地的方案却比较少有人能想明白。2. 自己

2020-06-10 14:45:51 244

空空如也

空空如也

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

TA关注的人

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