Hackforge Academy

Category: java

cron job in spring boot

Published on 06 Apr 2026

Explanation

Cron is a time-based scheduler used to execute tasks automatically at specific intervals such as every minute, daily at 9 AM, or every Monday. In Spring Boot, cron jobs are implemented using the @Scheduled annotation.

Code:

@Scheduled(cron = "0 */1 * * * *")
public void runTask() {
    System.out.println("Runs every 1 minute");
}

Explanation

To enable cron scheduling in Spring Boot, you must add @EnableScheduling annotation in the main application class. Without this, scheduled tasks will not execute.

Code:

@SpringBootApplication
@EnableScheduling
public class DemoApplication {
    public static void main(String[] args) {
        SpringApplication.run(
DemoApplication.class, args);
    }
}

Explanation

A scheduled task is created inside a Spring component class using @Scheduled annotation with a cron expression that defines execution timing.

Code:

@Component
public class MyScheduler {

    @Scheduled(cron = "0 */5 * * * *")
    public void executeTask() {
        System.out.println("Runs every 5 
minutes");
    }
}

Explanation

Cron expressions in Spring Boot contain 6 fields: second, minute, hour, day of month, month, and day of week. Example below runs daily at 9 AM.

Code:

@Scheduled(cron = "0 0 9 * * *")
public void dailyTask() {
    System.out.println("Runs every day
 at 9 AM");
}

Explanation

Instead of hardcoding cron expressions, it is recommended to store them inside application.properties for flexibility and easier updates without modifying source code.

Code:

// application.properties
scheduler.cron=0 0 10 * * *

// Scheduler class
@Scheduled(cron = "${scheduler.cron}")
public void scheduledTask() {
    System.out.println("Runs daily at 10 AM");
}

Explanation

Cron scheduling is useful for background automation tasks such as sending emails, generating reports, cleaning logs, or notifying students about certificates in training platforms like yours πŸŽ“.

Code:

@Component
public class CertificateScheduler {

    @Scheduled(cron = "0 0 8 * * *")
    public void sendCertificates() {
        System.out.println("Sending 
certificates automatically at 8 AM");
    }
}

πŸš€ Learn Spring Boot with real-world projects

πŸ’‘ Build REST APIs step by step

🧠 Improve backend development skills

🎯 Get career-ready practical training

Join Our Free WhatsApp Community

Direct access to niche-specific mentors and peers on WhatsApp.

🐍

Python Community

Discuss Django, FastAPI, AI integration, and automation scripts with 15k+ developers.

Join Python Community
βš›οΈ

React Community

Master Next.js, Framer Motion, and State Management. Share your latest UI components.

Join React Community
β˜•

Java Community

Deep dives into Spring Boot, Microservices architecture, and high-performance backend ops.

Join Java Community