companyModels = companyDao.selectCompanies();
for (CompanyModel company : companyModels) {
companyMap.put(company.getCode(), company);
@PreDestroy
public void destroy() {
//系统运行结束
@Scheduled(cron = "0 0 0/2 * * ?")
public void testOne() {
//每2小时执行一次缓存
init();
//从缓存中获取城市;
Map<String, TownNameDto> cityModelMap = CodeCache.codeMap;
Map<String, CompanyModel> companyModelMap = CodeCache.companyMap;
声明:有写字典数据不会频繁更新,但是会频繁查询,想要减少数据库链接次数,把内容缓存到项目的全局变量中,提高方法查询速度代码:import javax.annotation.PostConstruct;import javax.annotation.PreDestroy;import java.util.HashMap;import java.util.List;imp...
实际应用中,我们会有在
项目
服务启动完成以后去加载一些
数据
或做一些事情(比如
缓存
)这样的需求。
为了解决这样的问题,Spring Boot 为我们提供了一个方法,通过实现接口 CommandLineRunner 来实现。很简单,只需要一个类就可以,无需其他配置。
Spring Boot应用程序在启动后,会遍历CommandLineRunner接口的实例并运行它们的run方法。也可以利用@Order注解(或者实现Order接口)来规定所有Comma
博客地址:https://blog.csdn.net/fukaiit/article/details/92853086
1. 启动后访问http://localhost:8848/code,可见控制台输出codeMap中的值
2. 新建一个只有key和value两个字段的表code
3. 不要轻易浪费积分下载代码,没什么实质内容
这篇文章介绍的是一个jar给不同的客户部署需要改变某些秘钥的值时,可以采用application的
全局变量
来配置,避免多次打包的繁琐。
第一种方式
直接在application.yml里写
test:
niuBi: 芦苇
ceShi: 测试
使用的时候在类里面加上
@Value("${test.niuBi}")
private String niuBi;
@Value("${test.ceShi}")
private String ceShi;
然后就可以直接当做普通变量使用,配
项目
启动时
读取一次
数据
库参数,以后直接使用
新建一个InitDataListener类,实现InitializingBean, ServletContextAware,变量声明为静态全局的,直接使用就可以
import javax.annotation.Resource;
import javax.servlet.ServletContext;
@Service
public class InitDataListener implements InitializingBean, ServletContext
介绍:接下来我会把学习阶段学到的框架等知识点进行整合,每一次整合是在前一章的基础上进行的,所以后面的整合不会重复放前面的代码。每次的demo我放在结尾,本次是接着上一章的内容延续的,只增加新增的或者修改的代码。
上一章是改造整合redis实现启动服务即将热点
数据
保存在全局以及redis中,方便其他接口使用,本章整合quartz框架,实现定时任务的优化,前面整合的定时任务是使用的spring的Scheduled注解方式实现的,本章整合quartz任务调度框架。
Quartz可以用来创建简单或为运行十个,
1.定义全局异常处理类GlobalExceptionHandler
@ControllerAdvice可以用于实现全局异常处理,该注解 用于标注一个类,类中可以定义多个方法,不同的方法处 理不同的异常。
使用@RestControllerAdvice标注类上,该注解包含了@ControllerAdvice功能
使用@ExceptionHandler标注各种异常处理方法
package com.ck.handler;
import com.ck.vo.ReturnResult;
@Controller//在Spring中注册,表示本类是一个控制器类
public class ViewController {
@RequestMapping("toview")//完整路径url http://localhost:8080/toview
public String view(){
有时候我们需要在启动工程的时候,加载一些
数据
,赋值给静态
全局变量
(例如:
数据
字典,配置信息等),这是可以这麽做:
新建class 实现ApplicationRunner 类,重写方法就行了,然后就可以在
项目
任何一个地方使用了
注意:此作用是用于查询
数据
库中配置信息的,且只在启动的时候查一次,如果该参数经常修改建议不要用这种方法。如果
数据
库配置修改了,一定要重新启动该
项目
才能生效
下边是我写...