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

廊坊建站模板系统做网站每年包多少流量

廊坊建站模板系统,做网站每年包多少流量,个人短信接口wordpress,广告传媒建设网站文章目录 一、前言二、SpringBoot配置文件目录读取顺序源码解析 三、SpringBoot配置文件类型读取顺序源码解析 一、前言 本文通过源码分析 SpringBoot 加载配置文件目录的顺序#xff0c;以及 properties、xml、yml、yaml文件的读取顺序 二、SpringBoot配置文件目录读取顺序… 文章目录 一、前言二、SpringBoot配置文件目录读取顺序源码解析 三、SpringBoot配置文件类型读取顺序源码解析 一、前言 本文通过源码分析 SpringBoot 加载配置文件目录的顺序以及 properties、xml、yml、yaml文件的读取顺序 二、SpringBoot配置文件目录读取顺序 配置文件目录读取顺序由高到低 file:./config/ 当前项目下的/config目录file:./ 当前项目的根目录classpath:/config/ classpath的/config目录classpath:/ classpath的根目录 源码解析 我们从 SpringApplication.run 开始一直往里走来到 run(java.lang.String...) 方法如下 加载配置文件属于准备环境我们继续跟进 prepareEnvironment 方法 这里在环境准备就绪之后会触发 environmentPrepared 事件我们跟进 listeners.environmentPrepared(environment); 方法 这里循环了所有的 SpringApplicationRunListener 调用其 environmentPrepared 方法这个 listeners 其实就是读取 META-INF 目录下的 spring.factories 文件里的 org.springframework.boot.SpringApplicationRunListener见下图 ps这里其实也是一个扩展点如果你需要在环境准备就绪后做一些自定义的操作就可以自己写个类实现 SpringApplicationRunListener 接口然后在自己的项目 /META-INF 目录下创建一个名为 spring.factories 的文件在文件中添加 org.springframework.boot.SpringApplicationRunListener自定义类的全路径 扯回来我们知道这里的 listeners 其实就是 EventPublishingRunListener 见图继续跟进其 environmentPrepared 方法 这里调用了 Spring 的事件广播器去做事件广播注意这里事件类是 ApplicationEnvironmentPreparedEvent 后面有用继续跟进 multicastEvent 方法 这里就是 Spring 事件广播的标准写法了根据 event 找到匹配的 ApplicationListener调用 invokeListener 方法进去再调用 doInvokeListener 方法最后会调用到 ApplicationListener 的 onApplicationEvent 方法具体怎么找到这些 ApplicationListener 的这里就不展开了在众多匹配的 ApplicationListener 里有一个 ConfigFileApplicationListener 看名字就知道专门用来处理配置文件的我们看它的 onApplicationEvent 方法 上面我们知道事件类是 ApplicationEnvironmentPreparedEvent所以这里走的是 onApplicationEnvironmentPreparedEvent 方法继续跟进 这里又从 spring.factories 文件里获取了 org.springframework.boot.env.EnvironmentPostProcessor并且把自己ConfigFileApplicationListener也算进去了因为 ConfigFileApplicationListener 也实现了 EnvironmentPostProcessor 接口然后执行了这些 EnvironmentPostProcessor 的 postProcessEnvironment 方法我们这里还是重点看 ConfigFileApplicationListener 的 postProcessEnvironment 方法 继续跟进 addPropertySources 方法 继续跟进 load 方法 这个方法里 initializeProfiles 方法会根据 spring.profiles.active 配置来决定加载哪个配置文件如果没有就用 spring.profiles.default 配置如果配的是 dev就加载 application-dev.properties 或 application-dev.yml 这样的配置文件如果这两个参数都没有配就加载 application.properties 或 application.yml 这样的配置文件下面具体看加载的逻辑里是如何获取目录的跟进 load 方法 很明显了获取扫描目录的代码在 getSearchLocations 方法里 可以看到返回值正是这4个目录这个值一般都是取自 DEFAULT_SEARCH_LOCATIONS 这个常量我们看下 这里需要注意这个常量是按优先级从低到高倒序排列的。 三、SpringBoot配置文件类型读取顺序 配置文件类型读取顺序由高到低 propertiesxmlymlyaml 源码解析 在上面我们讲到获取目录下面就是要循环每个目录在每个目录下找配置文件了那么配置文件类型有好几种读取的先后顺序是怎样的呢我们先找到 load 方法 可以看到循环中又调用了 load 方法跟进 可以看到走进了一个双层嵌套循环循环调用了 loadForFileExtension 方法方法里就是具体加载文件的源码了我们这里重点关注的是文件类型的读取顺序就不深究加载文件的源码了我们看这个双层嵌套的循环分别循环的是什么先是循环的 propertySourceLoaders然后再循环 loader 的 getFileExtensions 方法返回的 String 数组这个 propertySourceLoaders 是什么呢我们发现又又是读取的 spring.factories 文件这回读的是 org.springframework.boot.env.PropertySourceLoader在文件的最上面 可以看到先后顺序是 PropertiesPropertySourceLoaderYamlPropertySourceLoader我们再分别看这两个 loader 的 getFileExtensions 方法 结论很明显了顺序是 properties xml yml yaml。
http://www.zqtcl.cn/news/448189/

相关文章:

  • 东莞网站建设技术支持产品推广怎么写
  • 银川app购物网站制作公司网站建设怎样提升形象与品牌价值
  • 中山城市建设集团网站信誉好的邯郸网站建设
  • 做网站很赚钱吗贵阳网站建设费用
  • 设计网站的关键点用ps做招生网站
  • 制作网站公司服务器租赁一年的费用网页动画是如何制作出来的
  • 佛山网站优化有莱芜房产网新房
  • 西安英文旅游网站建设中国建筑工程门户商城
  • 山东企业建站软件购物网站是多少
  • 外链收录网站语音识别程序代做网站
  • 天津平台网站建设公司wordpress删除页头页尾
  • 网站加入站长统计wordpress设置手机浏览器
  • 服务器网站备案怎么做网站流量竞品分析
  • 四川省建设工程信息网站上海金融网站制作公
  • php7.2 wordpress黑帽seo软件
  • 网站后台cms做网站项目团队口号
  • 云南哪几个建网站公司九江做网站哪家好
  • 时尚网站模板代码网站模板炫酷
  • 股票网站怎么做动态表格live2d看板娘wordpress
  • 班级网站建设开题报告企业创新平台建设
  • 网站建设有什么要求建设电子商务网站的步骤
  • 百度推广和哪些网站有合作专业网站开发多少钱
  • 相城区住房建设局网站做网站开发电脑配置
  • 成都网站建设制作photoshop网页制作视频教程
  • 深圳网站做的好的公司广州外贸营销网站建设公司
  • 网站你懂我意思正能量晚上不用下载直接进入微信公众号免费模板素材网站
  • 网站设计模板之家南宁seo外包平台
  • 免费舆情网站遵义市双控体系建设网站
  • 企业做网站得多少钱wordpress get_posts
  • 轻淘客网站怎么做申请个人网址