1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > SpringBoot通过修改配置文件实现任务定时器的开关控制效果

SpringBoot通过修改配置文件实现任务定时器的开关控制效果

时间:2023-06-10 12:12:25

相关推荐

SpringBoot通过修改配置文件实现任务定时器的开关控制效果

在SpringBoot日常开发中,我们都会想着通过修改properties文件的属性去实现对某一些组件的控制和管理,尤其是对某一个配置类进行控制,此时我们需要用的注解是@ConditionalOnProperty,该注解有三个必要的参数:

①prefix :配置文件中配置信息的前缀;

②name :配置信息的名称;

③havingValue :配置信息的值;

该注解的用法是当配置信息中填写的值该注解设置的值一致,则该类生效,否则视为失效。下面以@Scheduled实现的定时器的开关控制为例进行分析:

首先在application.properties文件中添加:

scheduling.enabled: true

如果是想区分开发环境和生产环境下是否启动,可以在各自的配置文件中加上这句代码,根据需求修改配置属性为false或true.

@Configuration//启用定时任务@EnableScheduling//配置文件读取是否启用此配置@ConditionalOnProperty(prefix = "scheduling", name = "enabled", havingValue = "true")public class TimeCommitTask {/*** 每个月1日的00:00:00自动执行以下代码*/@Scheduled(cron="0 0 0 1 * ? ") //每月一次//cron的参数格式为:“秒 分 时 日 月 年”,详细说法请另行查阅public void timeOutTask() {//code}}

通过以上代码,我们可以看到,如果我们想控制@Scheduled的任务定时器,就在该注解的类名前加上注解,剩下的工作就是修改properties配置文件的scheduling.enabled属性再重启项目就可以生效。

至于@Configuration这个注解,如果当前类是需要设置为一个公共的配置类,就加上它;假如是一个业务逻辑类,则使用@Service也可以,意思是只需把当前类放到Spring容器中进行管理或者扫描到就行。

笔主有在其他博客看到相关的文章,但是没有看到注解具体添加在哪里的问题,故写此文进行提示。

此文仅为笔主学习总结,如有不足请各位读者多多指教!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。