一 常用核心功能
1.1 mp返回分页工具类
1.2 返回统一的数据格式
第2部分
1.3 异常统一的处理
系统在运行过程中如果出现了异常,默认会直接返回异常信息,比如500错误提示。但是我们想让异常结果也显示为统一的返回结果对象,并且统一处理系统的异常信息,那么需要进行统一异常处理。
1.3.1 处理全局异常的定义
1.3.2 自定义异常的处理
2.全局中引用:
1.4 配置swagger
二 权限功能
2.1 用户角色,菜单按钮
菜单的递归遍历
三 nacos注册与发现
3.1 nacos
Nacos支持所有主流的服务发现、配置和管理。
配置
四 nginx的反向代理技术
4.1 nginx的反向代理
1.代理架构图
2.配置
3.匹配原则
当proxy_pass代理地址端口后有目录(包括 / 和/xxx),相当于是绝对根路径,则 nginx 不会把 location 中匹配的路径部分代理走;
当proxy_pass代理地址端口后无任何内容,可以理解为相对路径,则nginx会把location中匹配的路径部分代理走;
http://localhost:9001/admin/acl/index/login =》
http://localhost:8201/admin/acl/index/login
http://localhost:9001/admin/sys/ware/findAllList =》
http://localhost:8201/admin/sys/ware/findAllList
https://blog.csdn.net/u011066470/article/details/126275847
五 OSS实现图片存储与上传下载
5.1 oss的介绍
阿里云对象存储oss是一个可靠的云存储服务。提供可靠的持久化服务。
5.2 上传图片
通过系统上传图片,调用连接阿里云oss存储的客户端,通过流的方式进行存储,返回存储地址,方便页面显示。
1.接收系统上传的文件
2.文件名的命名规则: 时间格式化+uuid+文件名
3.信息保存时,将图片地址保存到数据表中
数据表:
六 es+kibana+rabitmq+nacos
6.1 es简介
es与mysql的联系与区别:
2.es的type
6.2 es的安装步骤
七 营销模块活动
7.1 java8的遍历
public class Test {
public static void main(String[] args) {
List<String> dataList=new ArrayList<>();
List<UserDomain> userDomainList=new ArrayList<>();
UserDomain userDomain=new UserDomain();
userDomain.setUserId(2334);
userDomain.setUserName("ljf");
userDomainList.add(userDomain);
dataList=userDomainList.stream().map(UserDomain::getUserName).collect(Collectors.toList());
dataList.forEach((x)->{System.out.println("x:"+x);});
}
}
结果:
7.2 营销管理活动接口
1.管理接口,保存接口,添加@Transaction 事务处理
7.3 优惠券管理活动接口
1.保存优惠券规则,在方法上添加@Transaction 事务规则。
7.4 秒杀场景的接口
八 Gateway的使用
8.1 gateway的使用
gateway:网关,路由,断言,过滤器
1.pom文件
<!-- 服务注册 -->
<dependency>
<groupId>com.alibaba.cloud</groupId>
<artifactId>spring-cloud-starter-alibaba-nacos-discovery</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-gateway</artifactId>
</dependency>
2.跨域
@Configuration
public class CorsConfig {
@Bean
public CorsWebFilter corsFilter() {
CorsConfiguration config = new CorsConfiguration();
config.addAllowedMethod("*");
config.addAllowedOrigin("*");
config.addAllowedHeader("*");
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource(new PathPatternParser());
source.registerCorsConfiguration("/**", config);
return new CorsWebFilter(source);
}
}
目前我们已经在网关做了跨域处理,那么service服务就不需要再做跨域处理了,将之前在controller类上添加过@CrossOrigin标签的去掉,防止程序异常
3.路由以及断言的配置
4.前端请求,改为网关路径,这里不再使用nginx的反向代理