市场调研报告模板ppt,seo平台优化,wordpress网站seo,禁止网站收录1、ThreadLocal 是什么
是 Java 中线程的本地方法变量#xff0c;用来存储每个线程的私有数据#xff0c;每个线程都有它的独立副本#xff0c;相互隔离#xff0c;互不影响
2、ThreadLocal 实现原理
每个 ThreadLocal 都有一个 ThreadLocalMap 对象#xff0c;用来存储…1、ThreadLocal 是什么
是 Java 中线程的本地方法变量用来存储每个线程的私有数据每个线程都有它的独立副本相互隔离互不影响
2、ThreadLocal 实现原理
每个 ThreadLocal 都有一个 ThreadLocalMap 对象用来存储 ThreadLocal 变量和对应的值通过 ThreadLocal 对象的 get()、set() 方法访问对应的 ThreadLocalMap 的值
3、ThreadLocal 的使用场景
token 验证之后会把用户相关的信息存储在 ThreadLocal 中方便之后业务获取当前业务信息
数据库连接、事务管理查日志的记录
4、ThreadLocal 注意事项
ThreadLocal 是不安全的存在内存泄漏问题当一个线程结束时需要手动清除对应的 ThreadLocalMap以避免内存泄露问题在线程最后 remove()
5、ThreadLocal 优缺点
优点线程安全他会建立一个独立的变量副本确保他们之间互不影响
简化编程模型
可以跨层跨类跨方法传递变量
数据隔离每个线程提供单独的上下文环境方便跨层传递避免参数传递的复杂性
缺点会造成内存泄漏
6、Spring Boot 如何读取配置文件
Value 属性注入
ConditionalOnProperty(prefix Java Bean
PropertySource
7、Spring Boot 配置文件的优先级
file:./config/application.properties 高
file:./application.properties
classpath:/config/application.properties
classpath:/application.properties 低
8、SpringBoot 常用注解
启动层SpringBootApplication总代理)、SpringBootConfiguration、EnableAutoConfiguration、ComponentScan、MapperScan(com.by.dao)
controller 层RestController、RequestMapping、ResponseBody、AutoWired、GetMapping、PostMapping、PutMapping、DelectMapping
service 层Service
dao 层Mapper
Configuration、Bean、Resource、value、ConditionalOnProperty
9、常用的日志框架
SLF4jSimple Logging Facade for Java门面模式抽象层
Log4j、Log4j2、logback 日志的实现
10、ELK
是由Elasticsearch (ES)非关系型数据库
Logstash (LS)采集器
Kibana (KB)UI 可视化工具
11、EFK
是由Elasticsearch (ES)非关系型数据库
Filebeat (LS)采集器
Kibana (KB)UI 可视化工具
Filebeat 相对于 Logstash 来说更为轻量级资源消耗较小
12、MDC
其实就是 ThreadLocal 的升级版 InheritableThreadLocal 它不仅继承了 ThreadLocal 还扩展了一些功能就比如说子线程继承了父线程的 ThreadLocal 的值简单说父线程会将它脑门上的标签复制一份给到子线程让子线程也可以被 MDC 所访问
对于 web 应用来说会在请求的最开始在拦截器 Filter保存这些数据
13、InheritableThreadLocal 与ThreadLocal 的区别
InheritableThreadLocal 继承了 ThreadLocal 类还扩展了一些其他的功能
准确的说就是 InheritableThreadLocal 可以让子线程继承父线程的 ThreadLocal 的值ThreadLocal 不可以