
Golang使用第三方包viper读取yaml配置信息操作
Golang有很多第三方包,其中的 viper 支持读取多种配置文件信息。本文只是做一个小小demo,用来学习入门用的。1、安装go get github.com/spf13/viper2、编写一个yaml的配置文件,config.yamldatabase: host: 127.0.0.1 user: root dbname: test pwd: 1234563、编写学习脚本main.go,读取config.yaml配置信息package main import ( "f...
2024-01-10
golang利用pprof与go-torch如何做性能分析
前言软件开发过程中,项目上线并不是终点。上线后,还要对程序的取样分析运行情况,并重构现有的功能,让程序执行更高效更稳写。 golang的工具包内自带pprof功能,使找出程序中占内存和CPU较多的部分功能方便了不少。加上uber的火焰图,可视化显示,让我们在分析程序时更简单明了。pprof有两个...
2024-01-10
CSS 让 PRE 预格式化标签强制自动换行
PRE 元素可定义预格式化的文本。被包围在 PRE 元素中的文本通常会保留空格和换行符。而文本也会呈现为等宽字体。<pre> 标签的一个常见应用就是用来表示计算机的源代码。对于技术博客经常会用到 PRE 标签输出代码或是代码高亮,而默认情况下,PRE 标签中的内容若超出范围不会自动换行。下面介绍...
2024-01-10
MySQL8.0.21.0社区版安装教程(图文详解)
一、下载MySQL登录MySQL官网下载MSI Installer:点击“Dnownload”点击“No thanks, just start my download.”二、安装MySQLStep1:选择安装类型根据个人需求,选择其中一个安装类型:Developer Default 开发者默认安装Server only 仅安装服务端(推荐)Client only 仅安装客户端Full 安装所有内容Custom 自定义安装(推...
2024-01-10
如何使用docker部署前端应用的方法步骤
docker 变得越来越流行,它可以轻便灵活地隔离环境,进行扩容,方便运维管理。对开发者也更方便开发,测试与部署。最重要的是, 当你面对一个陌生的项目,你可以照着 Dockerfile,甚至不看文档(文档也不一定全,全也不一定对)就可以很快让它在本地跑起来。现在很强调 devops 的理念,我把 devops ...
2024-01-10
Docker创建运行多个mysql容器的方法示例
1.使用mysql/mysql-server:latest镜像快速启动一个Mysql实例docker run --name ilink_user_01 -e MYSQL_ROOT_PASSWORD=123456 0d 0p 3307:3306 mysql/mysql-server:latestilink_user_01是容器名称,通过--name指令指定123456为数据库root的密码,通过-e指定环境MYSQL_ROOT_PASSWORD为123456,-e (指定容器内的环境变量)-d 使用-d参数,...
2024-01-10
nginx keepalive的具体使用
默认http1.1协议的请求头是默认开启keepalive,如图:那什么是keepalive?作用是什么?keepalive是在TCP中一个可以检测死连接的机制,作用是保持socket长连接不被断开,属于tcp层的功能,并不属于应用层。TCP层怎么做到保持长连接的呢?先看keepalive的用法:有三个参数,开放给应用层使用sk->keepalive_prob...
2024-01-10
微信小程序虚拟列表的实现示例
目录前言分析初始渲染方法初步优化进一步优化方法二前言大部分小程序都会有这样的需求,页面有长列表,需要下拉到底时请求后台数据,一直渲染数据,当数据列表长时,会发现明显的卡顿,页面白屏闪顿现象。分析请求后台数据,需要不断的setData,不断的合并数据,导致后期数据渲染过大...
2024-01-10
vue添加锚点,实现滚动页面时锚点添加相应的class操作
第一步,给vue页面添加锚点.orange{ color: #f97910;}<template> <div class="productDetail" ref="content"> <div class="tabbar"> <div @click.prevent="tabclick(index)" v-for="(item,index) in productTile" :key="index" :class="{orange:index==current}">{{ite...
2024-01-10
Java设计模式之抽象工厂模式
一、场景描述接《Java设计模式(一)工厂模式》工厂模式有一缺点,就是破坏了类的封闭性原则。例如,如果需要增加Word文件的数据采集,此时按以下步骤操作:创建Word文件数据采集类,实现仪器数据采集接口;修改仪器数据采集工厂类,增加Word文件数据采集类的工厂方法;调用工厂类的word文...
2024-01-10
详解spring面向切面aop拦截器
spring中有很多概念和名词,其中有一些名字不同,但是从功能上来看总感觉是那么的相似,比如过滤器、拦截器、aop等。 过滤器filter、spring mvc拦截器Interceptor 、面向切面编程aop,实际上都具有一定的拦截作用,都是拦截住某一个面,然后进行一定的处理。 在这里主要想着手的是aop,至于他们的比较...
2024-01-10
Java中用enum结合testng实现数据驱动的方法示例
前言数据驱动测试是相同的测试脚本使用不同的测试数据执行,测试数据和测试行为完全分离。数据驱动是做自动化测试中很重要的一部分,数据源的方案也是百花八门了,比如利用外部文件,直接在@DataProvider中写死等等。我们今天介绍一下利用enum来做数据源,先来看一下enum的写法:public enum Test...
2024-01-10
MyEclipse整合ssh三大框架环境搭载用户注册源码下载
前言SSH不是一个框架,而是多个框架(struts+spring+hibernate)的集成,是目前较流行的一种Web应用程序开源集成框架,用于构建灵活、易于扩展的多层Web应用程序。集成SSH框架的系统从职责上分为四层:表示层、业务逻辑层、数据持久层和域模块层(实体层)。Struts作为系统的整体基础架构,负责MVC的...
2024-01-10
详解Java中synchronized关键字的死锁和内存占用问题
先看一段synchronized 的详解:synchronized 是 java语言的关键字,当它用来修饰一个方法或者一个代码块的时候,能够保证在同一时刻最多只有一个线程执行该段代码。一、当两个并发线程访问同一个对象object中的这个synchronized(this)同步代码块时,一个时间内只能有一个线程得到执行。另一个线程必须等待...
2024-01-10
用Stripes做Java Web开发
摘要: Stripes是一个以让程序员的web开发简单而高效为准则来设计的基于动作的开源Java web框架。本文将介绍Stripes与其它如Struts之类基于动作的框架的区别和其提供的一些存在于Ruby on Rails之中的简单性。 Stripes是一个以让程序员的web开发简单而高效为准则来设计的基于动作的开源Java web框...
2024-01-10
添加WordPress编辑器
这就是我添加自定义分类法的方式$args = array( 'labels' => $labels, 'hierarchical' => true, 'public' => true, 'show_ui' => true, 'show_admin_column' => true, 'show_in_nav_menus' =...
2024-01-10
Silent Librarian APT 组织将在 20/21 学年持续攻击大学
译者:知道创宇404实验室翻译组原文链接:https://blog.malwarebytes.com/malwarebytes-news/2020/10/silent-librarian-apt-phishing-attack/前言自复学以来,被称为“Silent Librarian/ TA407 / COBALT DICKENS”的APT组织就一直通过网络钓鱼活动瞄准大学。9月中旬,一位客户告知我们该APT组织开展的一项新的网络钓鱼活动。基于目标受...
2024-01-10
Java 安全-RMI-学习总结
作者:p1g3@D0g3原文链接:https://payloads.info/ 本文为作者投稿,Seebug Paper 期待你的分享,凡经采用即有礼品相送! 投稿邮箱:paper@seebug.org 这一周把时间都花在学习RMI上了...在很多位师傅的帮助下,终于搞懂了RMI是个什么东西,他的攻击流程是怎么样的,遂记录一篇笔记。RMI是什么?RMI(Remote Method Invoc...
2024-01-10
二叉平衡树的指针问题
Delete(key, T){ BstTree TmpCell; //one tree node if(T == NULL) return Not Found; else if(key < T->data) T->LeftChild = Delete(key, T->LeftChild); else if(key > T->data) T->RightChild = Delete(key, T->RightChild); else if...
2024-01-10
Cocos2d-x 2.1.5 的编译错误:symbol cannot be used in a using-declaration
我用的是VS2013,打开的是2012的解决方案.在libExtensionis项目下有几个文件报有:error C2873: 'min' : symbol cannot be used in a using-declaration的错误.错误是因为有一行: using std::min;我知道std::min 是 <algorithm>里面的,我#include <algorithm>之后,问题就没了,但是这是我刚下载的原封未动的代码,怎么会有这个错误.是因为转...
2024-01-10
