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))
  • 相关阅读:
    runtime iOS 运行时机制
    iOS 文件操作
    responseCode 状态吗查询
    iOS常用宏定义
    Block里用self造成循环引用
    iOS Block全面分析
    OC与Swift混编
    iOS打包app发给测试人员测试
    Swift UITextField
    sqilite学习
  • 原文地址:https://www.cnblogs.com/yaoyuan2/p/11704943.html
Copyright © 2011-2022 走看看