javaweb项目启动后自动查询数据库并刷新数值
生活随笔
收集整理的這篇文章主要介紹了
javaweb项目启动后自动查询数据库并刷新数值
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
一、使用quartz定時(shí)器
1、通過(guò)反射獲取屬性,然后刷入數(shù)據(jù)
public void flashConfigParam(){//獲取要刷新的類Class<?> clazz = Constants.class;、//獲取數(shù)據(jù)庫(kù)的值List<SysConfig> sysConfigs = getAll();for (SysConfig sc : sysConfigs) {if(sc == null || StringUtils.isBlank(sc.getName())){continue;}try {//獲取類所對(duì)應(yīng)的類的屬性Field field = clazz.getDeclaredField(sc.getName().trim());if(field != null){String type = field.getType().getName();switch (type) {case "java.lang.Boolean":field.set(clazz, Boolean.valueOf("true".equals(sc.getValue())));break;case "java.lang.String":field.set(clazz, sc.getValue());break;case "java.lang.Integer":field.set(clazz, Integer.valueOf(sc.getValue()));break;case "java.lang.Double":field.set(clazz, Double.valueOf(sc.getValue()));break;default:break;}}} catch (Exception e) {logger.error("刷新配置文件SYSCONFIG-->" + sc.getName() + " 異常!", e);}}logger.warn("刷新配置文件SYSCONFIG完成:"+HKDateUtil.formatDateTime(new Date()));}2、配置spring的定時(shí)任務(wù)
<bean id="flashSysConfigJobTrigger" class="org.springframework.scheduling.quartz.SimpleTriggerFactoryBean"><property name="jobDetail"><bean class="org.springframework.scheduling.quartz.MethodInvokingJobDetailFactoryBean"><!--指定調(diào)用的類 --><property name="targetObject"><ref bean="sysConfigService" /></property><!--指定調(diào)用的方法 --><property name="targetMethod"><value>flashConfigParam</value></property></bean></property><!--啟動(dòng)后運(yùn)行 --><property name="startDelay" value="5000"/><property name="repeatInterval" value="500"/><property name="repeatCount" value="0"/><!--間隔5分鐘 --><!--<property name="repeatInterval" value="300000"/>--></bean>二、使用PostConstruct注解
Servlet中增加了兩個(gè)影響Servlet生命周期的注解,@PostConstruct和@PreDestroy
例如:
@PostConstruct修飾的方法會(huì)在服務(wù)器加載Servlet的時(shí)候運(yùn)行,并且只會(huì)被服務(wù)器執(zhí)行一次。PostConstruct在構(gòu)造函數(shù)之后執(zhí)行,init()方法之前執(zhí)行。PreDestroy()方法在destroy()方法知性之后執(zhí)行
spring中的執(zhí)行順序:
@Autowired >> @PostConstruct
總結(jié)
以上是生活随笔為你收集整理的javaweb项目启动后自动查询数据库并刷新数值的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: java面试常见问题
- 下一篇: Mysql数据库设计及常见问题