springapplicationevent_Spring bean

springapplicationevent_Spring bean相信使用过SpringBoot的开发人员,都对SpringBoot的核心模块中提供的SpringApplication类不陌生。SpringApplication类的run()方法往往在Spring应用的入口类中被调用,以启动Spring应用。1.Spring应用的入口类与SpringApplication类1)Spring应用的入口类Spring应用的入口类是Spring应用的配置起点,是配置Spring上下文的起点,往往使用了@SpringBootApplication或@EnableA

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全系列IDE使用 1年只要46元 售后保障 童叟无欺

相信使用过Spring Boot的开发人员,都对Spring Boot的核心模块中提供的SpringApplication类不陌生。SpringApplication类的run()方法往往在Spring应用的入口类中被调用,以启动Spring应用。

1.Spring应用的入口类与SpringApplication类
1) Spring应用的入口类

Spring应用的入口类是Spring应用的配置起点,是配置Spring上下文的起点,往往使用了@SpringBootApplication或@EnableAutoConfiguration等标注类。

在Spring应用的入口类中往往只有一个main()方法,这虽然与标准的Java应用保持了一致,但在有些时候会让开发人员觉得困惑。

在Spring应用的入口类中的main()方法中,往往只是简单地调用Spring Boot的SpringApplication类的run()方法,以启动该Spring应用。

SpringApplication.run(MySpringConfigurationApp.class, args);

其中,第一个参数MySpringConfigurationApp.class就是Spring应用的入口类;第二个参数args是启动Spring应用的命令行参数,该参数可以在Spring应用中被访问(稍后详解)。

2) Spring Boot的SpringApplication类

Spring Boot的SpringApplication类,用以启动一个Spring应用,实质上是为Spring应用创建并初始化Spring上下文。

SpringApplication类的run()方法默认返回一个ConfigurableApplicationContext对象。

2. SpringApplication类的其他配置

banner.txt以定制启动LOGO
禁用LOGO
SpringApplication app = new SpringApplication(MySpringConfigurationApp.class);
app.setBannerMode(Banner.Mode.OFF);
app.run(args);

启动过程中的可监听事件
ApplicationStartingEvent
ApplicationEnvironmentPreparedEvent
ApplicationPreparedEvent
ApplicationReadyEvent或ApplicationFailedEvent
3. 增强SpringApplication类的CommandLineRunner接口或ApplicationRunner接口

启动Spring应用后,如果还想进一步执行其他代码,可以定义Spring bean类以实现CommandLineRunner接口或ApplicationRunner接口。

CommandLineRunner接口或ApplicationRunner接口都只提供了唯一的run()方法,该方法将在SpringApplication.run()方法执行结束前被调用。

1) CommandLineRunner接口能够以String数组的形式访问Spring应用的启动参数args

@Component
public class MyBean implements CommandLineRunner {

    public void run(String… args) {

        // Do something…
    }
}

2) ApplicationRunner接口能够以ApplicationArguments的形式访问应用的参数args

@Component
public class MyBean implements ApplicationRunner{

    public void run(ApplicationArguments args) {

        // Do something…
    }
}

4. 在Spring bean中,通过构造函数访问Spring应用的启动参数args
@Component
public class MyBean {

  @Autowired
  public MyBean(ApplicationArguments args) {

    boolean debug = args.containsOption(“debug”);//参数作为命令行中的一个option,如–debug
    List<String> files = args.getNonOptionArgs();
    // 如果启动参数”–debug logfile.txt”,
    // 则debug=true, files=[“logfile.txt”]
  }
}
 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/197640.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • win10修改ntp服务器地址,win10怎么设置ntp服务器地址

    win10修改ntp服务器地址,win10怎么设置ntp服务器地址win10怎么设置ntp服务器地址内容精选换一换以NTP服务器、DNS服务器的操作系统均为SUSE为例:登录Linux弹性云服务器。执行以下命令,切换至root用户。sudosu-sudosu-执行以下命令,编辑ntp.conf文件。vim/etc/ntp.confvim/etc/ntp.conf添加以下语句,配置NTP服务器。serverNTP服务器域名或IP地址示例:有,该NT…

    2022年6月10日
    68
  • 怎么完全卸载赛门铁克_如何干净彻底卸载诺顿?

    怎么完全卸载赛门铁克_如何干净彻底卸载诺顿?诺顿有那么难卸载吗?我来教你如何彻底卸载诺顿!本方法跟重装的新系统差不多,没痕迹!很多朋友都遇到过无法卸载诺顿的问题,其实这是有原因的,因為它和操作系统高度整合,所以很多文件会直接注册到系统中,所以比起一般软件来是难点,但这样可以更好的保护您的系统安全。通过以下的方法可以完全卸载掉诺顿,可以顺利的安装诺顿新版本或者其它的杀毒软件。1.单击【开始】-【控制面板】,打开控制面板窗口,单击【添加删除程…

    2022年6月3日
    46
  • 自制 os 极简教程1:写一个操作系统有多难

    自制 os 极简教程1:写一个操作系统有多难

    2020年11月20日
    223
  • torch mseloss_pytorch conv1d

    torch mseloss_pytorch conv1dMSELOSSCLASStorch.nn.MSELoss(size_average=None,reduce=None,reduction:str=’mean’)创建一个标准来测量输入x和目标y中每个元素之间的均方误差(L2范数平方)。未减少的损失(即reduction设置为’none’)可以描述为:其中N是batchsize.如果reduction不是’none'(默认为’mean’),那么:x和y是任意形状的张量,每个张量总共有n个元素…

    2026年1月19日
    3
  • Idea激活码最新教程2019.3.4版本,永久有效激活码,亲测可用,记得收藏

    Idea激活码最新教程2019.3.4版本,永久有效激活码,亲测可用,记得收藏Idea 激活码教程永久有效 2019 3 4 激活码教程 Windows 版永久激活 持续更新 Idea 激活码 2019 3 4 成功激活

    2025年5月23日
    6
  • 公平洗牌算法_随机洗牌算法

    公平洗牌算法_随机洗牌算法要求:给定一个长度为n的有序数组,要求将其完全打乱,每个元素在任何位置出现的概率均为1/n。随机洗牌算法有好几个,这里讲其中的一个,Fisher-Yatesshuffle算法(时间复杂度为O(n)),其思路如下:(1)从数组中随机选取一个数p。(2)将p与数组中最后(也可以是最前)的元素交换。(如果随机选中的是最后的元素,则相当于没有发生交换)(3)去掉最后的元素(这里并没有删除操作,而是缩小索

    2022年9月21日
    4

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号