学习笔记

c++11特性学习总结

 ubuntu 16.04 自带gcc 5.4 支持c++11ubuntu 18.04 自带gcc 7.3 支持c++14...

Shiro实现用户对动态资源细粒度的权限校验

前言 在实际系统应用中,普遍存在这样的一种业务场景,需要实现用户对要访问的资源进行动态权限校验。 譬如,在某平台的商家系统中,存在商家、品牌、商品等业务资源。它们之间的关系为:一个商家可以拥有多个品牌,一个品牌下可以拥有多个商品。 一个商家用户可以拥有多个账户,每个账户拥有不同级别的权限。 例如,小王负责商家A下的所有资源的运营工作,小张负责品牌A和品牌A下所有商品的运营工作。而小李负责品牌B Shiro本身提供了RequiresAuthentication、RequiresPermissions和RequiresRoles等注解用于实现静态权限认证, ...

Three.js 开发机房(三)

之前三节都没涉及到机房,只是一些零零散散的知识点,这一节我们就开始正式画外墙。 首先我了明显理解以下啥是墙?其实说白了就是一个长方体,长不确定,宽一般也就是40cm,高也就是两米,这就是一个简单的墙,当然很多墙上都有窗户、门啥的,其实也就是在长方体的固定的位置掏个洞,然后放上我们需要方的东西,比如门,窗户。 在画墙之前我们需要对一个机房的俯视图进行分析,就比如下面这张机房的图片 (图片来自网络) 就像图片中显示的一样,这个机房非常标准,是个很标准的长方形机房,长900cm, 宽600cm,左侧的墙体是玻璃隔断,还有一扇门, ...

堆实战(动态数据流求top k大元素,动态数据流求中位数)

动态数据集合中求top k大元素 第1大,第2大 ...第k大 k是这群体里最小的 所以要建立个小顶堆 只需要维护一个大小为k的小顶堆 即可 当来的元素(newCome)> 堆顶元素(smallTop),说明进来的元素有和堆顶竞争的资格,此时的堆顶被踢出 这时把进来的元素放到堆顶 newCome>smallTop,smallTop的左右孩子>smallTop,所以无法确认 newCome和smallTop的左右孩子的大小关系, 在newCome和smallTop的左右子节点找到最小的元素和newCome交换,然后继续比较newCome与被交换的左右孩子的大小关系 ...

【原创】(三)Linux paging_init解析

背景 Read the fucking source code! --By 鲁迅 A picture is worth a thousand words. --By 高尔基 说明: Kernel版本:4.14 ARM64处理器,Contex-A53,双核 使用工具:Source Insight 3.5, Visio 1. 介绍 从(二)Linux物理内存初始化中,可知在paging_init调用之前,存放Kernel Image和DTB的两段物理内存区域可以访问了(相应的页表已经建立好)。尽管物理内存已经通过memblock_add添加进系统,但是这部分的物理内存到虚拟内存的映射还没有建立,可以通过memblock_alloc分配一段物理内存,但是还不能访问,一切还需要等待paging_init的执行。最终页表建立好后,可以通过虚拟地址去访问最终的物理地址了。 ...

8 UA池和代理池在Scrapy中的应用

下载中间件简介   在Scrapy中,引擎和下载器之间有一个组件,叫下载中间件(Downloader Middlewares)。因它是介于Scrapy的request/response处理的钩子,所以有2方面作用: (1)引擎将请求传递给下载器过程中,下载中间件可以对Requests进行一系列处理。比如设置请求的 User-Agent,设置代理ip等 (2)在下载器完成将Response传递给引擎中,下载中间件可以对Responses进行一系列处理。比如进行gzip解压等。 爬虫中,主要使用下载中间件处理请求,一般会对请求设置随机的User-Agent ,设置随机的代理ip。目的在于防止爬取网站的反爬虫策略。 ...

Reactor模式

什么是Reactor模式 Reactor模式是一种设计模式,它是基于事件驱动的,可以并发的处理多个服务请求,当请求抵达后,依据多路复用策略,同步的派发这些请求至相关的请求处理程序。 Reactor模式角色构成 在早先的论文An Object Behavioral Pattern for Demultiplexing and Dispatching Handles for Synchronous Events中Reactor模式主要有五大角色组成,分别如下: Handle:操作系统提供的一种资源,用于表示一个个的事件,在网络编程中可以是一个连接事件,一个读取事件,一个写入事件,Handle是事件产生的发源地 ...

java注解使用总结

 2005年,sun公司推出了jdk1.5,同时推出的注解功能吸引了很多人的目光,使用注解编写代码,能够减轻java程序员繁琐配置的痛苦。...

云服务器反黑客入侵攻防实录(二)

4、探秘黑客踪 4.1 寓言公寓楼 城市一角有一栋单身公寓楼,公寓有门有窗。到了晚上,主人下班回来,拿钥匙打开门进屋,关门熄灯休息, 平时窗户半开着,通风透气,保持空气清新。 一台云服务器好比作一间单身公寓。黑客好比作不速之客,不请自来,黑客进屋有两条路可走,一条路是开门大摇大摆进来,另一条路是翻窗进屋,多少需要一些飞檐走壁的功夫。 公寓门比较先进,使用了电子密码锁,需要输入正确密码才能开门进屋。黑客是不知道密码的,不能进屋。 单身公寓的1605室在16楼,小明在这间公寓里住了小一年了,最近新交了一位朋友小芳,这段时间留宿在公寓。小明和新朋友上下班有早有晚,所以小明给她开了一个新账号,设了新密码。小明有点懒,把账号和密码设成一样的了,心想16楼很少有人来,楼道有24小时监控,谅他也没人敢私闯民宅。 ...

Springboot源码分析之Spring循环依赖揭秘

摘要: 若你是一个有经验的程序员,那你在开发中必然碰到过这种现象:事务不生效。或许刚说到这,有的小伙伴就会大惊失色了。Spring不是解决了循环依赖问题吗,它是怎么又会发生循环依赖的呢?,接下来就让我们一起揭秘Spring循环依赖的最本质原因。 Spring循环依赖流程图 file Spring循环依赖发生原因 使用了具有代理特性的BeanPostProcessor 典型的有 事务注解@Transactional,异步注解@Async等 file file file 源码分析揭秘 protected Object doCreateBean( ... ){ ...

Java微服务(二):服务消费者与提供者搭建

  本文接着上一篇写的《Java微服务(一):dubbo-admin控制台的使用》,上篇文章介绍了docker,zookeeper环境的安装,并参考dubbo官网演示了dubbo-admin控制台的使用。上篇文章已经搭建好zookeeper服务注册中心,本片文章主要搭建服务消费者和服务提供者。按照微服务的原则,本文将demo分为3部分:服务接口、服务消费者、服务消费者。...
青岛软件培训

可能你正在寻找一家靠谱的IT培训机构,学习一些专业的软件开发技术,找一份得体的工作。恰巧我们就是一家踏踏实实做教育的IT人才培养机构,我们咨询电话是 0532-85025005,如果你确实对IT感兴趣,我们不妨交流一下。

申请免费试听课程