# Java
权限
分组和权限关联
登录之后,进行权限控制
@ScopeLevel()
无感知二次登录: 双令牌
JWT 有效期 通常2个小时
刷新令牌
有效期设置时间长:
- 会打断用户的使用
- 不安全
IP 建立用户IP表
优惠券
@Autowired
几种注入方式
- 字段注入/成员变量注入
- setter注入
- 构造注入
# 面向对象中变化的应对方案
- 制定一个interface,用多个类实现一个interface 策略模式
- 一个类,属性配置
@Configuration 配置类
通过配置,加入到容器中
用来替换bean的xml配置
# 变化最终要被隔离到配置文件中
- 配置文件集中性
- 清晰,没有业务逻辑
# @Configuration和@Bean的真实作用
# 配置分类
- 常规配置 key:value
- xml 配置 类/对象
@Value读取配置
@Configuration的意义 是一种编程模式
# 条件注解
@Conditional
自定义条件注解
成品条件注解
@ConditionalOnProperty @ConditionalOnBean @ConditionalOnClass @ConditionalOnExpression @ConditionalOnJava @ConditionalOnJndi @ConditionalOnMissingBean @ConditionalOnMissingClass @ConditionalOnNotWebApplication @ConditionalOnProperty @ConditionalOnResource @ConditionalOnSingleCandidate @ConditionalOnWebApplication
# 自动配置原理
- 原理是什么
- 为什么要有自动配置,解决什么问题
如何发现Bean,加入到IOC容器
@SpringBootApplication @EnableAutoConfiguration 加载第三方的包 maven 安装的包
@Import
factories
# Java SPI机制
整体解决方案的变化
# 异常处理
框架机制
# 异常分类
Error Exception
CheckedException 强制要求处理 RunTimeException 运行时异常 不强制要求处理
异常能处理 CheckedException 无能为力 RunTimeException
自定义HTTPException
异常信息写在配置文件中
自定义配置类管理配置文件 @PropertySource
# 分层的目的
OCP 易于维护的代码
# 数据表
单向,双向 一对多
多对多
# ORM
冗余字段
SPU
SKU1、SKU2、SKU3
Java之所以这么复杂,是因为强类型的
类的数据和方法
方法内置到类的里面
优化代码的过程
用户、分组、权限
- 权限再次分配
- 权限粒度
# 拦截
HTTP请求
filter interceptor AOP
# 优惠券
- cms 创建
- 选择类型 参数 满减券 满多少减多少 满减折扣券 全场折扣券,无门槛全场券
- 审核
- 投放
- 领取 (定时,抢券),自动发放到用户账户
- 使用优惠券
- 核销
退款,部分商品退款,优惠金额 平摊/分布
模板 比如:200-80 选择时间 活动 类似专题,领取优惠券的专题,投放和领取
品类:全场、部分、品牌、分类、店铺
用户领取优惠券的状态
接口尽可能保持通用性
基础 →