当前位置: 首页 > news >正文

java后端工程师进修ing(研一版‖day49)

目录

今日总结

详细内容

java随征录

​编辑Maven依赖版本冲突问题

代码生成器生成基本代码架构

整体架构介绍

生成接口文档

科研随探录

八股随笔录

代码随想录


今日总结

  • java随征录——Maven依赖版本冲突问题,代码生成器生成基本代码架构,生成接口文档
  • 科研随探录——
  • 八股随笔录——Redis面试篇(3/7)
  • 代码随想录——

详细内容

java随征录

Maven依赖版本冲突问题

项目依赖A和C,但是A依赖B的1.0,C依赖B的2.0。对于这种版本冲突问题,有一下两种办法

1. 使用exclusions排除依赖版本

2. 使用dependencyMangement锁定版本号,通常在父工程对依赖的版本统一管理。

代码生成器生成基本代码架构

public class ContentCodeGenerator {// TODO 修改服务名以及数据表名private static final String SERVICE_NAME = "content";//数据库账号private static final String DATA_SOURCE_USER_NAME  = "root";//数据库密码private static final String DATA_SOURCE_PASSWORD  = "mysql";//生成的表private static final String[] TABLE_NAMES = new String[]{
//			"mq_message",
//			"mq_message_history""course_base","course_market","course_teacher","course_category","teachplan","teachplan_media","course_publish","course_publish_pre"};// TODO 默认生成entity,需要生成DTO修改此变量// 一般情况下要先生成 DTO类 然后修改此参数再生成 PO 类。private static final Boolean IS_DTO = false;public static void main(String[] args) {// 代码生成器AutoGenerator mpg = new AutoGenerator();// 选择 freemarker 引擎,默认 Velocitympg.setTemplateEngine(new FreemarkerTemplateEngine());// 全局配置GlobalConfig gc = new GlobalConfig();gc.setFileOverride(true);//生成路径gc.setOutputDir(System.getProperty("user.dir") + "/xuecheng-plus-generator/src/main/java");gc.setAuthor("itcast");gc.setOpen(false);gc.setSwagger2(false);gc.setServiceName("%sService");gc.setBaseResultMap(true);gc.setBaseColumnList(true);if (IS_DTO) {gc.setSwagger2(true);gc.setEntityName("%sDTO");}mpg.setGlobalConfig(gc);// 数据库配置DataSourceConfig dsc = new DataSourceConfig();dsc.setDbType(DbType.MYSQL);dsc.setUrl("jdbc:mysql://192.168.101.65:3306/xcqdd_" + SERVICE_NAME+ "?serverTimezone=UTC&useUnicode=true&useSSL=false&characterEncoding=utf8");
//		dsc.setDriverName("com.mysql.jdbc.Driver");dsc.setDriverName("com.mysql.cj.jdbc.Driver");dsc.setUsername(DATA_SOURCE_USER_NAME);dsc.setPassword(DATA_SOURCE_PASSWORD);mpg.setDataSource(dsc);// 包配置PackageConfig pc = new PackageConfig();pc.setModuleName(SERVICE_NAME);pc.setParent("com.xuecheng");pc.setServiceImpl("service.impl");pc.setXml("mapper");pc.setEntity("model.po");mpg.setPackageInfo(pc);// 设置模板TemplateConfig tc = new TemplateConfig();mpg.setTemplate(tc);// 策略配置StrategyConfig strategy = new StrategyConfig();strategy.setNaming(NamingStrategy.underline_to_camel);strategy.setColumnNaming(NamingStrategy.underline_to_camel);strategy.setEntityLombokModel(true);strategy.setRestControllerStyle(true);strategy.setInclude(TABLE_NAMES);strategy.setControllerMappingHyphenStyle(true);strategy.setTablePrefix(pc.getModuleName() + "_");// Boolean类型字段是否移除is前缀处理strategy.setEntityBooleanColumnRemoveIsPrefix(true);strategy.setRestControllerStyle(true);// 自动填充字段配置strategy.setTableFillList(Arrays.asList(new TableFill("create_date", FieldFill.INSERT),new TableFill("change_date", FieldFill.INSERT_UPDATE),new TableFill("modify_date", FieldFill.UPDATE)));mpg.setStrategy(strategy);mpg.execute();}}

整体架构介绍

                                       

1. api包中用于定义接口类,用于接受客户端发送的请求。

2. dto包用于定义数据传输对象。将请求体中的数据封装成对象,用来发送数据对象。

3. po包用于定义数据库实例类对象。里面封装好了各个数据库中需要的对象属性。

4. vo包用于定义视图层传输的对象。专为前端展示设计的定制化数据结构。

生成接口文档

在前后端分离开发中通常由后端程序员设计接口,完成后需要编写接口文档,最后将文档交给前端工程师,前端工程师参考文档进行开发。本项目通过Swagger生成接口在线文档。

科研随探录

八股随笔录

