当前位置: 首页 > 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.wangmingla.cn/news/160947.html

相关文章:

  • 网站哪里可以做扬州百度seo
  • 免费图片素材网百度seo多久能优化关键词
  • 网站建设产品图交换友情链接的平台有哪些
  • 网站推广方案及预算爱站工具包的模块
  • 石家庄网站建设多少钱谷歌怎么投放广告
  • 重庆网站建设必选承越百度关键词搜索怎么弄
  • wordpress 如何结合vue济南seo快速霸屏
  • 青海医院网站建设公司免费b站推广网站入口
  • 淄博公司做网站seo建站优化推广
  • 网站建设课程设计总结关键词推广效果
  • 怎么看网站是什么语言做的后台网站建设总结
  • 日本的网页建设网站腾讯企点官网
  • 晋城网站seo百度搜索网站排名
  • css做的简单网站合肥做网站的公司有哪些
  • 上海自适应网站制作品牌软文
  • dw做网站怎么上线湖南网站seo地址
  • 在手机上做网站重庆百度seo公司
  • 网站专题页设计长春关键词优化平台
  • 精品网站建设费用 找磐石网络一流百度网页pc版登录
  • 网站建设前期策划方案网站建设案例
  • 天长两学一做网站长沙seo关键词
  • 西安排名seo公司seo免费自学的网站
  • 昌平做网站公司电销精准客户资源
  • 网页设计是啥意思关键词排名优化公司推荐
  • O2O网站建设需要多少钱seo网络营销推广公司
  • asp网站开发移动端百度邮箱登录入口
  • wordpress发布文章首张图片google移动服务应用优化
  • 泉州网站建设维护网站模板怎么建站
  • 湖南住房和城乡建设网站交友网站有哪些
  • 做网站 视频网络营销官网