java后端工程师进修ing(研一版‖day50)
目录
今日总结
详细内容
java随征录
项目开发文档
项目的开发流程
分页插件
解决跨域的问题
科研随探录
八股随笔录
代码随想录
今日总结
- java随征录—— 项目开发文档,项目的开发流程,分页插件,解决跨域的问题
- 科研随探录——
- 八股随笔录——Redis面试篇(4/7)
- 代码随想录——
详细内容
java随征录
项目开发文档
前后端的开发都是根据接口文档进行的,如下图所示。后端人员别写好接口文档后,转交给前端人员,前端人员更具文档开始进行开发
项目的开发流程
1. 产品人员设计产品原型 (产品经理)
2. 讨论需求
3. 分模块设计接口 (后端工程师)
4. 出接口文档
5. 将接口文档给到前段人员,前后端分离开发 (前端工程师)
6. 发开完毕进行测试 (测试工程师)
7.测试完毕发布项目,由运维人员进行部署安装 (运维工程师)
分页插件
首先分页参数放到ThreadLocal中,拦截执行的sql,根据数据库类型添加对应的分页语句重写sql。
Bean用于将分页拦截器注入到Spring中,同时bean要生效,要由Congiguration注解
MapperScan注解用于扫描到mapper映射文件
@Configuration
@MapperScan("com.xuecheng.content.mapper")
public class MybatisPlusConfig {@Beanpublic MybatisPlusInterceptor mybatisPlusInterceptor() {MybatisPlusInterceptor interceptor = new MybatisPlusInterceptor();interceptor.addInnerInterceptor(new PaginationInnerInterceptor(DbType.MYSQL));return interceptor;}
}
解决跨域的问题
1. JSONP
通过script标签的src属性进行跨域请求
2.添加响应头
服务端在响应头添加 Access-Control-Allow-Origin:*
@Beanpublic CorsFilter corsFilter() {CorsConfiguration config = new CorsConfiguration();//允许白名单域名进行跨域调用config.addAllowedOrigin("*");//允许跨越发送cookieconfig.setAllowCredentials(true);//放行全部原始头信息config.addAllowedHeader("*");//允许所有请求方法跨域调用config.addAllowedMethod("*");UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();source.registerCorsConfiguration("/**", config);return new CorsFilter(source);}
3.通过nginx代理跨域
由于服务端之间没有跨域,浏览器通过nginx去访问跨域地址。
科研随探录
八股随笔录
- 过期删除策略和内存淘汰的区别?
1. 内存淘汰策略是内存满了的时候,redis会淘汰一些不必要的内存资源,用来保存新的内容
2. 过期删除策略是将已过期的键值对进行删除,redis采用的是惰性删除+定期删除
- redis主从同步中的增量和完全同步怎么实现的?
完全同步情况如下:
1. 初次同步:服务器首次连接到主服务器时,会进行一次完全同步
2. 从服务器数据丢失: 如果从服务器数据丢失会请求进行完全同步
3. 主服务器数据发生变化:如果从服务器长时间未与主服务器同步,导致数据差异太大,也会发生完全不同。
增量同步:允许从服务器从断点处继续同步,而不是每次都进行完全同步。
- 哨兵机制的原理
它的作用是实现主从节点故障转移,自动将一个从节点转换成主节点,并把新主节点的相关信息通知给从节点和客户端。
哨兵其是一个运行在特殊模式下的redis进程,所以他也是一个节点。主要负责三件事情:监控、选主、通知。
代码随想录