zoukankan      html  css  js  c++  java
  • @Component @PostConstruct @Order ApplicationRunner CommandLineRunner

    @Component中static优先于@PostConstruct优先于ApplicationRunner优先于CommandLineRunner
    1. @Component 优先执行
      • @Order可执行执行顺序:数字越小,优先级越高,也就是@Order(1)注解的类会在@Order(2)注解的类之前执行。
        @Order(value=1)
        @Order(value=2)
        @Order(value=3)
      • static 优先执行
      • @PostConstruct 在static完成后执行
    2. @Component implements ApplicationRunner 容器启动完成后 @Component完成后 执行
    3. @Component implements CommandLineRunner 容器启动完成 @Component完成后 ApplicationRunner 完成后 最后执行
    代码示例
    @Component @Order(value = 1) @PostConstruct
    import org.springframework.core.annotation.Order;
    import org.springframework.stereotype.Component;
    import javax.annotation.PostConstruct;
    
    @Component
    @Order(value = 1)
    public class Component1 {
    	
        static {
            System.out.println("
    
    Hello @Component Order1 static
    ");
        }
    	
        @PostConstruct
        public void start() {
            System.out.println("
    
    Hello @Component Order1 @PostConstruct
    ");
        }
    	
    }
    
    @Component @Order(value = 2) @PostConstruct
    import org.springframework.core.annotation.Order;
    import org.springframework.stereotype.Component;
    import javax.annotation.PostConstruct;
    
    @Component
    @Order(value = 2)
    public class Component2 {
    	
        static {
            System.out.println("
    
    Hello @Component Order2 static
    ");
        }
    	
        @PostConstruct
        public void start() {
            System.out.println("
    
    Hello @Component Order2 @PostConstruct
    ");
        }
    	
    }
    
    @Component implements ApplicationRunner
    import org.springframework.boot.ApplicationArguments;
    import org.springframework.boot.ApplicationRunner;
    import org.springframework.stereotype.Component;
    
    @Component
    public class ComponentApplicationRunner implements ApplicationRunner{
    
        @Override
        public void run(ApplicationArguments args){
            System.out.println("
    
    Hello @Component implements ApplicationRunner
    ");
        }
    	
    }
    
    @Component implements CommandLineRunner
    import org.springframework.boot.CommandLineRunner;
    import org.springframework.stereotype.Component;
    
    @Component
    public class ComponentCommandLineRunner implements CommandLineRunner{
    
        @Override
        public void run(String... strings){
            System.out.println("
    
    Hello @Component implements CommandLineRunner
    ");
        }
    	
    }
    
    I have a dream : Sandy beach B-J-N.
  • 相关阅读:
    python-opencv-绘图函数
    sublime下package control安装无效解决
    关于vue.js中slot的理解
    关于vue.js父子组件数据传递
    oAuth2.0及jwt介绍
    nodejs文件上传组件multer使用
    nodejs设置服务端允许跨域
    添加swagger api文档到node服务
    关于for循环里面异步操作的问题
    nodejs记录2——一行代码实现文件下载
  • 原文地址:https://www.cnblogs.com/mjtabu/p/14949390.html
Copyright © 2011-2022 走看看