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.
  • 相关阅读:
    时间转换(scanf的指定格式读入)
    RabbitMQ (五)主题(Topic)
    第01章 概述(1)
    bitmap与2-bitmap使用总结
    MyEclipse开启Jquery智能提示
    开启unity3D的学习之路
    《学习opencv》笔记——基本数据结构,CvMat,矩阵訪问
    使用squid架设自己的代理server
    Android KitKat 4.4平台开发-加入USB ADB和MTP功能支持
    Android:创建可穿戴应用
  • 原文地址:https://www.cnblogs.com/mjtabu/p/14949390.html
Copyright © 2011-2022 走看看