摘要:
数据库在通过连接两张或多张表来返回记录时,都会生成一张中间的临时表,然后再将这张临时表返回给用户。在使用left jion时,on和where条件的区别如下:1、 on条件是在生成临时表时使用的条件,它不管on中的条件是否为真,都会返回左边表中的记录。2、where条件是在临时表生成好后,再对临时表 阅读全文
摘要:
一、@ModelAttribute与@RequestBody的区别 @ModelAttribute与@RequestBody都是用来注解解析前端发来数据,并自动对应到所定义的字段名称。 这里先放结论,使用@ModelAttribute注解的实体类接收前端发来的数据格式需要为"x-www-form-u 阅读全文
摘要:
本文简单的介绍一下基于SpringBoot框架动态多数据源切换的实现,采用主从配置的方式,配置master、slave两个数据库。 一、配置主从数据库 二、创建数据源枚举类 三、数据源切换处理 创建一个数据源切换处理类,有对数据源变量的获取、设置和清空的方法。其中的ThreadLocal用于保存某个 阅读全文
摘要:
一、ThreadLocal是什么 ThreadLocal是一个本地线程副本变量工具类。主要用于将私有线程和该线程存放的副本对象做一个映射,各个线程之间的变量互不干扰,在高并发场景下,可以实现无状态的调用,特别适用于各个线程依赖不同的变量值完成操作的场景。 或者也可以这么理解:ThreadLocal 阅读全文
摘要:
一、AOP的概念 AOP(Aspect Oriented Programming),即面向切面编程,可以说是OOP(Object Oriented Programming,面向对象编程)的补充和完善。OOP引入封装、继承、多态等概念来建立一种对象层次结构,用于模拟公共行为的一个集合。不过OOP允许开 阅读全文
摘要:
一、分布式 不同模块部署在不同服务器上。 作用:分布式解决网站高并发带来问题。 将一个大的系统划分为多个业务模块,业务模块分别部署到不同的机器上,各个业务模块之间通过接口进行数据交互。区别分布式的方式是根据不同机器不同业务。 上面:service A、B、C、D 分别是业务组件,通过API Gete 阅读全文
摘要:
Shiro是一个强大易用的Java安全框架,提供了认证、授权、加密和会话管理等功能。 Authentication:身份认证/登录,验证用户是不是拥有相应的身份; Authorization:授权,即权限验证,验证某个已认证的用户是否拥有某个权限;即判断用户是否能做事情,常见的如:验证某个用户是否拥 阅读全文
摘要:
一、数据库设计 这里主要涉及到五张表:用户表,角色表(用户所拥有的角色),权限表(角色所涉及到的权限),用户-角色表(用户和角色是多对多的),角色-权限表(角色和权限是多对多的).表结构建立的sql语句如下: CREATE TABLE `module` ( `mid` int(11) NOT N 阅读全文
摘要:
idempotent 幂等的 如果一个方法重复执行多次,产生的效果是一样的,那就是idempotent的; idempotent的意思是如果相同的操作再執行第二遍第三遍,結果還是一樣。 POST方法 POST方法请求的目标是一个行为处理器 。 用来创建一个子资源,如 /api/users,会在use 阅读全文
摘要:
一、互联网高可用架构,为什么要服务化? 【服务化之前高可用架构】 在服务化之前,互联网的高可用架构大致是这样一个架构: (1)用户端是浏览器browser,APP客户端 (2)后端入口是高可用的nginx集群,用于做反向代理 (3)中间核心是高可用的web-server集群,研发工程师主要编码工作就 阅读全文