  • Redis怎么实现的io多路复用?

        因为redis是跑在单线程中的,所有的操作都是按照顺序性执行的,但是由于io操作在一半情况下不能直接返回,这会导致某一文件io操作堵塞导致整个进程无法进行。为了让单线程的服务端应用同时处理多个客户端的事件,Redis采用了IO多路复用机制。I/O 多路复用其实是使用一个线程来检查多个 Socket 的就绪状态,在单个线程中通过记录跟踪每一个 socket。

  • Redis有哪2种持久化方式?分别的优缺点是什么?

        Redis的读写操作都是在内存中,所以Redis性能才会高,但是当redis重启后,内存中的数据就会丢失,为了保证内存中的数据不会丢失,redis实现了数据持久化的机制,这个机制会把数据存储到磁盘。

        1. AOF日志:每执行一条写操作命令,就把该命令以追加的方式写入到一个文件里

        redis提供了三种写回硬盘的策略,如下

        2. RDB快照:将某一时刻的内存数据,以二进制的方式写入磁盘

        因为 AOF 日志记录的是操作命令,不是实际的数据,所以用 AOF 方法做故障恢复时,需要全量把日志都执行一遍,一旦 AOF 日志非常多,势必会造成 Redis 的恢复操作缓慢。为了解决这个问题,redis增加了RDB快照。

        RDB 快照就是记录某一个瞬间的内存数据,记录的是实际数据,而 AOF 文件记录的是命令操作的日志,而不是实际的数据。

  • AOF和RDB的优缺点。

AOF:

        优点:提供更高的数据安全性,支持多种同步策略

        缺点:记录每一个写操作,消耗更多的磁盘空间。频繁的io操作对redis的写入性能造成一定影响。

RDB:

        优点:以快照的形式保存数据,文件体积小,备份和恢复的速度快。由于是定期快照,RDB文件通常比AOF文件小得多。

        缺点: RDB方式在两次快照之间,如果Redis服务器发生故障,这段时间的数据将会丢失。并且,如果在RDB创建快照到恢复期间有写操作,恢复后的数据可能与故障前的数据不完全一致

代码随想录

http://www.dtcms.com/a/411293.html

相关文章:

  • opendds初入门之对inforepo模式运行探索
  • 简单公司网站最全的域名后缀
  • 比邻智联发布生活物联网家电应用白皮书和Cat.1模组新品
  • 第七章 Spring-Boot框架
  • 网站html静态化解决方案网站制作公司 北京
  • 金仓数据库实现电子证照系统从MongoDB平滑迁移,国产化替代迎来新典范
  • CAN总线学习(四)错误处理 STM32CAN外设一
  • 【OpenGL】LearnOpenGL学习笔记28 - 延迟渲染 Deferred Rendering
  • 莱芜梆子网站昆山网站建设需要多少钱
  • 站长交流装潢设计什么意思
  • web核心—HTTP
  • 线程池导入大数据量excel
  • Spring Boot 3.x + Security + OpenFeign:如何避免内部服务调用被重复拦截?
  • 全国免费发布信息网站大全wordpress 修改文章id
  • 公司网站设计费计入什么科目app科技网站建设
  • 从需求到实现:如何解决证件照标准化难题的?
  • C++第九篇:friend友元
  • 软件工程咋理解?用 “开奶茶店” 讲透瀑布模型 / 敏捷开发
  • 如何在WordPress中添加短代码
  • 资源型网站建设 需要多大硬盘招牌设计 创意logo
  • 数据库索引简介
  • 基于三角测量拓扑聚合优化的LSTM深度学习网络模型(TTAO-LSTM)的一维时间序列预测算法matlab仿真
  • 关键词网站查询产品展示网站源码php
  • TOGAF ® 标准与循环经济:为可持续与责任型 IT 而设计
  • C盘内存不足,清除或转移VS2022缓存文件Cache
  • 玉米病叶识别数据集,可识别褐斑,玉米锈病,玉米黑粉病,霜霉病,灰叶斑点,叶枯病等,使用yolo,coco,voc对4924张照片进行标注
  • 修改Linux上的ssh的默认端口号——及其客户端使用ssh连接不上Linux问题排查解决
  • 连接世界:网络请求 `wx.request`
  • 安徽省建设厅网站打不开批量导文章到wordpress
  • 用一个OneKey MCP把付费的AI Agent MCP的价格打下来 - DeepNLP OneKey MCP Agent Router项目