spring之order註解
- 2019 年 11 月 26 日
- 筆記
我們今天要分享的是spring框架提供的@Order註解的使用,估計這篇文章的閱讀時間應該在二到三分鐘之間就結束了。
好了,其實這個註解還是蠻常用的,可以控制加載的順序,僅此而已。下面我們還是按照往日的風格進行寫吧,我們先看下我們的示例程序。
package com.wpw.dockerspringboot; public class Student { }
package com.wpw.dockerspringboot; public class Student2 { }
上面就是簡單的定義兩個java類,什麼都不做,為下面需要寫的配置類做下鋪墊而已。
package com.wpw.dockerspringboot; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; @Order(value=1)//這裡指定order的值為1 @Configuration public class Configuration1 { @Bean public Student getStudent(){ System.out.println("configuration1被加載"); return new Student(); } }
上面我們定義了一個配置類,裏面可以獲取Student類的示例,順便打印出了一句表示加載順序的。
package com.wpw.dockerspringboot; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.core.annotation.Order; @Order(value=2)//這裡設置order的值為2 @Configuration public class Configuration2 { @Bean public Student2 getStudent2(){ System.out.println("configuration2被加載了"); return new Student2(); } }
上面同樣定義了一個配置類,主要是為了獲取Student2類的實例,順便打印了一下加載的順序。
ok,到這裡我們只需要啟動下面的主程序。
package com.wpw.dockerspringboot; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; @SpringBootApplication public class DockerSpringbootApplication { public static void main(String[] args) { SpringApplication.run(DockerSpringbootApplication.class, args); } }
我們看下控制台的輸出語句就應該學會了spring提供的order註解的使用了。
2019-11-10 18:33:53.033 INFO 3136 --- [ main] o.s.web.context.ContextLoader : Root WebApplicationContext: initialization completed in 1383 ms configuration1被加載 configuration2被加載了 2019-11-10 18:33:53.211 INFO 3136 --- [ main] o.s.s.concurrent.ThreadPoolTaskExecutor : Initializing ExecutorService 'applicationTaskExecutor'