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

曲靖网站建设公司怎么创建个人视频号

曲靖网站建设公司,怎么创建个人视频号,互联业务登录页 网站,企业网络搭建论文目录 启动流程分析创建 SpringApplication启动 run(String... args) 读取配置流程分析listeners.environmentPrepared解析配置文件详细分析EnvironmentPostProcessor 详细分析 启动流程分析 SpringApplication.run(App.class, args);return new SpringApplication(primarySour… 目录 启动流程分析创建 SpringApplication启动 run(String... args) 读取配置流程分析listeners.environmentPrepared解析配置文件详细分析EnvironmentPostProcessor 详细分析 启动流程分析 SpringApplication.run(App.class, args);return new SpringApplication(primarySources).run(args);创建 SpringApplication SpringApplication(primarySources):this.primarySources new LinkedHashSet(Arrays.asList(primarySources)); //这个推断流程 001 篇 分析webServer里有详情 web应用返回WebApplicationType.SERVLET this.webApplicationType WebApplicationType.deduceFromClasspath(); //获取Factories中配置的 BootstrapRegistryInitializer this.bootstrapRegistryInitializers new ArrayList(getSpringFactoriesInstances(BootstrapRegistryInitializer.class)); this.initializers getSpringFactoriesInstances(ApplicationContextInitializer.class); this.listeners getSpringFactoriesInstances(ApplicationListener.class)); //推断main方法所在的Class this.mainApplicationClass deduceMainApplicationClass(); 启动 run(String… args) //获取Factories中配置的 SpringApplicationRunListener 并执行其 starting() SpringApplicationRunListeners listeners getSpringFactoriesInstances(SpringApplicationRunListener.class, types, this, args).forEach(listener.starting(bootstrapContext)) //封装 args这里会读取执行jar的时候添加的以 -- 开头的 kayvalue ApplicationArguments applicationArguments new DefaultApplicationArguments(args); //读取配置 包括系统JVM,ServletContext,properties,yaml配置 //全部设置到 environment 中 ConfigurableEnvironment environment prepareEnvironment(listeners, bootstrapContext, applicationArguments); //这一步我查资料应该是忽略Java解析BeanInfo的缓存 因为Spring使用的是ASM技术 configureIgnoreBeanInfo(environment); //打印banner并返回 Banner printedBanner printBanner(environment); //根据类型返回上下文 001 有详细分析 AnnotationConfigServletWebServerApplicationContext context createApplicationContext(); context.applicationStartup applicationStartup; //利用ApplicationContextInitializer初始化Spring 上下文 //发布ApplicationContextInitializedEvent //注册primarySources run() 传入的配置类列表 //发布ApplicationContextPreparedEvent prepareContext(bootstrapContext, context, environment, listeners, applicationArguments, printedBanner); //调用refresh(context) 这一步就是执行Spring bean创建的逻辑了 refreshContext(context); //这一步是空的 给子类一个实现的机会 afterRefresh(context, applicationArguments); //遍历执行之前 listeners started() listeners.started(context, timeTakenToStartup); //执行 ApplicationRunner.run(args); //执行 CommandLineRunner.run(args.getSourceArgs()); //两个执行器只有 入参的区别 一个是解析之后的对象一个是字符串 callRunners(context, applicationArguments); //遍历执行之前 listeners ready() listeners.ready(context, timeTakenToReady);读取配置流程分析 //读取配置 包括系统JVM,ServletContext,properties,yaml配置 //全部设置到 environment 中 prepareEnvironment(listeners, bootstrapContext, applicationArguments)://new ApplicationServletEnvironment(); //默认带有配置名称 //servletConfigInitParams 内容为空 //servletContextInitParams 内容为空 //systemProperties 内容为各种系统配置 如 java 版本、 -D开头的参数、OS版本等等 //systemEnvironment 内容为系统环境变量里的内容 如JAVA_HOME、PATH等等 ConfigurableEnvironment environment getOrCreateEnvironment(); //放入一个name:commandLineArgs //解析 cmd 执行jar的时候带有的参数 就是 .jar 后配置的 不带 -D的 //解析后放入 new SimpleCommandLinePropertySource(args) 并放在第一个 //SimpleCommandLinePropertySource 有两个属性 //optionArgs 中放的是 带有 -- 的 keyvalue形式的参数 已经解析好了 //nonOptionArgs 中放的是 不带 -- 的参数 原样放进 configureEnvironment(environment, applicationArguments.getSourceArgs()); //设置到第一个 nameconfigurationProperties //把 environment.getPropertySources() 设置进去 ConfigurationPropertySources.attach(environment);// 执行 EventPublishingRunListener#environmentPrepared // 其实就发布了new ApplicationEnvironmentPreparedEvent(bootstrapContext, this.application, this.args, environment))事件 // spring中的事件就是直接调用 所有的监听器 getListeners.froEach() // 下边详细分析 listeners.environmentPrepared(bootstrapContext, environment);//绑定environment 到 SpringApplication bindToSpringApplication(environment);//有可能是new出来的新的设置 到第一个 nameconfigurationProperties ConfigurationPropertySources.attach(environment);listeners.environmentPrepared // 获取所有监听了 ApplicationEnvironmentPreparedEvent事件的监听器 EnvironmentPostProcessorApplicationListener EnvironmentPostProcessor#postProcessEnvironment(environment, application) AnsiOutputApplicationListener LoggingApplicationListener BackgroundPreinitializer DelegatingApplicationListener FileEncodingApplicationListener getApplicationListeners(event, type)解析配置文件详细分析 EnvironmentPostProcessorApplicationListener 中 // EnvironmentPostProcessor 序号 有 // CloudFoundryVcapEnvironmentPostProcessor Ordered.HIGHEST_PRECEDENCE 9 // ConfigDataEnvironmentPostProcessor Ordered.HIGHEST_PRECEDENCE 10 // RandomValuePropertySourceEnvironmentPostProcessor Ordered.HIGHEST_PRECEDENCE 1 // SpringApplicationJsonEnvironmentPostProcessor Ordered.HIGHEST_PRECEDENCE 5 // SystemEnvironmentPropertySourceEnvironmentPostProcessor Ordered.HIGHEST_PRECEDENCE 4 // DebugAgentEnvironmentPostProcessor Ordered.LOWEST_PRECEDENCE // IntegrationPropertiesEnvironmentPostProcessor Ordered.LOWEST_PRECEDENCE for (EnvironmentPostProcessor postProcessor : getEnvironmentPostProcessors(application.getResourceLoader(),event.getBootstrapContext())) {postProcessor.postProcessEnvironment(environment, application); }EnvironmentPostProcessor 详细分析 按排序逐个执行 1. RandomValuePropertySourceEnvironmentPostProcessor 添加一个 name为 random 的 RandomValuePropertySource 自动根据 getProperty(random.long)的类型返回随机数2. SystemEnvironmentPropertySourceEnvironmentPostProcessor 这个就是把 systemEnvironment 内容重新包装成一个带有 prefix 字段的对象 具体有啥用没找到3. SpringApplicationJsonEnvironmentPostProcessor 对 spring.application.json 和 SPRING_APPLICATION_JSON 配置进行JSON解析 这个解析比较早所以放在一般的配置文件里解析不到4. CloudFoundryVcapEnvironmentPostProcessor 处理云服务器上的 VCAP_APPLICATION and VCAP_SERVICES JOSN变量 转化为 vcap.application. 或 vcap.services.开头的配置5. ConfigDataEnvironmentPostProcessor 包含了2组解析路径 第一组 file:./;optional:file:./config/;optional:file:./config/*/ */ 第二组 optional:classpath:/;optional:classpath:/config/ 遍历调用 {StandardConfigDataLocationResolver} 文件名spring.config.name 没有读取默认 application0 {PropertiesPropertySourceLoader} 文件后缀properties、xml1 {YamlPropertySourceLoader} 文件后缀yml、yaml 在解析的时候就现根据路径和文件名称文件后缀组成文件路径 20个(默认情况下1个文件名 * 4中文件后缀 * 5个解析路径 20) 如: classpath:/application.properties, classpath:/application.yaml 挨个判断文件是否存在 存在的文件再解析内容6. IntegrationPropertiesEnvironmentPostProcessor 处理 META-INF/spring.integration.properties 中指定的配置 已经规定好了解析的Key7. DebugAgentEnvironmentPostProcessor 解析调试代理配置 spring.reactor.debug-agent.enabled
http://www.hkea.cn/news/14315582/

相关文章:

  • 西安有哪些家做网站的公司免费有效的推广网站
  • 功能介绍的网站中山网站搜索排名
  • 电子商务网站建设设计wordpress修改数据库配置文件
  • 公司招聘一个网站建设来做推广行业型网站开发
  • 服装集团网站建设如何提供网站建设公司
  • 网站开发中 敬请期待wordpress采集
  • 网站监测怎么做大型服装网站建设
  • 网站开通辽宁省建设厅网站升级何时结束
  • 网站用什么主机wordpress大转盘插件
  • tuzicms做企业手机网站如何跨境电商平台一览表
  • 高端集团响应式企业网站模板国内网站绕过备案方法
  • 县市区科普网站建设网站开发流程简述
  • 百度宿迁市建设局网站腾讯云如何做网站
  • 大型用户网站建设上海地区网站开发公司
  • 现在流行的网站开发工具乔拓云智能建站
  • 建设了网站怎么管理系统哈尔滨视频制作公司
  • 厦门市建设工程安全管理协会网站建设银行网银网站
  • 接做网站单子沈阳网站建设tlmh
  • 广东人才网官方网站招聘信息站长检测同ip网站很多怎么办
  • php 网站开发案例教程网站seo主管招聘
  • 友汇网网站建设一流的低价网站建设
  • 专门做三国战纪的网站叫什么网页设计与制作思政微课
  • 深圳民治做网站做毕业设计个人网站任务书
  • 做网站的教科书房产中介网站怎么做
  • 门头沟建设网站做网站的为什么不给域名和密码
  • 网站做视频网站wordpress 安全 插件
  • 网站新闻发布系统模板内网建立网站
  • 苏宁易购如何进行网站的建设和维护百容千域可以免费做网站吗
  • 网站建设报价图片欣赏效果图工作室
  • 大型网站故障网站建设与制作实现精准营销