归档

业务思考|数据权限问题

刘启春

在权限管理中一般分为两类:操作权限、数据权限。

操作权限:是用户是否能使用某个功能的接口权限。 数据权限:是用户是否能操作某个范围的数据,例如:订单记录修改接口,“用户”只能修改所属的(用户 A 不能修改用户 B 的订单记录),“admin”可修改所有的。

Dubbo、Zookeeper 学习总结

刘启春

dubbo、zookeeper 是常用的分布式服务治理服务协调框架,dubbo 是常用 RPC 框架,使用简单易上手,dubbo 除了具有 RPC 功能外还有服务注册服务发现的功能(尽管用的不多),zookeeper 是 Hadoop 开源项目下的一个子项目,常用来作为服务的注册中心,另外 zookeeper 也可以用来做分布式锁。

这篇文章的主要内容如下:

  • dubbo RPC 使用
  • RPC 过程
  • dubbo 使用
  • zookeeper 应用场景
  • zookeeper 做分布式锁

MySQL|explain 执行计划

刘启春

为了知道 SQL 的效率执行的怎么样,经常使用 explain 查看 SQL 的具体执行过程,以加快 SQL 的执行效率。

explain 语句官方说明文档:https://dev.mysql.com/doc/refman/8.0/en/explain-output.html

数据库版本 MySQL 8.0

Spring|IOC、AOP总结

刘启春

Spring 两个核心就是 IOC(Invest of Control)容器和面向切面编程 AOP。

IOC 是 spring 的 bean 容器,IOC 帮我们项目管理的 bean 的创建和依赖管理,在使用的时候我们只需要使用 xml 或注解指明依赖的对象,剩下的 IOC 会帮我管理。IOC 实现的核心是依赖注入,在初始化 bean 时往往一个对象依赖另一个对象,spring 帮我自动创建依赖对象并把它注入到对象中。IOC 中的对象可以是单例或多例的,但多数是单例的,例如@Service 和@Controller 注解就是单例的对象。通过在 IOC 提前创建好对象,提高了程序的运行速度。

Spring 的另一个核心是 AOP 切面编程,在程序的开发过程中,难免会有大量重复的代码,例如事务的开启和关闭,打印日志等,我们可以把重复的代码提取出来,利用 AOP 技术复用这些代码,这些操作通常在方法执行前可以执行或执行后可以执行。AOP 实现是基于就动态代理的设计思想来实现的,基于 JDK Proxy 或 cglib,选择的依据是对象(代理的方法)是否是实现接口的,对象实现了接口就用 JDK 动态代理,否则就是用 cglib 通过继承的方式实现代理。

深入理解 HTTP 协议

刘启春

这篇文章是对学习 HTTP 协议的一个总结,之前花了一个多小时把《图解 HTTP》看了一遍,最近抽空有看了看,书上的知识有些陈旧,而且只适合入门,于是又在网上浏览了 HTTP 协议标准文档,看完之后觉得之前记忆的又被打散了,还是总结一下吧。最近时间比较紧,这篇文章会在站在协议高层总结一下不会涉及那么多细节,对于学习先掌握整体比较好,细节真正用到的时候再研究也不晚。