学习成长

提供在线文档,方便大家学习


SpringBoot----CommandLineRunner

<h2>简介:</h2> <pre><code>在使用SpringBoot构建项目时,我们通常有一些预先数据的加载。那么SpringBoot提供了一个简单的方式来实现–CommandLineRunner。CommandLineRunner接口的Component会在spring bean初始化之后,SpringApplication run之前执行,可以控制在项目启动前初始化资源文件,比如初始化线程池,提前加载好加密证书等。</code></pre> <h2>使用:</h2> <pre><code>CommandLineRunner是一个接口,我们需要时,只需实现该接口就行。如果存在多个加载的数据,我们也可以使用@Order注解来排序。-1,1,2,按照最小先执行的规则Run类。</code></pre> <p>案例:</p> <pre><code class="language-java">@Component @Order(-1) public class Run implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("Run"); } }</code></pre> <pre><code class="language-java">@Component @Order(2) public class Run2 implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("Run2"); } }</code></pre> <pre><code class="language-java">@Component @Order(1) public class Run3 implements CommandLineRunner { @Override public void run(String... args) throws Exception { System.out.println("Run3"); } }</code></pre> <pre><code class="language-java">@SpringBootApplication public class Application { public static void main(String[] args) { System.out.println("----------start--------"); SpringApplication.run(Application.class,args); System.out.println("----------end--------"); } }</code></pre> <p>运行效果 (输出在start和end之间,说明CommandLineRunner 的执行时机,是在所有 Spring Beans 都初始化之后,SpringApplication.run() 之前执行,Run,Run3,Run2执行的顺序也是我们@order注解的顺序了)</p> <pre><code class="language-java">----------start-------- Run Run3 Run2 ----------end--------</code></pre>

页面列表

ITEM_HTML