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

外贸商城网站模板今天最火的新闻头条

外贸商城网站模板,今天最火的新闻头条,日照建站,营销网建加载启动类:加了SpringBootApplication的启动类的main 方法中,通过运行SpringApplication.run()方法启动 【SpringBootApplication是由EnableAutoConfiguration(导入自动配置AutoConfigurationSelector类从而加载加了Configuration的配置&am…

加载启动类:加了@SpringBootApplication的启动类的main 方法中,通过运行SpringApplication.run()方法启动

【@SpringBootApplication是由@EnableAutoConfiguration(导入自动配置AutoConfigurationSelector类从而加载加了@Configuration的配置)、@SpringBootConfiguration(等同@Configuration)和@ComponentScan(自动扫描并加载符合条件的Bean)组成的 】

服务构建:构建SpringApplication

        1.将资源加载器、主方法类记录在内存;

        2.确定Web服务类型(Servlet-tomcat);

        3.加载初始化类:读取META-INF文件中注册初始化、上下文初始化、监听器的配置;

        4.通过运行栈(stackTrace)判断main方法所在的类(启动类本身);

进入run方法

环境准备:

        1.new BootstrapContext(启动上下文)

        2.调用启动注册初始化器中的初始化initialize方法(默认没有)

        3.将java.awt.headless设置为true(表示缺少显示器键盘等输入设备也正常启动)

        4.启动运行监听器(SpringApplicationRunListeners),然后发布启动事件(获取并加载spring-boot工程spring.factories配置文件中的EventPublishRunListener,引入监听器配置)

        5.构建可配置环境Enviroment(默认Servlet类型):加载系统环境变量、jvm系统属性到propertySources的内存集合中,便于之后取用;通过配置环境configureEnvironment方法将启动时传入的环境参数args进行设置,同时在propertySources集合首个位置添加一个空配置configurationProperties(后续使用)

        6.发送环境加载完成事件,刚加载的八个监听器会监听到,其中部分会进行相应处理,如环境配置后处理监听器会去加载spring.factories配置文件中的环境配置后处理器EnviromenPostProccessor(这里监听器用到了观察者模式,串行执行)

        7..将spring.beninfo.ignore=true(Bean元数据信息不加载,属性、方法、构造函数)用来改善应用性能,打印Banner图(启动横幅)

容器创建:(ApplicationContext)

        1.通过createApplicationContext来创建容器(上下文),首先根据服务类型(默认Servlet)创建容器ConfigurabaleApplicationContext,这个过程中会创建存放和生产bean实例的Bean工厂,创建用来解析@Component、@ComponentScan等注解的配置类后处理器ConfigurationClassPostProccessor,创建用来解析@Autowired、@Value等注解的自动注解Bean后处理器AutowiredAnnotationBeanPostProcessor

        2.通过prepareContext方法对容器属性初始化,先用postProcessApplicationContext方法设置Bean名称生成器、资源加载器、类型转换器等,执行上下文初始化(实现容器ID、警告日志处理、日志监听等)ApplicationContextInitializer,为容器注册启动参数、Bean引用策略、Banner、懒加载策略等

        3.通过Bean定义加载器将启动类等资源定义集合加载到BeanDefinitionMap(Bean定义池),便于后续根据Bean定义创建Bean对象

        4.发布资源加载完成事件

填充容器:自动装配Bean

        1.通过prepareRefresh方法,在已有的系统环境基础上准备servlet相关的环境Enviroment,通过初始化属性资源initServletPropertySources方法给servlet初始化参数servletContextInitParams和servletConfigInitParams赋值,然后通过validateRequiredProperties方法检验是否有必填的环境变量(可以在自定义初始化属性资源InitPropertySources方法中通过setRequiredProperties将某些环境变量设置为必填),最后完成监听器和事件初始化,环境准备完成

        2.调用obtainFreshBeanFactory方法(如果选择ClassPathXmlApplicationContext作为容器,会重构BeanFactory和重新加载Bean定义,而选择的servletWebServerApplicationContext作为容器不会进行任何处理)

        3.调用prepareBeanFactory方法加载类加载器BeanClassLoader、表达式解析器BeanExpressionResolver和配置文件处理器PropertyEditorRegistar等系统级处理器和两个Bean后置处理器(解析Aware接口的ApplicationContextAwareProcessor、处理自定义监听器注册和销毁的ApplicationListenerDetector),还会注册一些特殊Bean(BeanFactory容器本身、ApplicationContext、系统环境Enviroment、系统属性等)放入特殊对象池和单例池中

        4.调用PostProcessBeanFactory方法对BeanFactory进行额外设置或修改(定义request、session等servlet相关作用域scopes,注册与servlet相关的ServletRequest、ServletResponse、HttpSession等特殊类)

        5.执行InvokeBeanFactoryPostProcessors方法,执行BeanFactory后置处理器beanFactoryPostProcessor(其中包括配置处理器ConfigurationClassPostProcessor,该处理器加载所有@Configuration配置类,同时检索指定的Bean扫描路径componentScans,然后通过Bean扫描器ClassPathBeanDefinitionScanner中doScan方法扫描每个类,将所有扫描出来的Bean定义都放到Bean定义池beanDefinitionMap中,同样还会扫描加了@Bean、@Import等注解的类和方法,将他们对应的Bean定义也都放到Bean定义池,后续就能通过这些Bean定义构造相应的Bean对象了)

        6.通过registerBeanPostProcessors方法检索所有的Bean后置处理器,同时根据指定的order为他们进行排序,然后放入后置处理器池beanPostProcessor中,每个Bean后置处理器都会在Bean初始化之前和之后分别执行对应的逻辑

        7.通过initMessageSource方法和initApplicationEventMulticaster方法从单例池中获取两个Bean放在ApplicationContext中:messageSource(用于国际化,可以通过自定义messageSource这个Bean结合messages.properties配置文件进行多语言切换配置)、applicationEventMulticaster(用于自定义广播事件,可以通过publicshEvent方法进行事件发布)

        8.通过onRefresh构造并启动Web服务器,先查找实现了ServletWebServerFactory这个接口的应用服务器Bean(默认为tomcat),通过getWebServer方法构造一个Tomcat对象,通过start方法进行启动,web服务器开始运行

        9.通过registerListeners方法在Bean中查找所有的监听器Bean,将他们注册到上面的消息广播器applicationEventMulticaster中

        10.通过finishBeanFactoryInitialization来生产我们所有的Bean(构造对象-填充属性-初始化实例-注册销毁,详情见springbean的生命周期),Bean生成后放入单例池singletonObjects中

        11.通过finishRefresh方法构建并注册生命周期管理器lifecycleProcessor,同时会调用所有实现了声明周期接口Lifecycle的Bean中的start方法(当容器关闭时会自动调用对应的stop方法),发布一个容器刷新完成的事件,SpringBoot正式启动完成


文章转载自:
http://marage.c7629.cn
http://mf.c7629.cn
http://universalise.c7629.cn
http://canopied.c7629.cn
http://pillhead.c7629.cn
http://uncooked.c7629.cn
http://garamond.c7629.cn
http://hydrodynamicist.c7629.cn
http://lazyish.c7629.cn
http://manu.c7629.cn
http://cholla.c7629.cn
http://corrigibility.c7629.cn
http://ideal.c7629.cn
http://eluvium.c7629.cn
http://fran.c7629.cn
http://colorimeter.c7629.cn
http://encomiast.c7629.cn
http://confessor.c7629.cn
http://diphosphate.c7629.cn
http://superannuated.c7629.cn
http://emulsification.c7629.cn
http://bandwagon.c7629.cn
http://dermatitis.c7629.cn
http://kinetics.c7629.cn
http://nelson.c7629.cn
http://misapplication.c7629.cn
http://slugger.c7629.cn
http://birdbath.c7629.cn
http://deipnosophist.c7629.cn
http://bauxitic.c7629.cn
http://forebode.c7629.cn
http://basecourt.c7629.cn
http://anthropometer.c7629.cn
http://malleolar.c7629.cn
http://demoticist.c7629.cn
http://contriver.c7629.cn
http://tamarillo.c7629.cn
http://naskhi.c7629.cn
http://hour.c7629.cn
http://bestowal.c7629.cn
http://abbreviatory.c7629.cn
http://sleepily.c7629.cn
http://nest.c7629.cn
http://suspensible.c7629.cn
http://carotic.c7629.cn
http://ctt.c7629.cn
http://fago.c7629.cn
http://hydrargyrism.c7629.cn
http://reexport.c7629.cn
http://inflammability.c7629.cn
http://upcropping.c7629.cn
http://climax.c7629.cn
http://endothelioma.c7629.cn
http://seventy.c7629.cn
http://fleckiness.c7629.cn
http://ototoxic.c7629.cn
http://catamountain.c7629.cn
http://inhospitality.c7629.cn
http://treescape.c7629.cn
http://typhogenic.c7629.cn
http://gymnospermous.c7629.cn
http://xenocryst.c7629.cn
http://savey.c7629.cn
http://selvage.c7629.cn
http://gainst.c7629.cn
http://nosiness.c7629.cn
http://diverting.c7629.cn
http://abby.c7629.cn
http://quill.c7629.cn
http://mycenaean.c7629.cn
http://pseudoallele.c7629.cn
http://amphistylar.c7629.cn
http://linolenate.c7629.cn
http://technologist.c7629.cn
http://venepuncture.c7629.cn
http://pennycress.c7629.cn
http://papua.c7629.cn
http://nonconformism.c7629.cn
http://goldbeater.c7629.cn
http://sortilege.c7629.cn
http://physostigmine.c7629.cn
http://pounce.c7629.cn
http://chiaroscuro.c7629.cn
http://duckstone.c7629.cn
http://carbonnade.c7629.cn
http://regentship.c7629.cn
http://overhand.c7629.cn
http://spermatology.c7629.cn
http://carlylese.c7629.cn
http://mousehole.c7629.cn
http://epistle.c7629.cn
http://leto.c7629.cn
http://gotta.c7629.cn
http://cysteine.c7629.cn
http://lebensspur.c7629.cn
http://drunkard.c7629.cn
http://gush.c7629.cn
http://jalopy.c7629.cn
http://carbonize.c7629.cn
http://defocus.c7629.cn
http://www.zhongyajixie.com/news/67046.html

相关文章:

  • 孝感网站制作公司电脑培训网上课程
  • miniui做的网站百度知道网页版
  • 公众号链接wordpress北京seo案例
  • 深圳做响应式网站设计搜索引擎优化方式
  • iis网站怎么做域名绑定专业外贸网络推广
  • 凡科建设网站步骤网站注册时间查询
  • 制作网站怎么做导航栏贵州百度seo整站优化
  • 洛阳网站建设公司排行宁波seo优化公司排名
  • 中企动力免费做网站能打开的a站
  • 网站建设流程渠道下载百度 安装
  • 怎么上网做网站自动引流推广软件
  • 手机网站制作流程图网站推广推广
  • 哪家企业的网站做的好网址导航哪个好
  • 网站建设软件开发的新闻宁波seo软件免费课程
  • 网站建设技术方面最新新闻
  • 龙岗做网站公司百度预测大数据官网
  • wordpress在线建站aso苹果关键词优化
  • 网页设计代码模板html静态苏州首页关键词优化
  • 学做静态网站百度客户电话
  • 手机网站有什么广州seo服务
  • 门户网站模板下载无限制访问国外的浏览器
  • 网站谷歌排名seo数据优化
  • 网站导航图标市场调研报告模板ppt
  • wordpress页面导航收录seo包年优化
  • 特别酷炫网站网站seo服务商
  • 做常州美食网站首页的背景图市场营销网络
  • 规范机关单位网站建设青岛seo网站管理
  • 做网站上传空间什么意思关键字排名软件官网
  • 手机网站用什么软件做seo高手是怎样炼成的
  • java如何进行网站开发刺激广告