springboot(入门后进阶)启动-事件-事件监控-系统参数

【SpringBoot】一文带你入门SpringBoot 本文是对SpringBoot的入门介绍,可以让大家对SpringBoot有一个初步的了解。 阅读详情

Springboot进阶

启动springboot的三种方式

  1. 使用SpringApplication的静态方法run

    • 特点:使用这种方式,配置属性使用外部application.properties属性文件进行配置

      SpringApplication.run(SpringbootAppliction.class,args)
  2. 创建SpringApplication对象,调用其run方法

    • 特点:可以编程式配置属性

      SpringApplication spring=new SpringApplication(SpringbootApplication.class);
      spring.run(args);
      
      
    
  3. 创建SpringApplicationBuilder对象,调用其run方法

    • 特点:可以指定容器之间的层级关系

      new SpringApplicationBuilder(SpringBootTestApplication.class).parent(Person.class).run(args);

层级关系SpringApplicationBuild

  • 理解:SpringBoot针对Spring中的层级关系做出了SpringApplicationBuild类,使用它可以指定容器之间的层级关系

    new SpringApplicationBuilder(SpringBootTestApplication.class).parent(Person.class)

流式写法对象.对象.对象

  • 理解:就是调用其方法返回本体继续调用别的方法

    SpringApplication.run(args).getBean(UserDao.class).toString.subString()

事件核心

  1. 事件对象(EventObject)

    • 理解:当触发事件时的事件源对象(源代码呈上)

      /**
       * The object on which the Event initially occurred.
       */
      protected transient Object  source;
  2. 事件监听(EventListener)

    • 理解:对触发事件的监听。简单来说就是触发事件之后要干的事情

    • 源代码呈上!

    • 事件监听

      @Component
      public class ParentEvent implements ApplicationListener<EventTest> {
          @Override
          public void onApplicationEvent(EventTest event) {
              Baby source = (Baby) event.getSource();
              System.out.println("来,爸爸给你吃 nai nai !!");
          }
      }
    • 被监听的事件

      @Component
      public class EventTest extends ApplicationEvent {
          /**
           * Create a new {@code ApplicationEvent}.
           *
           * @param source the object on which the event initially occurred or with
           *               which the event is associated (never {@code null})
           */
          public EventTest(Object source) {
              super(source);
          }
      }
    • 被监听的对象

      @Component
      public class Baby implements ApplicationEventPublisherAware {
          private String name;
          private int love;
      
          public String getName() {
              return name;
          }
      
          public void setName(String name) {
              this.name = name;
          }
      
          public int getLove() {
              return love;
          }
      
          public void setLove(int love) {
              this.love = love;
          }
      
          public void status(){
              if (this.love<10){	
                  System.out.println("爸爸,我"+this.name+"饿了!");
                  this.applicationEventPublisher.publishEvent(new EventTest(this));//调用spring中的广播事件以通知所有监听事件
              }
          }
          private ApplicationEventPublisher applicationEventPublisher;
      
          @Override
          public void setApplicationEventPublisher(ApplicationEventPublisher applicationEventPublisher) {
              this.applicationEventPublisher=applicationEventPublisher;
          }
      }
    • 具体使用(在main方法中)

      ConfigurableApplicationContext run = SpringApplication.run(SpringBootTestApplication.class, args);
              Baby bean = run.getBean(Baby.class);//获取到容器中的监听对象
              bean.setName("王亚豪");//赋值
              bean.setLove(5);
              bean.status();//调用方法
    • 注意

      • SpringBoot中一个监听对象,可以有多个监听事件
  3. Spring中的事件广播EventMulticaster

    • 作用
      • 管理事件监听
      • 广播事件

springboot启动事件(官网1.7)

  1. ApplicationStartingEvent
    • 环境准备好了,通知
    1. ApplicationEnvironmentPreparedEvent
      • 环境已经创建好,但是容器还没有启动
    2. ApplicationContextInitializedEvent
      • 在Bean还没有加载之前
    3. ApplicationPreparedEvent
      • bean已经定义完了的事件
    4. ApplicationStartedEvent
      • oc容器已经被刷新过了,到此时为止(Application基本运行完毕)
    5. ApplicationReadyEvent
      • Application Runner或者CommandLineRunner已经被调用的时候,springboot容器已经被启动完了发布的通知事件
    6. AvailabilityChangeEvent
      • 监听应用程序的健康状态,
    7. ApplicationFailedEvent
      • 启动失败事件

