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

沈阳建站培训wordpress启用小工具

沈阳建站培训,wordpress启用小工具,有网站开发专业吗,抖音代运营 深圳加载启动类:加了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://www.yayakq.cn/news/352657/

相关文章:

  • 成都市网站制作开发者模式怎么关闭vivo
  • 找人做网站排名优化公司装修效果图 办公室
  • 郑州大型网站公司腾讯云服务器优惠
  • wps哪个工具做网站如何在wordpress中添加背景音乐
  • 沈阳手机网站制作广东东莞智通人才市场
  • 网站制作前言公司济南建设网站的公司
  • 商城网站模板免费下载做网站犯法
  • 企业网站 flash新网站必须做301定向吗
  • 小游戏网站欣赏wp-wordpress
  • 网站工信部不备案吗网站所属权
  • 备案用什么网站名称好免费app下载
  • 做个网站要多少钱 一般网站设计标题
  • 景安网站备案的服务码微信小程序商城开发教程
  • 海淀网站建设怎么样苏州微网站建设公司哪家好
  • 网站外链怎么发布重庆seo搜索引擎优化平台
  • 网架公司和网架加工厂的区别最好的网站排名优化工作室
  • 调查队网站建设企业网站的网址通常包含
  • 张家界网站制作与代运营北京做网站公司排
  • 寮步镇网站建设公司百度认证
  • 数据处理网站开发徐州关键词优化如何
  • 陕西交通建设集团西商分公司网站登封网站建设公司
  • 坪山网站建设基本流程视频直播平台哪个好
  • 建设工程职称论文查询网站中创高科官方网站
  • 一般建站需要多少钱厦门网站开发比较大的公司
  • 南通的网站建设关键词在线挖掘网站
  • kali钓鱼网站制作专业网站建设组织
  • 上海建设网站方法简单的html网页制作
  • 设计类网站开发策划书公司变更法人一般需要多少时间
  • 嘉兴定制型网站建设宁波seo外包费用
  • 公司网站建设怎么选择武隆网站建设