zoukankan      html  css  js  c++  java
  • 七、【生命周期】注解@Bean

    @Bean(initMethod = "init", destroyMethod = "destroy")方式

    Bean实体

    @Getter
    @Setter
    @ToString
    @AllArgsConstructor
    public class Person {
    
        private String name;
    
        private Integer age;
    
        public Person() {
            System.out.println("person no args constructor process");
        }
    
        public void init () {
            System.out.println("person init method process");
        }
    
        public void destroy () {
            System.out.println("person destroy method process");
        }
    }
    

    配置类

    @Configuration
    public class PersonConfig {
    
        /**
         * 对于单实例Bean
         *      构造方法:在容器初始化过程中,且未赋值的时候执行
         *      init方法:在赋值完成之后执行
         *      destroy方法:在容器关闭的时候执行
         *
         * 对于多实例Bean
         *      在获取Bean的时候才会执行构造方法和init方法
         *      而不会管理destroy方法
         */
        // @Scope("prototype")
        @Bean(initMethod = "init", destroyMethod = "destroy")
        public Person person() {
            return new Person("张三", 13);
        }
    
    }
    

    测试类

    public class MainTest {
    
        @Test
        public void m1() {
            AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(PersonConfig.class);
            System.out.println("······容器初始化完成······");
            Person person = applicationContext.getBean(Person.class);
            applicationContext.close();
        }
    
    }
    
  • 相关阅读:
    随手记
    boost::asio::udp 异步
    boost::asio::tcp 异步
    boost::asio::tcp 同步
    QML::MouseArea
    boost::concurrent::sync_queue
    std::chrono::时钟
    数据结构::队列
    数据结构::栈
    数据结构::线性表
  • 原文地址:https://www.cnblogs.com/zhangjianbing/p/13722299.html
Copyright © 2011-2022 走看看