Web Environment

  • 决定springboot使用那种类型的ApplicationContext( IOC容器 )
    • AnnotationConfigServletWebServerApplicationContext
      • 内嵌servlet容器
    • AnnotationConfigReactiveWebServerApplicationContext
    • AnnotationConfigApplicationContext
      • 默认ApplicationContext

Accessing Application Arguments

  • 介绍:获取启动参数

    @Bean
    public Person person(ApplicationArguments args) throws Exception {
        String s = Arrays.toString(args.getSourceArgs());
        s=s.substring(s.indexOf("[")+1,s.indexOf("]"));
    
        if (!"admin".equals(s)){
            throw new Exception("食屎逝尸");
        }
        System.err.println("欢迎回家,我得"+s+"殿下");
        return new Person();
    }
SpringBoot3 快速启动框架 SpringBoot官网SpringBoot 帮我们简单、快速地创建一个独立的、生产级别的Spring 应用(说明:SpringBoot底层是Spring),大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术!为所有 Spring 开发提供更快速、可广泛访问的入门体验。开箱即用,设置合理的默认值,但是也可以根据需求进行适当的调整。提供一系列大型项目通用的非功能性程序(如嵌入式服务器、安全性、指标、运行检查等)。 阅读详情

相关推荐

SkyWalking链路监控使用教程一:windows下环境搭建并启动springboot应用

1 skywalking下载地址 http://skywalking.apache.org/downloads/ tar 可根据需要选择版本 2 打开 dashbord 2.1解压 进入bin 2.2 点击startup.bat 2.3 在浏览器里输入:http://localhost:8080/ 仪表盘 拓扑图 追踪 3 监控springboot应用 以idea为例,在监控的项目中使用探针,需要配置启动参数。 3.1 找到skywalking-age.

ice-wee的专栏 3240

javascript 事件入门

