# Java

权限

分组和权限关联

登录之后,进行权限控制

@ScopeLevel()

无感知二次登录: 双令牌

JWT 有效期 通常2个小时

刷新令牌

有效期设置时间长:

  1. 会打断用户的使用
  2. 不安全

IP 建立用户IP表

优惠券

@Autowired

几种注入方式

  1. 字段注入/成员变量注入
  2. setter注入
  3. 构造注入

# 面向对象中变化的应对方案

  1. 制定一个interface,用多个类实现一个interface 策略模式
  2. 一个类,属性配置

@Configuration 配置类

通过配置,加入到容器中

用来替换bean的xml配置

# 变化最终要被隔离到配置文件中

  1. 配置文件集中性
  2. 清晰,没有业务逻辑

# @Configuration和@Bean的真实作用

# 配置分类

  1. 常规配置 key:value
  2. xml 配置 类/对象

@Value读取配置

@Configuration的意义 是一种编程模式

# 条件注解

@Conditional

自定义条件注解

成品条件注解

@ConditionalOnProperty @ConditionalOnBean @ConditionalOnClass @ConditionalOnExpression @ConditionalOnJava @ConditionalOnJndi @ConditionalOnMissingBean @ConditionalOnMissingClass @ConditionalOnNotWebApplication @ConditionalOnProperty @ConditionalOnResource @ConditionalOnSingleCandidate @ConditionalOnWebApplication

# 自动配置原理

  1. 原理是什么
  2. 为什么要有自动配置,解决什么问题

如何发现Bean,加入到IOC容器

@SpringBootApplication @EnableAutoConfiguration 加载第三方的包 maven 安装的包

@Import

factories

# Java SPI机制

整体解决方案的变化

# 异常处理

框架机制

# 异常分类

Error Exception

CheckedException 强制要求处理 RunTimeException 运行时异常 不强制要求处理

异常能处理 CheckedException 无能为力 RunTimeException

自定义HTTPException

异常信息写在配置文件中

自定义配置类管理配置文件 @PropertySource

# 分层的目的

OCP 易于维护的代码

# 数据表

单向,双向 一对多

多对多

# ORM

冗余字段

SPU

SKU1、SKU2、SKU3

Java之所以这么复杂,是因为强类型的

类的数据和方法

方法内置到类的里面

优化代码的过程

用户、分组、权限

  1. 权限再次分配
  2. 权限粒度

# 拦截

HTTP请求

filter interceptor AOP

# 优惠券

  1. cms 创建
  2. 选择类型 参数 满减券 满多少减多少 满减折扣券 全场折扣券,无门槛全场券
  3. 审核
  4. 投放
  5. 领取 (定时,抢券),自动发放到用户账户
  6. 使用优惠券
  7. 核销

退款,部分商品退款,优惠金额 平摊/分布

模板 比如:200-80 选择时间 活动 类似专题,领取优惠券的专题,投放和领取

品类:全场、部分、品牌、分类、店铺

用户领取优惠券的状态

接口尽可能保持通用性