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

哪些做图片赚钱的网站网站建设销售业绩任务

哪些做图片赚钱的网站,网站建设销售业绩任务,音乐做音基题网站,电子商务平台的功能有哪些目录 使用PostConstruct注解 实现InitializingBean接口 实现CommandLineRunner接口 实现ApplicationRunner接口 使用EventListener注解监听ApplicationReadyEvent事件 应用启动完成之前或者之后#xff0c;我们需要拿数据库中的一些数据加载到本地缓存中。这些数据一般都…目录 使用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() { // 从数据库中获取数据 ListYourData 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 { // 在所有属性被设置之后执行此方法 // 从数据库中获取数据并加载到缓存中 ListYourData 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 { // 从数据库中获取数据并加载到缓存中 ListYourData 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 { // 从数据库中获取数据并加载到缓存中 ListYourData 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() { // 从数据库中获取数据并加载到缓存中 ListYourData dataList yourRepository.findAll(); dataList.forEach(data - { cacheManager.getCache(yourCacheName).put(data.getId(), data); }); } } 需要注意的是加载数据的操作应该尽可能快地完成避免延迟应用的启动时间。如果加载数据量非常大你可能需要考虑异步加载或延迟加载的策略。
http://www.w-s-a.com/news/457814/

相关文章:

  • 建立网站 知乎如何做网站的图片滑动块
  • 国外做珠宝的网站有哪些滨湖区建设局官方网站
  • 关于中国幼教网站开发的经验中国建设银行晋中分行网站
  • 挪威网站后缀如何外贸网络推广
  • 外汇交易网站开发仟亿家设计软件好吗亿家
  • 专门教做甜品的网站郑州高新区建设环保局网站
  • 建站公司怎么获客网站建设全网营销
  • 黄石做网站的公司html免费网站模板
  • 做个商城网站怎么做便宜优酷视频网站源码
  • 网站侧边栏导航代码泰兴市住房和建设局网站
  • html网站登录界面模板确定建设电子商务网站目的
  • wordpress 多站点迁移三台网站seo
  • 工信部网站备案文件好网站建设公司地址
  • 怎么做app和网站购物网站单页面怎么做的
  • 西宁专业做网站教育网站建设策划书
  • 个人网站域名怎么起网站建设业务好跑吗
  • 网页设计的网网页设计的网站企业网站怎样做优化
  • 论文中小企业的网站建设域名网站空间
  • 宿迁网站建设联系电话现在出入邯郸最新规定
  • 男女做羞羞的事情网站30岁转行做网站编辑
  • 做企业网站的轻量级cmswordpress 越来越慢
  • 无锡中英文网站建设莱芜网络公司
  • ps软件下载官方网站相关搜索优化软件
  • 世界杯网站源码下载做网站推广代理
  • 用股票代码做网站的wordpress通过标签调用文章
  • iis添加网站ip地址树莓派运行wordpress
  • 网站空间域名多少钱宿迁做网站公司
  • 福州建设企业网站网站交互主要做什么的
  • 英文网站建设方法门户网站特点
  • 腾讯云备案 网站名称萧山城市建设网站