内联模型,onclick是事件处理函数 function box(){ //如果放在一个匿名函数里面就看不到了 alert("Lee"); }; //脚本模型 PS:让事件处理函数执行一个函数的时候,通过赋值方式,那么直接将函数名赋值给事件处理函数 PS:也就是input.onclick = box;如果加上了括号就自动执行了,没有完成赋

270

JVM之远程监控springboot程序

1.准备好springboot的jar包 2.编写启动脚本. 这是改动之前的脚本: jarname='eureka-server' pid=`ps aux | grep $jarname | grep -v grep | awk '{print $2}'` echo $pid if [ "$jarname" != "" ] then kill -9 $pid fi kill -...

weixin_38399962的博客 1904

Spring Boot启动过程中相关事件

无

记录者的博客 1527

高通 Gen AI 推理扩展 (GENIE)(5):实战指南与Engine API深度解析

本文深入解析高通Gen AI推理扩展(GENIE)的Engine API核心功能与实战应用,涵盖引擎实例化、多引擎动态切换、性能调优及跨平台部署等关键技巧。通过详细代码示例和性能数据,帮助开发者高效利用GENIE进行AI推理,提升应用性能与稳定性。

weixin_29065959的博客 464

3D缺陷检测实战:从点云处理到工业质检优化

本文深入探讨了3D缺陷检测在工业质检中的实战应用,详细阐述了从点云处理到深度学习模型部署的完整技术链路。文章通过PCB焊点检测等实际案例,分析了3D视觉相比2D检测在识别深度、形状等缺陷方面的优势,并分享了点云滤波、分割、特征提取以及利用YOLOv5等模型进行高效检测的优化心得与落地挑战。

weixin_28358083的博客 337

SpringBoot:SpringBoot启动过程中这些事件你必须掌握

SpringBoot启动事件ApplicationStartingEvent ApplicationEnvironmentPreparedEvent ApplicationContextInitializedEvent 等介绍已经在项目中如何应用

永远保持随时离开的技术能力! 1989

RFID射频识别技术介绍及简单应用

简单介绍RFID技术及其简单应用,后附简单门禁制作方法和代码

来者皆是客。 1万+

Spring Boot - Application Events 的发布顺序_ApplicationFailedEvent

Spring Boot 的广播机制是基于观察者模式实现的,它允许在 Spring 应用程序中发布和监听事件。这种机制的主要目的是为了实现解耦,使得应用程序中的不同组件可以独立地改变和复用逻辑,而无需直接进行通信。在 Spring Boot 中,事件发布和监听的机制是通过以及事件发布者()来实现的。其中,ApplicationEvent 是所有自定义事件的基础,自定义事件需要继承自它。是监听特定事件并做出响应的接口,开发者可以通过实现该接口来定义自己的监听器。事件发布者(通常由 Spring 的。

小工匠 8365

springcloud+nacos+gateway+oauth2小聚会

在微服务工程中,Nacos作为目前主流的注册中心和配置中心,Spring Cloud Gateway作为目前主流的网关,下面引入spring security+oauth2+jwt作为认证和授权中心,进行简单的聊聊。

ldcaws的专栏 2646

31、MSP430FR2355时钟系统与低功耗模式解析

本文详细解析了MSP430FR2355的时钟系统和低功耗模式。首先介绍了时钟系统的组成,包括XT1振荡器、DCO、MODCLK、MCLK、SMCLK和ACLK的功能与配置方法。接着探讨了MSP430FR2355的五种低功耗模式及其配置要点,并分析了时钟系统与低功耗模式之间的协同关系。最后通过实际应用案例展示了如何在具体场景中优化系统功耗。文章旨在帮助开发者充分利用MSP430FR2355的时钟与低功耗特性,实现高性能、低功耗的嵌入式系统设计。

mars5的博客 195

SpringBoot使用ApplicationEvent&Listener完成业务解耦

目录 1、构建项目 2、创建UserRegisterEvent事件 3、实现监听 3.1@EventListener实现监听 3.2ApplicationListener实现监听 3.3SmartApplicationListener实现有序监听 4、使用@Async实现异步监听 总结 ApplicationEvent以及Listener是Spring为我们提供的一个事件监...

水逆呱的博客 4987

基于Python的电商平台商品信息爬取与价格监控系统设计与实现

本文详细介绍了一个基于Python的电商平台商品信息爬取与价格监控系统的设计与实现。系统采用最新的Python爬虫技术栈,包括Scrapy框架、Selenium自动化测试工具、BeautifulSoup解析库等,实现了对主流电商平台商品信息的自动化采集、存储、分析和可视化展示。文章从系统架构设计、关键技术实现、核心代码解析等方面进行了全面阐述,并提供了完整的代码实现。该系统不仅适用于毕业设计,也可作为商业价格监控系统的原型。关键词:Python爬虫;电商数据采集;价格监控;Scrapy;Selenium;

2201_76125261的博客 963

总结:Springboot启动流程

一、总结 1、关于SpringApplication SpringBoot的启动主要是通过实例化SpringApplication来启动的。 2、实例化SpringApplication时做了什么? SpringApplication的构造方法做了几件事情: 推断WebApplicationType,主要思想就是在当前的classpath下搜索特定的类 搜索META-INF\spring.factories文件配置的ApplicationContextInitializer的实现类 搜索MET

w2009211777的专栏 1万+

SAP S/4HANA Cloud 管理员业务角色创建实战:基于 SAP_BR_ADMINISTRATOR 模板的一站式指南

摘要:SAP S/4HANA Cloud新系统初始登录时常见Fiori Launchpad无磁贴的问题,这是由于缺乏合适的业务角色分配。本文介绍了通过预交付的SAP_BR_ADMINISTRATOR模板创建管理员角色的完整流程,包括业务用户、业务角色和业务目录的核心概念解析。重点说明了直接使用模板的风险,并提供了从模板创建自定义管理员角色的详细步骤(4.1-4.3),以及权限限制设置的注意事项。文中还分享了一个实际项目案例,强调正确配置管理员角色对后续权限体系建设的关键作用。(149字)

2007 年 ~ 2025 年,深耕 SAP 技术 18 年 202

【数字IC验证进阶】正则表达式(Regular Expression)快速入门指南

在芯片开发过程中,正则表达式的使用非常常见。初次上手晦涩难懂,多用几次爱不释手!

悟已往之不谏 知来者之可追 1440

springboot服务启动JMX监控

java应用部署下在生产环境,肯定是少不了监控的,比如说我们想要监控JVM的线程使用情况,内存使用情况等等。

爱琴孩的博客 3228

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

面试题——SpringBoot特点以及启动过程

没有什么面试经验很容易犯的一个错误就是面试官问一个知识点,你只是回答那一个点,没有深度和广度,像简答题一样一两句就回答完毕。这样的回答,面试基本是凉了。 SpringBoot的初衷 它的诞生是为了简化 Spring 框架初始搭建以及开发的过程,使用它可以不再依赖 Spring 应用程序中的 XML 配置,为更快、更高效的开发 Spring 提供更加有力的支持。 SpringBoot的四个特点 特性一:更快速的构建能力 Spring Boot 提供了更多的 Starters 用于快速构建业务框架,S

Certain_的博客 3024

华为的C语言编程规范.pdf

华为技术有限公司内部技术规范。本规范制定了编写C语言程序的基本原则、规则和建议。从代码的清晰、简洁、可测试、安全、程序效率、可移植各个方面对C语言编程作出了具体指导。

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

SpringBoot 入门笔记

为什么要学SpringBoot?因为配置Spring程序(XML、注解、Java配置类、混合用法…)很复杂,很麻烦!SpringBoot可以帮我们干嘛?SpringBoot 能帮我们地创建一个独立的、生产级别的。大多数 SpringBoot 应用只需要编写即Spring 平台以及第三方技术.

weixin_51118573的博客 970

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

【SpringBoot框架篇】13.使用springboot admin对springboot应用进行监控

应用集成adminSpring Boot Admin 对springboot应用进行监控

皓亮君的博客 9177

SpringBoot2源码分析2-启动耗时监控

Springboot启动耗时监控 1、在run方法的第一步执行就是记录启动的耗时 StopWatch stopWatch = new StopWatch(); stopWatch.start(); stopWatch.start()和stopWatch.stop()是成对出现的,这之间的部分就是StopWatch监控的事件,主要用于监控执行时长 2、在stopWatch.stop()执行之后会有一段打印启动日志的代码,我们可以继续跟进,然后看看静静做了些什么 stopWatch.stop(); if

weixin_43159039的博客 1万+

SpringBoot启动时都做了哪些事(二)?

接上一篇[SpringBoot启动时都做了哪些事(一)](https://blog.youkuaiyun.com/J080624/article/details/54949134)后,我们继续分析SpringBoot启动过程流程。 SpringApplication的run方法 ```java public ConfigurableApplicationContext run(String... args) { //实例化监控 StopWatch stopWatch = new StopWatch(); //

小小默:进无止境 3645

【SpringBoot3】应用程序启动监听

应用启动监听在 Spring Boot 和其他框架中扮演着重要的角色。它们的主要作用是在应用启动或关闭时触发特定的操作或任务。

不积跬步无以至千里,不积小流无以成江海。一个喜欢学习分享的程序员 2773

《SpringBoot源码分析》启动流程

源码分析 在SpringApplication.run(SystemmanageApplication.class, args) 入口打个断点,debug进去。 定位到public ConfigurableApplicationContext run(String… args)方法,开始分析吧 public ConfigurableApplicationContext run(String... args) { // 创建并启动计时监控类 StopWatch stopWatch = n

WormholeStack 2706
上一篇: SpringBoot是什么?干嘛用的?(新手入门篇)
下一篇: linux安装docker容器(copy就完了)
指陆为码
博客等级 码龄6年 41粉丝 18原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

指陆为码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值