Scheduled定时小记

@Scheduled定时

@Configurable: 为非Spring管理的对象注入Spring Bean。比如:手动new出来的对象,正常情况下,Spring是无法依赖注入的

@Configuration: 该注解是可以用来替代XML文件,即配置类。在配置类中可以在方法上加@Bean注解定义其中的Bean

定时cron表达式需要注意:

  • 正常:1-6分别表示星期一-星期六,而0和7都可以表示星期日。存在于:类Unix系统中的定时任务管理服务cron,Golang的定时任务库cron,Spring-Task等。

  • 反人类:1-7分别表示星期日-星期六,即除1表示星期日外,其余都是数字n表示星期n-1。存在于:Quartz、Oracle Role Manager等。

在spring自带的@Scheduled,它的周几定时注意:1=周一,不是1=周日

@Component
public class CronTest {
    @Scheduled(cron = "0/10 * * ? * 1")
    public static void doSomething(){
        System.out.println("aaa");
    }
}
### 创建和配置 Spring Boot Scheduled 定时任务 #### 启用定时任务支持 为了使定时任务生效,需在项目中的某个配置类上添加 `@EnableScheduling` 注解来开启调度功能。这通常是在主应用类或单独的配置文件中完成。 ```java import org.springframework.context.annotation.Configuration; import org.springframework.scheduling.annotation.EnableScheduling; @Configuration @EnableScheduling public class SchedulerConfig { } ``` 此段代码展示了如何通过引入必要的包并声明带有两个注解的简单 Java 类来激活计划任务的功能[^5]。 #### 编写定时任务方法 接下来定义具体要周期性运行的方法,并在其上方加上 `@Scheduled` 注解指定执行策略: ```java import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; @Component public class MyTask { @Scheduled(cron = "0 * * ? * *") // 每小时整点触发一次 public void performTask() { System.out.println("Executing task at fixed rate"); } } ``` 上述例子说明了一个组件内的实例方法被设置成每个小时的第一分钟被执行;这里采用的是 cron 表达式的格式来进行时间安排[^1]。 #### 添加依赖项 确保项目的构建工具(Maven 或 Gradle)包含了 spring-boot-starter 这一启动器作为依赖,因为这是整个 Spring Boot 生态系统的入口级依赖库,对于集成各种特性至关重要。 对于 Maven 用户来说,在 pom.xml 文件里加入如下片段即可满足条件: ```xml <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter</artifactId> </dependency> ``` 而对于使用 Gradle 的开发者,则应在 build.gradle 中添加相应的行: ```groovy implementation 'org.springframework.boot:spring-boot-starter' ``` 以上步骤涵盖了从准备环境到实际编码实现一个简单的定时作业所需的全部要素[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值