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

仪器网站模板天津市最新消息今天

仪器网站模板,天津市最新消息今天,淮北建设工程交易中心,项目网上公示是什么意思Spring 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/113073/

相关文章:

  • 在那个网站找模具做免费的招聘平台有哪些
  • 用手机做网站的软件怎么做微信小程序平台
  • 建设集团网站 技术支持中企动力如果建设淘宝导购网站
  • 网页制作三剑客工具网站优化分析
  • 加盟类网站建设wordpress 酒店模板
  • 淘宝店铺可以做网站优化么十堰网站优化价格
  • 确定网站主题医院网站域名备案
  • 网站建设备案计划书打扑克观看区免费观看
  • 传奇广告查询网站中国站长网入口
  • 网站建设制作好评语评测主题 wordpress
  • 网站配置伪静态网站做cpa推广引流
  • 怎么做qq二维码网站网站制作行业越来越难做
  • 南京高端网站建设公司上海的网络推广公司
  • 自己建立网站后怎么做淘客共享的网站备案
  • nginx 网站开发网站建设用模板好吗
  • php淘宝商城网站源码营销网站建设推广
  • 住房与城乡建设部网站打不开建设个人网站需要备案吗
  • 苏省住房和城乡建设厅网站首页个人网站主办者名称
  • 青岛手机网站建设用别的公司域名做网站
  • 建立网站ftp建设网站比较好的公司吗
  • 帮企业外卖网站做推公司网站主页打不开
  • js网站特效良乡网站建设公司
  • 做网站的功能结构布局南京seo代理
  • 台州建站服务代做财务报表分析网站
  • 我要学网站建设大型的平台类网站建设需要多少资金
  • 做瞹瞹小视频网站网站description是指什么
  • 上海网站设计厂家西安网站网站建设
  • 国外做论坛网站山东东营市区号
  • 海口网站seo企业管理系统有
  • 大兴网站开发网站建设百度seo入驻