-
刚刚,给学妹普及了登录的两大绝学
今天跟大家聊一个比较基础的话题,就是实现登录的方式有哪些?适合刚入行的朋友。华山之Session绝学Session我们称之为会话控制,是一种在服务器端保持会话状态的解决方案。通俗点来讲就是客户端访问服务端的时候,会在服务端存储对应的信息,生成一个SessionID返回给客户端,客户端下次过来的时候带上SessionID,这样就能识别访问者的身份。请求中带上SessionID最常见的方式就是通过Co… -
基于NPOI的Excel导入导出类库
概述支持多sheet导入导出。导出字段过滤。特性配置导入验证,非空验证,唯一验证,错误标注等用于基础配置和普通报表的导入导出,对于复杂需求,比如合并列,公式,导出图片等暂不支持GitHub地址:https://github.com/Mike-Zrw/ExcelHelper/tree/master导出配置支持HeaderStyleAttribute:列名样式,(颜色,字体,大小,加粗)StringF… -
java版app自动化测试初始化模板
项目目录介绍目录结构如下:(包含:驱动的基础配置、全局异常处理、异常截图、报告自动生成、app常用操作方法封装、常用工具类封装)各包分层关系basepage包负责存放app公共操作方法、AndroidDriver基础配置、testNG公共执行顺序BaseTest,对外暴露驱动等。BaseApp类包含app操作有:封装By类型的点击操作和输入框输入数据操作、切换到下一个窗口操作、上下左右滑动操作、具… -
每日一个知识点:Volatile 和 CAS 的弊端之总线风暴
每日一个知识点系列的目的是针对某一个知识点进行概括性总结,可在一分钟内完成知识点的阅读理解,此处不涉及详细的原理性解读。一、什么是总线风暴总线风暴,听着真是一个帅气的词语,但如果发生在你的系统上那就不是很美丽了,废话不多说,先看图说结论。什么是总线风暴,先来看结论在java中使用unsafe实现cas,而其底层由cpp调用汇编指令实现的,如果是多核cpu是使用lockcmpxchg指令,单核cpu… -
PPT画成这样,述职答辩还能过吗?
一、前言标题有点凶,但内容很干!大部分程序员并不会画PPT,也梳理不出架构图。工作的年头虽然多,但却不对自己的知识进行整理汇总,久而久之只能干,不会说。好,那么本文就带着你一起画画图,做个画画的baby!数学好的一般代码写的好,那下象棋好的呢?做程序猿多年后,经常会有家里的亲戚询问,自己家小孩报计算机行吗。他数学好、他英语好、他喜欢打游戏...,一般情况我也都推荐去学java了哈哈哈。这也让我想到… -
编程的一些抽象核心
目录一、程序、算法本质举例二、面向对象、设计模式面向接口编程组合优于继承三、依赖倒置和控制反转(IoC/DIP)钱开关和灯证券交易所一、程序、算法本质程序=算法+数结结构算法=逻辑+控制程序=算法+数结结构,这个是众所周知了,算法这个解释则比较清丽脱俗:1.逻辑2.控制。逻辑用来解决实际的问题,控制决定用什么策略来解决问题,逻辑是真正意义上的解决问题的算法控制是一个程序流转的方式,即程序执行的方式… -
Quartz.NET集成UI版
Quartz.NETQuartz.NET是NET的开源作业调度系统。Quartz.NET是一个功能齐全的开源作业调度系统,可用于从最小的应用程序到大型企业系统。Quartz.NET目前支持NETFramework和NETCore。Quartz.NET中文文档完善文档地址Quartz.NET集成UI版目前开源作业调度系统还有Hangfire可以选择。其他开源作者制作的带UI的Quartz.NET系统… -
Linux等待队列(Wait Queue)
1.Linux等待队列概述Linux内核的等待队列(WaitQueue)是重要的数据结构,与进程调度机制紧密相关联,可以用来同步对系统资源的访问、异步事件通知、跨进程通信等。在Linux中,等待队列以循环链表为基础结构,包括两种数据结构:等待队列头(waitqueuehead)和等待队列元素(waitqueue),整个等待队列由等待队列头进行管理。下文将用内核源码(基于Linuxkernel5.2… -
Spring源码系列(四)--spring-aop是如何设计的
简介spring-aop用于生成动态代理类(底层是使用JDK动态代理或cglib来生成代理类),搭配spring-bean一起使用,可以使AOP更加解耦、方便。在实际项目中,spring-aop被广泛用来实现日志、权限、事务、异常等的统一管理。上一篇博客(Spring源码系列(三)--spring-aop的基础组件、架构和使用)简单讲了spring-aop的基础组件、架构和使用方法,本文将开始研究… -
python+pymysql访问mysql数据库
今天跟大家分享两种场景的python连接MySQL方法;场景一:连接远程MySQL 首先,安装pymysql;在命令行执行pipinstallpymysql指令。 然后,导入pymysql; importpymysql 具体实现步骤的代码及注释如下:#创建远程数据库连接conn=pymysql.connect(user='数据库用户名',#数据库用户名host='数据库IP',#数据库IPpor… -
Linux嵌入式开发基础学习-第二节
第二节:软件基础知识嵌入式系统的基础是硬件,软件是嵌入式系统的灵魂。软件是由程序和文档构成的,程序是一组按照特定结构组织的指令和数据集合。软件可以分成系统软件和应用软件,以及介于二者之间的中间件软件。系统软件是使用计算机提供的基本功能,面向通用领域;应用软件是针对某种特殊需求设计的,一般来说具有专门的功能。软件的另一个组成部分是文档,常见的软件文档有开发文档和用户文档,开发文档面向开发人员,用户文… -
Linux嵌入式开发基础学习-第一节
第一节:计算机组成原理 计算机由硬件系统和软件系统两大部分组成,按照功能又可以划分为指令系统、存储系统、输入输出系统等,从存储结构划分,可以分为冯诺依曼结构和哈佛结构。 冯·诺伊曼结构是以数学家JohnVonNeumann的名字命名,该结构把计算机分成了运算器、控制器、存储器、输入设备和输出设备五个部分,工作流程是从存储器取出指令,由运算器运算指令,控制… -
Solon详解(六)- Solon的校验扩展框架使用与扩展
Solon详解系列文章:Solon详解(一)-快速入门Solon详解(二)-Solon的核心Solon详解(三)-Solon的web开发Solon详解(四)-Solon的事务传播机制Solon详解(五)-Solon扩展机制之SolonPluginSolon详解(六)-Solon的校验扩展框架使用与扩展在业务的实现过程中,尤其是对外接口开发,我们需要对请求进行大量的验证并返回错误状态码和描述。lom… -
Kubernetes 服务部署最佳实践(一) ——如何更好地设置 Request 与 Limit
如何为容器配置Request与Limit?这是一个即常见又棘手的问题,这个根据服务类型,需求与场景的不同而不同,没有固定的答案,这里结合生产经验总结了一些最佳实践,可以作为参考。所有容器都应该设置requestrequest的值并不是指给容器实际分配的资源大小,它仅仅是给调度器看的,调度器会"观察"每个节点可以用于分配的资源有多少,也知道每个节点已经被分配了多少资源。被分配资源的大小就是节点上所有…