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

wordpress 被挂马南宁百度关键词优化

wordpress 被挂马,南宁百度关键词优化,WordPress多域名登录,足球联赛排名图1 由上图我们可以看到#xff0c;我把run方法分成了5个小段#xff0c;每小段使用红框圈了起来#xff0c;这一篇我们先开始讲第一段。大家需要关注下行号#xff0c;我讲的时候可能会使用行号对应具体某行代码。 图1-289-290行#xff1a; 没啥好说的定义了两个变量我把run方法分成了5个小段每小段使用红框圈了起来这一篇我们先开始讲第一段。大家需要关注下行号我讲的时候可能会使用行号对应具体某行代码。 图1-289-290行 没啥好说的定义了两个变量191行的configureHeadlessProperty()方法仅仅是设置了系统属性java.awt.headless为true告诉jvm使用无图形模式运行以节省资源对我们研究spring没啥影响大家了解下即可。 图1-292行 调用了getRunListeners(args); 方法返回了SpringApplicationRunListeners 对象我们先看下SpringApplicationRunListeners对象是个啥再看getRunListeners(args);方法干了啥事。 图2 上图便是SpringApplicationRunListeners类的部分方法和属性由篇幅限制只能截取部分方法不过已经不影响我们对它的理解有条件的再电脑旁的同学可以自己打开这个类看看。从上图很容易看出SpringApplicationRunListeners类主要维护了SpringApplicationRunListener的集合并定义了一些监听方法在方法内部调用SpringApplicationRunListener类的相同方法名的方法从这些方法名大家应该也可以猜出这些方法大概是是什么时候调用的。比如starting应该是容器正在启动时调用的environmentPrepared(ConfigurableEnvironment environment)方法是spring 环境environment准备好时调用的。 SpringApplicationRunListener监听器是处理springboot启动过程中的不同阶段的事件处理器大家需要和我们平时业务里经常使用的ApplicationListener监听器区分开。 我们看下getRunListeners(args)方法到底加载了哪些SpringApplicationRunListener。 图3 由上图我们可以看出逻辑在构建了types变量后主要逻辑在getSpringFactoriesInstances方法我们看下getSpringFactoriesInstances方法 图4 由上图可以看到在getSpringFactoriesInstances方法里先获取了类加载器然后使用SpringFactoriesLoader.loadFactoryNames(type, classLoader)方法是获取所有META-INF/spring.factories资源文件里的数据META-INF/spring.factories文件里的内容大概是xxxyyyy的形式而这里的xxx就是type.getname()的值yyyy就是获取到的names集合里的每个string值。而获取到的每个yyyy的值其实就是SpringApplicationRunListener接口的每个实现类的全限定名。具体的加载流程也不复杂大家可以自行看下简单说就是把META-INF/spring.factories文件内容全读到map里然后使用key来获取对应的value而value存的都是具体的实现类的类路径全限定名。 在获取所有的SpringApplicationRunListener接口的实现类string集合之后接下来就是实例化对象了通过createSpringFactoriesInstances方法来实例化对象 图5 由上图5可知在createSpringFactoriesInstances方法里遍历每个name首先对每个name创建Class对象再通过Class对象获取构造方法创建对象。由433--434行可知这里默认使用了有参构造器且参数类型是传过来的parameterTypes由上文可知parameterTypes里分别是SpringApplication.class和string[].class也就间接的说明spring要求SpringApplicationRunListener接口的实现类必须定义有参构造器并且第一个参数是SpringApplication第二个参数是string数组。 图1-293行 该行执行了SpringApplicationRunListeners的starting()方法从上面我们对SpringApplicationRunListeners的剖析已经知道其实是调用了 SpringApplicationRunListener接口的starting()方法那我们不难会有疑问这时候会有哪些默认的SpringApplicationRunListener的实现类呢在293行打个断点我们可以看到这时候只有一个EventPublishingRunListener实现类我们来看下该类的starting方法干了啥。 图6 由上图可知在starting方法里调用了SimpleApplicationEventMulticaster对象的multicastEvent方法发布了ApplicationStartingEvent事件。我们知道在spring里监听事件一般都是ApplicationListener接口干的事所以其实EventPublishingRunListener的starting方法就是发布了一个ApplicationStartingEvent事件由监听该事件的ApplicationListener去执行对应的onApplicationEvent方法。 这里我简单说下spring的监听器实现机制主要包含三个模块分别是1.事件发布器2.事件监听器 3事件本身 也很好理解在需要发布事件的地方先创建好事件然后由事件发布器把事件发布出去再由事件监听器来消费这些事件。而所谓的发布事件其实就是由事件发布器SimpleApplicationEventMulticaster维护了所有的监听器ApplicationListener然后调用所有监听器ApplicationListener的onApplicationEvent方法罢了。 到这里我们稍微对第一段做个总结 主要就是从META-INF/spring.factories文件里获取了SpringApplicationRunListener的实现类的定义并实例化接着执行了其starting方法。而启动期间spring默认提供了EventPublishingRunListener实现类在该类的stating方法里由调用了initialMulticaster.multicastEvent方法发布了ApplicationStartingEvent事件由对应的ApplicationListener执行监听方法。 给大家留个小问题吧在执行initialMulticaster.multicastEvent方法的时候ApplicationListener又是从哪获取的
http://www.hkea.cn/news/14399229/

相关文章:

  • 做问卷美观的网站珠海市做网站
  • 做校园网站长治做网站
  • 张家港市住房城乡建设局网站达州建设局网站
  • 外国人做的篆字网站openwrt安装wordpress
  • 镇网站制作价格网站建设如何快速增加用户
  • 品牌手机网站开发深圳装饰企业前50强
  • 在西部数码做的企业网站不能与阿里巴巴网站相连接联想电脑网站建设策划书
  • 昆明个人网站建设平台支付网站认证费用怎么做分录
  • 沈阳公司网站建设公司网站做百度推广需要交费吗
  • 歌曲网站源码做网站和APP需要注册公司吗
  • 浏览器网页版免费进入淘宝seo搜索引擎原理
  • 30天网站建设全程实录做查询网站费用
  • 简单设置网站首页阳泉建设局网站
  • 关于绿色环保网站的建设历程wordpress 代码规范
  • 第9类商标有网站开发河北助手app下载
  • 谁有人跟动物做的网站要怎么做网站推广
  • 淄博市沂源县城乡建设局网站网站策划需要什么
  • 集团品牌网站建设网站不备案会怎样
  • 毕设网站代做一般预算多少钱做网站什么的好
  • 做网站的背景怎么做国外浏览器app
  • 深圳市网站设江西中联建设集团有限公司网站
  • 专业做营销网站网络广告策划的流程顺序为
  • 网站标题字体大小个人网站视频建设
  • 网站建设总体规划包括怎样免费设计logo
  • 郑州网站设计收费大型社区网站开发文档
  • 56m做图片视频的网站是什么wordpress模板关系
  • 最传统的网站推广手段济南建设工程招标网
  • 黄梅那里有做网站的房地产营销门户网站开发
  • 网站建设怎么样工作软装设计师要学什么
  • 淘宝网站建设手机版wordpress 报名插件