zoukankan      html  css  js  c++  java
  • WebServerInitializedEvent &ApplicationRunner

    application.properties

    app.name=yaoyuan2
    app.dept.id=1

    MyConfig.java

    import lombok.AllArgsConstructor;
    import lombok.Data;
    import org.springframework.beans.factory.annotation.Value;
    import org.springframework.context.annotation.Bean;
    import org.springframework.context.annotation.Configuration;
    
    @Configuration
    public class MyConfig {
        @Value("${app.name}")
        public String name;
        @Value("${app.dept.id}")
        public String id;
    
        @Bean
        public Dept getDept() {
            return new Dept(id);
        }
        @Bean
        public User getUser() {
            return new User(name,getDept());
        }
    }
    @Data
    @AllArgsConstructor
    class User {
        private String name;
        private Dept dept;
    }
    @Data
    @AllArgsConstructor
    class Dept {
        private String id;
    }

    初始化:

    @EventListener(WebServerInitializedEvent.class)
    public void onWebServerReady(WebServerInitializedEvent event) {
        System.out.println("1.当前WebServer实现类为:"+event.getWebServer().getClass().getName());
        Object obj = event.getApplicationContext().getBean(User.class);
        System.out.println("获取user对象:"+obj);
    }
    /**
     * 在spring boot应用启动后回调
     * @param context
     * @return
     */
    @Bean
    public ApplicationRunner runner(WebServerApplicationContext context) {
        return args -> {
            System.out.println("2.当前WebServer实现类为:"+context.getWebServer().getClass().getName());
            Object obj = context.getBean(User.class);
            System.out.println("获取user对象:"+obj);
        };
    }

    输出:

    2019-10-19 19:33:11.130  INFO 2312 --- [           main] o.s.b.web.embedded.netty.NettyWebServer  : Netty started on port(s): 8080
    1.当前WebServer实现类为:org.springframework.boot.web.embedded.netty.NettyWebServer
    获取user对象:User(name=yaoyuan2, dept=Dept(id=1))
    2019-10-19 19:33:11.135  INFO 2312 --- [           main] c.e.s.App                                : Started App in 4.57 seconds (JVM running for 5.33)
    2.当前WebServer实现类为:org.springframework.boot.web.embedded.netty.NettyWebServer
    获取user对象:User(name=yaoyuan2, dept=Dept(id=1))
  • 相关阅读:
    YARN架构设计详解
    HDFS文件上传
    HDFS Namenode启动过程
    (转)计算机原理学习(1)-- 冯诺依曼体系和CPU工作原理
    (转)python之from_bytes、to_bytes
    (转)Python3入门之线程threading常用方法
    (转)Python3.5 queue模块详解
    (转) argparse — 解析命令参数和选项
    (转)Python3之pickle模块
    (转)linux用户态和内核态理解
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/11704943.html
Copyright © 2011-2022 走看看