一,如下代碼,
package com.boot.enable.bootenable; import org.springframework.scheduling.annotation.Async; import org.springframework.stereotype.Component; import java.util.concurrent.TimeUnit; @Component("RunnableDemo") public class RunnableDemo implements Runnable { @Override @Async // 異步方式執行方法 public void run() { for(int i=0;i<5;i++) { System.out.println(i); try { TimeUnit.SECONDS.sleep(1); } catch (InterruptedException e) { e.printStackTrace(); } } } }
package com.boot.enable.bootenable; import org.springframework.stereotype.Component; @Component("RunnableDemo2") public class RunnableDemo2 implements Runnable { public void run() { for (int i=6;i<10;i++) { System.out.println(i); } } }
package com.boot.enable.bootenable; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.context.ConfigurableApplicationContext; @SpringBootApplication public class BootEnableApplication { public static void main(String[] arg) { ConfigurableApplicationContext context = SpringApplication.run(BootEnableApplication.class); Runnable bean = context.getBean("RunnableDemo", Runnable.class); System.out.println("start"); bean.run(); System.out.println("end"); } }
二,可以運行,不寫JAVA重寫不需要@override,編譯也是通過的,那個是注解,是給編譯器看的,告訴編譯器我下面寫的代碼是重寫方法,讓編譯器檢查,執行的時候不會執行注解代碼