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

潍坊昌乐县城乡建设局网站php网站开发套模板

潍坊昌乐县城乡建设局网站,php网站开发套模板,建立网站需要哪些东西,软件开发工程师的薪资待遇前言: 工作中难免会遇到一些,程序启动之后需要提前执行的需求。 例如: 初始化缓存:在启动时加载必要的缓存数据。定时任务创建或启动:程序启动后创建或启动定时任务。程序启动完成通知:程序启动完成后通…

前言:

工作中难免会遇到一些,程序启动之后需要提前执行的需求。

例如:

  • 初始化缓存:在启动时加载必要的缓存数据。
  • 定时任务创建或启动:程序启动后创建或启动定时任务。
  • 程序启动完成通知:程序启动完成后通过邮件、短信等方式通知运维人员。
  • 外部系统同步:启动后与外部系统同步数据。

下面介绍几种常见方式:

1.使用@PostConstruct注解:

使用@PostConstruct注解可以在Spring容器初始化bean之后立即执行一个方法。这通常用于执行一些初始化任务,如加载配置、初始化资源等。

import org.springframework.stereotype.Component;import javax.annotation.PostConstruct;@Component
public class Test {@PostConstructpublic void init(){System.out.println("Test类先初始化啦>>>>>>>>");}
}

2. 实现CommandLineRunner接口

CommandLineRunner接口允许你定义在Spring Boot应用程序启动后立即运行的方法。这个方法会接收一个字符串数组作为参数,通常用于处理命令行参数。

package com;import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;@Component
public class TestCommandLineRunner implements CommandLineRunner {@Overridepublic void run(String... args) throws Exception {System.out.println("实现CommandLineRunner接口>>>>>>");}
}

3. 实现ApplicationRunner接口

ApplicationRunner接口与CommandLineRunner类似,但它接收的参数是ApplicationArguments类型,提供了更丰富的命令行参数处理功能。这对于需要更复杂的命令行参数解析的情况很有用。

package com;import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;@Component
public class TestApplicationRunner implements ApplicationRunner {@Overridepublic void run(ApplicationArguments args) throws Exception {System.out.println("TestApplicationRunner实现ApplicationRunner接口>>>>>");}
}

4.使用ApplicationListener,或者使用事件注@EventListener

  • ApplicationStartedEvent事件

ApplicationStartedEvent事件在Spring Boot应用程序启动并开始运行,但在任何HTTP服务器启动之前触发。

package com;import org.springframework.boot.context.event.ApplicationStartedEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;@Component
public class TestApplicationListenerStartedEvent implements ApplicationListener<ApplicationStartedEvent> {@Overridepublic void onApplicationEvent(ApplicationStartedEvent applicationStartedEvent) {System.out.println("实现ApplicationListener<ApplicationStartedEvent>接口>>>>>>>>>");}@EventListener(classes = {ApplicationStartedEvent.class})public void ApplicationStartedEvent(){System.out.println("采用事件监听注解@EventListener,监听ApplicationStartedEvent事件");}
}
  • ApplicationReadyEvent事件

ApplicationReadyEvent事件是在所有Spring Boot应用程序启动并且所有HTTP服务器都已经启动并监听端口后发布的事件。

package com;import org.springframework.boot.context.event.ApplicationReadyEvent;
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;@Component
public class TestApplicationListenerReadyEvent implements ApplicationListener<ApplicationReadyEvent> {@Overridepublic void onApplicationEvent(ApplicationReadyEvent applicationReadyEvent) {System.out.println("实现ApplicationListener<ApplicationStartedEvent>接口>>>>>>>>>");}@EventListener(classes = {ApplicationReadyEvent.class})public void ApplicationReadyEvent(){System.out.println("采用事件监听注解@EventListener,监听ApplicationReadyEvent事件");}
}

执行顺序:

Test类先初始化啦>>>>>>>>------------>ApplicationStartedEvent事件<--------------------
采用事件监听注解@EventListener,监听ApplicationStartedEvent事件
实现ApplicationListener<ApplicationStartedEvent>接口>>>>>>>>>
------------>ApplicationStartedEvent事件<--------------------TestApplicationRunner实现ApplicationRunner接口>>>>>TestCommandLineRunner实现CommandLineRunner接口>>>>>>------------>ApplicationReadyEvent事件<--------------------
采用事件监听注解@EventListener,监听ApplicationReadyEvent事件
实现ApplicationListener<ApplicationStartedEvent>接口>>>>>>>>>
------------>ApplicationReadyEvent事件<--------------------

小结:

选择哪种方式取决于你的具体需求,例如是否需要处理命令行参数、是否需要在所有HTTP服务器都启动后执行代码、是否需要异步执行等。在大多数情况下,@PostConstructCommandLineRunnerApplicationRunner和监听ApplicationReadyEvent事件是最常用的方法。一般生产中使用ApplicationRunner、CommandLineRunner,因为其更加灵活。

http://www.yayakq.cn/news/637912/

相关文章:

  • 大连比较好的网站公司我想做网站服务器选用什么
  • 物流公司网站源码公司门户网站该怎么做
  • 怎么使用模板建设网站832贫困地区农副产品网络销售平台
  • 开发网站的流程步骤网站首页模板制作
  • 重庆旅游网站制作公司低代码平台设计
  • 河源市seo网站设计网站开发立项
  • 做做网站需要多少钱时尚杂志网站设计分析
  • 多语种网站制作whois域名查询官网
  • 制作网络网站设计网站软件开发
  • 福州帮人建网站公司免费户型图设计软件
  • 竞拍网站开发wordpress 单一商品主题
  • 西安知名网站建设公司排名app应用公司
  • 红桥集团网站建设企业网站建设的一般要素有
  • 沈阳建设电商网站flash网站开发工具
  • 太原网站建设罗庄区住房和城乡建设局网站
  • 中山币做网站公司开平网站开发
  • 标准网站建设报价网站想自己做怎么弄
  • 北京网站优化软件div做网站排版
  • 网站维护员用来做调查问卷的网站
  • 做网站效果图shop++是什么
  • 网站 优化手机版手机wap版网站制作
  • 建设工程官方网站电子商务专业毕业了从事什么工作
  • 做博客网站什么空间好陕西开龄建设网站
  • 网站未备案或已封禁wordpress安装网站无法
  • 建网站一年要多少钱电子贺卡制作软件app
  • php零基础做网站广西建设厅网站专家申请表
  • wordpress做网站优点电子商务网站经营性icp
  • 延安商城网站开发设计怎样宣传一个网站
  • 翻页大图网站购物网站及app开发
  • 网络公司网站首页图片做教育网站还挣钱吗