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

如何创建个人博客网站能找本地人做导游的网站

如何创建个人博客网站,能找本地人做导游的网站,wordpress实例,下载了字体如何安装在wordpressSpring Boot 项目启动后自动加载系统配置的多种实现方式 在 Spring Boot 项目中,可以通过以下几种方式实现 在项目启动完成后自动加载系统配置缓存操作 的需求: 1. 使用 CommandLineRunner CommandLineRunner 是一个接口,可以用来在 Spring…

Spring Boot 项目启动后自动加载系统配置的多种实现方式

在 Spring Boot 项目中,可以通过以下几种方式实现 在项目启动完成后自动加载系统配置缓存操作 的需求:


1. 使用 CommandLineRunner

CommandLineRunner 是一个接口,可以用来在 Spring Boot 应用启动后立即执行一些逻辑代码。

实现方式:
import org.springframework.boot.CommandLineRunner;
import org.springframework.stereotype.Component;@Component
public class SystemConfigLoader implements CommandLineRunner {@Overridepublic void run(String... args) throws Exception {// 在这里加载系统配置缓存System.out.println("项目启动完成,开始加载系统配置...");// 模拟加载配置操作loadSystemConfig();}private void loadSystemConfig() {// 假设从数据库中加载配置System.out.println("系统配置加载成功!");}
}

2. 使用 ApplicationRunner

ApplicationRunnerCommandLineRunner 类似,但支持接收一个 ApplicationArguments 对象,用于更灵活地处理传入参数。

实现方式:
import org.springframework.boot.ApplicationArguments;
import org.springframework.boot.ApplicationRunner;
import org.springframework.stereotype.Component;@Component
public class SystemConfigLoader implements ApplicationRunner {@Overridepublic void run(ApplicationArguments args) throws Exception {// 在这里加载系统配置缓存System.out.println("项目启动完成,开始加载系统配置...");loadSystemConfig();}private void loadSystemConfig() {// 假设从数据库中加载配置System.out.println("系统配置加载成功!");}
}

3. 使用 @EventListener 监听 ApplicationReadyEvent

通过监听 ApplicationReadyEvent,可以在 Spring Boot 完成所有启动流程后执行逻辑。

实现方式:
import org.springframework.context.event.ContextRefreshedEvent;
import org.springframework.context.event.EventListener;
import org.springframework.stereotype.Component;@Component
public class SystemConfigLoader {@EventListener(ApplicationReadyEvent.class)public void onApplicationReady() {// 在项目启动完成后加载系统配置System.out.println("项目启动完成,开始加载系统配置...");loadSystemConfig();}private void loadSystemConfig() {// 假设从数据库中加载配置System.out.println("系统配置加载成功!");}
}

4. 使用 @PostConstruct 注解

@PostConstruct 注解会在 Bean 初始化后执行,但其执行时机稍早于项目完全启动完成,因此需要配合延时操作来确保项目完全启动后再执行。

实现方式:
import jakarta.annotation.PostConstruct;
import org.springframework.stereotype.Component;@Component
public class SystemConfigLoader {@PostConstructpublic void init() {// 延时加载以确保项目完全启动new Thread(() -> {try {Thread.sleep(2000); // 模拟延时System.out.println("项目启动完成,开始加载系统配置...");loadSystemConfig();} catch (InterruptedException e) {Thread.currentThread().interrupt();}}).start();}private void loadSystemConfig() {// 假设从数据库中加载配置System.out.println("系统配置加载成功!");}
}

5. 使用 SmartLifecycle 接口

SmartLifecycle 提供了更灵活的控制,可以控制代码的启动和停止时机。

实现方式:
import org.springframework.context.SmartLifecycle;
import org.springframework.stereotype.Component;@Component
public class SystemConfigLoader implements SmartLifecycle {private boolean running = false;@Overridepublic void start() {// 项目启动完成后执行逻辑System.out.println("项目启动完成,开始加载系统配置...");loadSystemConfig();running = true;}@Overridepublic void stop() {// 停止逻辑(可选)System.out.println("项目停止时执行清理工作...");}@Overridepublic boolean isRunning() {return running;}private void loadSystemConfig() {// 模拟加载配置操作System.out.println("系统配置加载成功!");}
}

对比与推荐

  1. 简单场景:

    • 推荐使用 CommandLineRunnerApplicationRunner,实现简单且清晰。
  2. 更灵活的监听启动事件:

    • 推荐使用 @EventListener 监听 ApplicationReadyEvent,可以确保所有 Bean 初始化完成。
  3. 需要更细粒度的控制:

    • 使用 SmartLifecycle 提供更灵活的控制。
http://www.yayakq.cn/news/314170/

相关文章:

  • 手机上传视频网站开发推广计划表
  • 山东济南市网站建设建站到网站收录到优化
  • 网站的域名怎么看做照片用的视频模板下载网站好
  • 福田企业网站建设玩家世界网站建设
  • 买东西在什么网站最好设计室内效果图设计
  • 国家工商网站查询黄骅市医院
  • 大连建设主管部门官方网站wordpress不同背景
  • 建一个网站互联网保险新规
  • 相亲网与做网站手把手教你建网站
  • 网站服务器放置地网站建设公司违法
  • 如何在交易网站做电子印章wordpress 安装ssl
  • 专业的无锡网站建设小型的企业网站
  • 做cg的网站如何做网页游戏
  • 建设一个网站最低消费如何学剪辑视频教程
  • 大连做网站哪里好网站无内容 备案
  • 盘锦做网站建设的wordpress 搞笑网站
  • 乐清市做淘宝网站公司怎么申请小程序
  • 哪家做的网站有利于百度推广免费查公司信息的网站
  • 成都新都建设银行网站凡科网站的ftp
  • 怎么做网站营销为什么招聘网站做不大
  • 上海网站建设哪家服务好wordpress查询置顶文章
  • 网站建设毕业设计引言怎么写wordpress的漫画主题
  • 网站制作内容广州网站开发学校
  • 网站建设 策划方案书中国英文政务网站建设
  • 什么值得买wordpress主题鹤壁网站seo
  • 网站建设询价文件北京高级网站建设
  • 秦皇岛建设网站公司北京平面设计公司有哪些国企
  • php外贸网站源码石家庄建站系统
  • 网站建设调研背景什么是网络营销企业
  • 华强北网站建设网页内容编辑