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

自己电脑做网站访问快吗域名注册需要什么条件

自己电脑做网站访问快吗,域名注册需要什么条件,wordpress 多域名共享数据库,创建全国文明城市调查问卷目录 使用PostConstruct注解 实现InitializingBean接口 实现CommandLineRunner接口 实现ApplicationRunner接口 使用EventListener注解监听ApplicationReadyEvent事件 应用启动完成之前或者之后,我们需要拿数据库中的一些数据加载到本地缓存中。这些数据一般都…

目录

使用@PostConstruct注解

实现InitializingBean接口

实现CommandLineRunner接口

实现ApplicationRunner接口

使用@EventListener注解监听ApplicationReadyEvent事件


应用启动完成之前或者之后,我们需要拿数据库中的一些数据加载到本地缓存中。这些数据一般都是不经常变更而且有被经常读取的,并且数据量不是很大的。这样操作可以减少一些数据库的压力。下面是我们常用的实现方式,具体的要用那种,看对应各自应用的设计和需求。

使用@PostConstruct注解


在需要加载数据的组件中,可以使用@PostConstruct注解的方法,该方法会在Spring容器初始化该类之后自动调用

import javax.annotation.PostConstruct;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.stereotype.Component;  @Component  
public class CacheInitializer {  @Autowired  private YourRepository yourRepository; // 假设你有一个访问数据库的Repository  @Autowired  private CacheManager cacheManager; // 假设你使用Spring Cache进行缓存管理  @PostConstruct  public void init() {  // 从数据库中获取数据  List<YourData> dataList = yourRepository.findAll();  // 将数据加载到缓存中  dataList.forEach(data -> {  cacheManager.getCache("yourCacheName").put(data.getId(), data);  });  }  
}

实现InitializingBean接口

它只包含一个方法 afterPropertiesSet()。当一个 bean 的所有属性都被 Spring 容器设置之后(即通过依赖注入),afterPropertiesSet() 方法会被自动调用

import org.springframework.beans.factory.InitializingBean;  
import org.springframework.beans.factory.annotation.Autowired;  
import org.springframework.stereotype.Component;  @Component  
public class CacheInitializingBean implements InitializingBean {  @Autowired  private YourRepository yourRepository; // 假设你有一个访问数据库的Repository  @Autowired  private CacheManager cacheManager; // 假设你使用Spring Cache进行缓存管理  @Override  public void afterPropertiesSet() throws Exception {  // 在所有属性被设置之后,执行此方法  // 从数据库中获取数据并加载到缓存中  List<YourData> dataList = yourRepository.findAll();  dataList.forEach(data -> {  cacheManager.getCache("yourCacheName").put(data.getId(), data);  });  }  
}

注:使用 InitializingBean 接口与使用 @PostConstruct 注解的效果类似,但它们在 Spring 生命周期中的调用时机略有不同。@PostConstruct 注解的方法是在依赖注入完成后立即调用,而 InitializingBean 的 afterPropertiesSet() 方法则是在所有属性被设置之后调用。在大多数情况下,这两个选项可以互换使用,具体选择哪个取决于你的个人喜好和项目需求。

实现CommandLineRunner接口


CommandLineRunner接口提供了一个run方法,该方法会在Spring Boot应用启动后立即执行。

import org.springframework.boot.CommandLineRunner;  
import org.springframework.stereotype.Component;  @Component  
public class CacheRunner implements CommandLineRunner {  @Autowired  private YourRepository yourRepository;  @Autowired  private CacheManager cacheManager;  @Override  public void run(String... args) throws Exception {  // 从数据库中获取数据并加载到缓存中  List<YourData> dataList = yourRepository.findAll();  dataList.forEach(data -> {  cacheManager.getCache("yourCacheName").put(data.getId(), data);  });  }  
}

实现ApplicationRunner接口


ApplicationRunner接口类似于CommandLineRunner,但提供了更灵活的参数处理方式

import org.springframework.boot.ApplicationArguments;  
import org.springframework.boot.ApplicationRunner;  
import org.springframework.stereotype.Component;  @Component  
public class CacheApplicationRunner implements ApplicationRunner {  @Autowired  private YourRepository yourRepository;  @Autowired  private CacheManager cacheManager;  @Override  public void run(ApplicationArguments args) throws Exception {  // 从数据库中获取数据并加载到缓存中  List<YourData> dataList = yourRepository.findAll();  dataList.forEach(data -> {  cacheManager.getCache("yourCacheName").put(data.getId(), data);  });  }  
}

使用@EventListener注解监听ApplicationReadyEvent事件


Spring Boot在启动完成后会发布一个ApplicationReadyEvent事件,你可以监听这个事件并在事件触发时执行加载数据的逻辑。

import org.springframework.boot.context.event.ApplicationReadyEvent;  
import org.springframework.context.event.EventListener;  
import org.springframework.stereotype.Component;  @Component  
public class CacheInitializer {  @Autowired  private YourRepository yourRepository;  @Autowired  private CacheManager cacheManager;  @EventListener(ApplicationReadyEvent.class)  public void onApplicationReadyEvent() {  // 从数据库中获取数据并加载到缓存中  List<YourData> dataList = yourRepository.findAll();  dataList.forEach(data -> {  cacheManager.getCache("yourCacheName").put(data.getId(), data);  });  }  
}

需要注意的是,加载数据的操作应该尽可能快地完成,避免延迟应用的启动时间。如果加载数据量非常大,你可能需要考虑异步加载或延迟加载的策略。

http://www.dt0577.cn/news/18425.html

相关文章:

  • 北京企业网站建设费用产品经理培训
  • 宁波网站建设培训公司产品怎样网上推广
  • 常州市网站建设徐州网站关键词排名
  • 石家庄做网站哪家好推广一般收多少钱
  • 学网站建设与管理有用吗吸引人的微信软文
  • 哪些网站可以做花店推广爱站seo
  • 仿制网站侵权吗sem培训学校
  • 英文网站怎么做产品推广软文500字
  • 安卓手机做网站班级优化大师手机版下载
  • 聊城做网站的公司资讯网站维护主要做什么
  • 虎门公司网站建设淘宝关键词指数
  • 那里可以做工作室做网站网络平台怎么推广
  • 企业网站首页效果图设计与制作灰色行业关键词推广
  • 无锡网站建设公司怎么样网页制作公司
  • 遵义网约车武汉seo公司哪家好
  • 只做鱼网站网站seo关键词设置
  • 门户网站 开发注意北京seo关键词优化外包
  • 唐山网站建设最好的淘数据
  • 自己建设企业网站爱战网关键词挖掘查询工具
  • 广东企业微信网站建设优化师是干嘛的
  • 自己做电影网站犯法吗长沙做网络推广公司的
  • 做徽章标牌的企业网站上海关键词推广
  • 网站建设好后的手续交接seo快速排名培训
  • 校园网站做等级保护百度广告运营
  • 几个网站一个空间 怎么做邮箱竞价推广员月挣多少
  • 国土资源和建设部网站长尾关键词排名系统
  • 潍坊营销型网站建设怎么创建网站的快捷方式
  • 杭州网站建设seo优化营销制作山东网络优化公司排名
  • wordpress 类似建站2345网址导航官网下载安装
  • 苏宁易购电商网站建设需求分析app推广公司