国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當前位置: 首頁 > news >正文

自己電腦做網站訪問快嗎小時seo百度關鍵詞點擊器

自己電腦做網站訪問快嗎,小時seo百度關鍵詞點擊器,泊頭哪給做網站的好,wordpress ppt目錄 使用PostConstruct注解 實現(xiàn)InitializingBean接口 實現(xiàn)CommandLineRunner接口 實現(xiàn)ApplicationRunner接口 使用EventListener注解監(jiān)聽ApplicationReadyEvent事件 應用啟動完成之前或者之后,我們需要拿數(shù)據庫中的一些數(shù)據加載到本地緩存中。這些數(shù)據一般都…

目錄

使用@PostConstruct注解

實現(xiàn)InitializingBean接口

實現(xiàn)CommandLineRunner接口

實現(xiàn)ApplicationRunner接口

使用@EventListener注解監(jiān)聽ApplicationReadyEvent事件


應用啟動完成之前或者之后,我們需要拿數(shù)據庫中的一些數(shù)據加載到本地緩存中。這些數(shù)據一般都是不經常變更而且有被經常讀取的,并且數(shù)據量不是很大的。這樣操作可以減少一些數(shù)據庫的壓力。下面是我們常用的實現(xiàn)方式,具體的要用那種,看對應各自應用的設計和需求。

使用@PostConstruct注解


在需要加載數(shù)據的組件中,可以使用@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; // 假設你有一個訪問數(shù)據庫的Repository  @Autowired  private CacheManager cacheManager; // 假設你使用Spring Cache進行緩存管理  @PostConstruct  public void init() {  // 從數(shù)據庫中獲取數(shù)據  List<YourData> dataList = yourRepository.findAll();  // 將數(shù)據加載到緩存中  dataList.forEach(data -> {  cacheManager.getCache("yourCacheName").put(data.getId(), data);  });  }  
}

實現(xiàn)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; // 假設你有一個訪問數(shù)據庫的Repository  @Autowired  private CacheManager cacheManager; // 假設你使用Spring Cache進行緩存管理  @Override  public void afterPropertiesSet() throws Exception {  // 在所有屬性被設置之后,執(zhí)行此方法  // 從數(shù)據庫中獲取數(shù)據并加載到緩存中  List<YourData> dataList = yourRepository.findAll();  dataList.forEach(data -> {  cacheManager.getCache("yourCacheName").put(data.getId(), data);  });  }  
}

注:使用?InitializingBean?接口與使用?@PostConstruct?注解的效果類似,但它們在 Spring 生命周期中的調用時機略有不同。@PostConstruct?注解的方法是在依賴注入完成后立即調用,而?InitializingBean?的?afterPropertiesSet()?方法則是在所有屬性被設置之后調用。在大多數(shù)情況下,這兩個選項可以互換使用,具體選擇哪個取決于你的個人喜好和項目需求。

實現(xiàn)CommandLineRunner接口


CommandLineRunner接口提供了一個run方法,該方法會在Spring Boot應用啟動后立即執(zhí)行。

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 {  // 從數(shù)據庫中獲取數(shù)據并加載到緩存中  List<YourData> dataList = yourRepository.findAll();  dataList.forEach(data -> {  cacheManager.getCache("yourCacheName").put(data.getId(), data);  });  }  
}

實現(xiàn)ApplicationRunner接口


ApplicationRunner接口類似于CommandLineRunner,但提供了更靈活的參數(shù)處理方式

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 {  // 從數(shù)據庫中獲取數(shù)據并加載到緩存中  List<YourData> dataList = yourRepository.findAll();  dataList.forEach(data -> {  cacheManager.getCache("yourCacheName").put(data.getId(), data);  });  }  
}

使用@EventListener注解監(jiān)聽ApplicationReadyEvent事件


Spring Boot在啟動完成后會發(fā)布一個ApplicationReadyEvent事件,你可以監(jiān)聽這個事件并在事件觸發(fā)時執(zhí)行加載數(shù)據的邏輯。

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() {  // 從數(shù)據庫中獲取數(shù)據并加載到緩存中  List<YourData> dataList = yourRepository.findAll();  dataList.forEach(data -> {  cacheManager.getCache("yourCacheName").put(data.getId(), data);  });  }  
}

需要注意的是,加載數(shù)據的操作應該盡可能快地完成,避免延遲應用的啟動時間。如果加載數(shù)據量非常大,你可能需要考慮異步加載或延遲加載的策略。

http://m.aloenet.com.cn/news/34310.html

相關文章:

  • 怎么做百度seo網站百度官方網站首頁
  • 企業(yè)綜合查詢網站網站制作出名的公司
  • wordpress通知搜索引擎收錄seo是誰
  • 室內設計師做單網站無線網絡優(yōu)化是做什么的
  • 以橙色為主的網站網頁一鍵生成app軟件
  • 蘭州網絡推廣效果關于seo的行業(yè)崗位有哪些
  • wordpress contactusseo文章
  • 新手php網站建設微博上如何做網站推廣
  • 網站建設設計制作方案與價格seo資訊
  • 網站建設活動計劃seo軟件排行榜前十名
  • 網站備案 網址營銷助手
  • 冠縣做網站推廣3d建模培訓學校哪家好
  • 企業(yè)網站建設合同書標準版湖南疫情最新情況
  • 計算機科學專業(yè)就業(yè)方向石家莊seo報價
  • 網站備案是 備案空間嗎考試培訓
  • 怎樣做自己的銷售網站6草根seo視頻大全網站
  • 機械設備網優(yōu)化內容
  • 網站建設方案及報價單seo外包優(yōu)化網站
  • 服務器怎么發(fā)布網站國際新聞最新消息十條
  • php動態(tài)網站開發(fā)實例教程第2版域名查詢138ip
  • 怎樣做電商網站社群營銷案例
  • 法人變更在哪個網站做公示重慶森林為什么不能看
  • 知名的網站制作武漢網絡推廣優(yōu)化
  • bazien wordpress旅游企業(yè)seo官網分析報告
  • php商城網站建設多少錢百度推廣營銷怎么做
  • 織夢整形醫(yī)院網站開發(fā)江門網站優(yōu)化公司
  • 駕校網站建設關鍵詞北京網站優(yōu)化哪家好
  • java做網站與php做網站鏈接提交
  • 開個網站做上海關鍵詞優(yōu)化推薦
  • 知名網站建設查排名官網