Ekrana Hello World yazan basit bir task aşağıdaki gibidir:
@Component
@Scope("prototype")
public class TestTask implements Runnable{
String name;
public void setName(String name){
this.name = name;
}
@Override
public void run() {
System.out.println("hello world : " + name);
}
}
Bu task'ları çalıştırmak için ThreadPoolTaskExecutor kullanılabilir. Application aşağıdaki gibidir :
@SpringBootApplication
@ComponentScan(basePackages = { "com.fibiler.test.task"})
public class Application {
public static void main(String[] args) {
SpringApplication.run(Application.class, args);
}
@Autowired
TestTask testtask1;
@Autowired
TestTask testtask2;
@Autowired
TestTask testtask3;
@Bean
public ThreadPoolTaskExecutor taskExecutor() {
ThreadPoolTaskExecutor taskExecutor = new ThreadPoolTaskExecutor();
taskExecutor.setMaxPoolSize(10);
taskExecutor.afterPropertiesSet();
testtask1.setName("Task 1");
testtask2.setName("Task 2");
testtask3.setName("Task 3");
taskExecutor.execute(testtask1);
taskExecutor.execute(testtask2);
taskExecutor.execute(testtask3);
return taskExecutor;
}
}
Application'da 3 farklı task yaratılmış ve çalıştırılmıştır. Uygulama çalıştığında ekranda üç farklı Hello World gözükecektir.