总结一下毕设主要技术(12)

136 阅读3分钟

本文已参与「新人创作礼」活动,一起开启掘金创作之路。

今天答辩结束了,感觉良好,总结一下答辩老师在答辩过程中问到的问题

Spring Boot 自动配置原理

Spring Boot 相比较 Spring,简化了配置,因为 Spring Boot 提供了自动配置,Spring Boot 的主启动器中,有一个SpringBootApplicaiton 注解,而 SpringBootApplication 中又引入了很多其他注解,其中包括一个叫EnableAutoConfiguration 的注解,这个注解中又通过反射机制导入了 AutoConfigurationImportSelector 这个类,这个类会加载位于 META-INF 下的 spring.factories 文件,这个文件中就包含许多配置文件,当需要哪个的时候,就会根据其中的 ConditionalOnMissingBean 判断能否引用该配置。

Spring 核心

Spring 是一个轻量级 Java 开发框架,目的是解决企业级开发中的业务层与其他各层的耦合问题。其核心就是控制反转IOC 和 面向切面编程 AOP。控制反转就是将创建对象的权力交给 Spring,实现对象耦合关系的管理,并实现依赖反转,将对象之间的依赖关系交给 IOC 容器,实现解耦;AOP 面向切面编程,就是通过配置切面、切点以及通知来减少系统中的重复代码,降低模块间的模块耦合,有利于未来的可扩展性。

Redis 的持久化

持久化狭义理解,就是把数据保存到数据库中;广义理解,持久化包括与数据库相关的各种操作,将有用的数据以某种技术保存起来,将来可以再次取出来用。Redis 是内存型数据库,为了防止重启、宕机或者机器故障等,需要将内存的数据备份持久化。

Redis 提供了两种持久化方式:

RDB(Redis DataBase) RDB 持久化,将某个时间点的所有数据生成快照保存到磁盘上,Redis 启动时会读取该文件重构数据。Redis 默认使用RDB 持久化。 Redis 会单独创建 Fork 一个子进程来进行持久化,先把数据写入到一个临时文件中,待持久化全部完成再用这个临时文件替换上次持久化好的文件。整个过程主进程不进行任何 IO 操作,以确保主进程性能。RDB 要比 AOF 更加高效,但 RDB 缺点是最后一次持久化后的数据可能会丢失。 Fork 的作用是复制一个与当前进程完全相同的子进程,子进程去做持久化。

AOF(Apend Of File) AOF 持久化的是 以日志的形式记录每个写操作(增量保存),将所有的写指令记录下来,读取指令不记录,只许 追加不许改写文件。Redis 启动时会读取该文件的重构数据,会读取文件中之前写的指令全部执行一次来完成恢复工作。与 RDB 快照持久化的方式相比,AOF 实时性更好。Redis 默认没有开启 AOF 的持久化,可以通过 appendonly yes 参数开启。如果同时开启两种持久化方式,Redis 会优先选择 AOF 还原数据。

答辩老师问的问题比较刁钻,感觉像是面试现场,不过大多问题自己还是比较熟悉,能够回答一二,整体感觉不错
有问题请指正
我向你敬礼啊,Salute!