获得徽章 1
分享一下,今日解析springboot启动原理:
以下方式可以在源码中查看:
Springboot30StartupApplication【10】->SpringApplication.run(Springboot30StartupApplication.class, args);
SpringApplication【1332】->return run(new Class<?>[] { primarySource }, args);
SpringApplication【1343】->return new SpringApplication(primarySources).run(args);
SpringApplication【1343】->SpringApplication(primarySources)
# 加载各种配置信息,初始化各种配置对象
SpringApplication【266】->this(null, primarySources);
SpringApplication【280】->public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources)
SpringApplication【281】->this.resourceLoader = resourceLoader;
以下方式可以在源码中查看:
Springboot30StartupApplication【10】->SpringApplication.run(Springboot30StartupApplication.class, args);
SpringApplication【1332】->return run(new Class<?>[] { primarySource }, args);
SpringApplication【1343】->return new SpringApplication(primarySources).run(args);
SpringApplication【1343】->SpringApplication(primarySources)
# 加载各种配置信息,初始化各种配置对象
SpringApplication【266】->this(null, primarySources);
SpringApplication【280】->public SpringApplication(ResourceLoader resourceLoader, Class<?>... primarySources)
SpringApplication【281】->this.resourceLoader = resourceLoader;
展开
评论
点赞
#青训营笔记创作活动#
2月1日 打开day9
Pinia经过初步体验,发现相比于 Vuex,Pinia 确实有了很大进步,最明显的就是删减了复杂的概念,简化了数据流转的过程,现在只剩下了 store、state、getters、actions 这四个核心概念。
2月1日 打开day9
Pinia经过初步体验,发现相比于 Vuex,Pinia 确实有了很大进步,最明显的就是删减了复杂的概念,简化了数据流转的过程,现在只剩下了 store、state、getters、actions 这四个核心概念。
展开
评论
点赞
#青训营笔记创作活动#
1月31日 打卡day8
高并发需要注意以下问题:
页面静态化
CDN加速
负载均衡
防重
缓存
异步
熔断、限流
分布式锁
1月31日 打卡day8
高并发需要注意以下问题:
页面静态化
CDN加速
负载均衡
防重
缓存
异步
熔断、限流
分布式锁
展开
评论
点赞
#青训营笔记创作活动#
1月24日 打卡day7
1)利用 iframe 创建沙箱,取出其中的原生浏览器全局对象作为沙箱的全局对象
2)设置一个黑名单,若访问黑名单中的变量,则直接报错,实现阻止\隔离的效果
3)在黑名单中添加 document 字段,来实现禁止开发者操作 DOM
4)在黑名单中添加 XMLHttpRequest、fetch、WebSocket 字段,实现禁用原生的方式调用接口
5)若访问当前全局对象中不存在的变量,则直接报错,实现禁用三方库调接口
6)最后还要拦截对 window 对象的访问,防止通过 window.document 来操作 DOM,避免沙箱逃逸
1月24日 打卡day7
1)利用 iframe 创建沙箱,取出其中的原生浏览器全局对象作为沙箱的全局对象
2)设置一个黑名单,若访问黑名单中的变量,则直接报错,实现阻止\隔离的效果
3)在黑名单中添加 document 字段,来实现禁止开发者操作 DOM
4)在黑名单中添加 XMLHttpRequest、fetch、WebSocket 字段,实现禁用原生的方式调用接口
5)若访问当前全局对象中不存在的变量,则直接报错,实现禁用三方库调接口
6)最后还要拦截对 window 对象的访问,防止通过 window.document 来操作 DOM,避免沙箱逃逸
展开
评论
点赞
#青训营笔记创作活动#
1月21日 打卡day6
数据库索引,绝对是MySQL的核心功能之一,如果没有索引机制的数据库,那数据的检索效率绝对是令人无法接受的,毕竟没有索引的表数据,就如同一个普通的文本文件存储在磁盘中。
1月21日 打卡day6
数据库索引,绝对是MySQL的核心功能之一,如果没有索引机制的数据库,那数据的检索效率绝对是令人无法接受的,毕竟没有索引的表数据,就如同一个普通的文本文件存储在磁盘中。
评论
点赞
#青训营笔记创作活动#
1月19日 打卡day5
Pinia 号称下一代的 Vuex。
经过初步体验,发现相比于 Vuex,Pinia 确实有了很大进步,最明显的就是删减了复杂的概念,简化了数据流转的过程,现在只剩下了 store、state、getters、actions 这四个核心概念。
1月19日 打卡day5
Pinia 号称下一代的 Vuex。
经过初步体验,发现相比于 Vuex,Pinia 确实有了很大进步,最明显的就是删减了复杂的概念,简化了数据流转的过程,现在只剩下了 store、state、getters、actions 这四个核心概念。
展开
评论
点赞
#青训营笔记创作活动#
1月18日 打卡day4
Java 8 引入了一个十分实用的 Optional 类,它主要是为了解决空指针异常(NullPointerException)。当我们对对象的属性进行检查,判断它的值是否为期望的格式,最终却发现我们查看的并不是一个对象,而是一个空指针,它会立即抛出一个让人厌烦的 NullPointerException 异常。
1月18日 打卡day4
Java 8 引入了一个十分实用的 Optional 类,它主要是为了解决空指针异常(NullPointerException)。当我们对对象的属性进行检查,判断它的值是否为期望的格式,最终却发现我们查看的并不是一个对象,而是一个空指针,它会立即抛出一个让人厌烦的 NullPointerException 异常。
展开
评论
点赞
#青训营笔记创作活动#
1月17日 打卡day3
要想学习一门新的语言,就要学习下面的方法:
“三刷”官方文档是我高效学习一门新的编程语言的制胜法宝:
1刷从头看到尾,扫清知识盲点,搞清楚概念;
2刷必须手敲,而且要写注释和总结;
3刷先只写注释,不看文档实现功能,遇到问题再和文档比较,加深理解。
1月17日 打卡day3
要想学习一门新的语言,就要学习下面的方法:
“三刷”官方文档是我高效学习一门新的编程语言的制胜法宝:
1刷从头看到尾,扫清知识盲点,搞清楚概念;
2刷必须手敲,而且要写注释和总结;
3刷先只写注释,不看文档实现功能,遇到问题再和文档比较,加深理解。
展开
评论
点赞
#青训营笔记创作活动#
1月16日 打卡day2
IDEA是程序员用的最多的开发工具,Key Promoter X,Lombok,MyBatisX,RestfulFastRequest,PlantUML,SequenceDiagram,GsonFormatPlus,Json Parser,String Manipulation,MapStruct support,Alibaba Java Coding Guidelines,Alibaba Cloud Toolkit,arthas idea,Docker,Maven Helper,Grep Console,Markdown,Translation都是目前开发不可缺少的插件,极大提高开发效率。
1月16日 打卡day2
IDEA是程序员用的最多的开发工具,Key Promoter X,Lombok,MyBatisX,RestfulFastRequest,PlantUML,SequenceDiagram,GsonFormatPlus,Json Parser,String Manipulation,MapStruct support,Alibaba Java Coding Guidelines,Alibaba Cloud Toolkit,arthas idea,Docker,Maven Helper,Grep Console,Markdown,Translation都是目前开发不可缺少的插件,极大提高开发效率。
展开
评论
1