2.Spring 学习 Bean 初始化方式

1 通过@Bean

@Component
public class MyConfig {

    @Bean(initMethod = "initMethod" ,destroyMethod = "destroyMethod")
    public Code001 code001(){
        return new Code001();
    }
    
}
@Slf4j
public class Code001 {

    public Code001() {
        log.info("生成对象");
    }


    private void initMethod() {
        log.info("初始化对象");
    }

    private void destroyMethod() {
        log.info("销毁对象");
    }
}
@Slf4j
public class Test001 {

    public static void main(String[] args) throws Exception {
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MyConfig.class);
        String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();
        for (String beanDefinitionName : beanDefinitionNames) {
            log.info(beanDefinitionName);
        }
        //Code001 code001 = (Code001) applicationContext.getBean("com.wenhao.springbeanlifecycle.initialization.Code001");
        //Code001 code001 = (Code001) applicationContext.getBean("com.wenhao.springbeanlifecycle.initialization.domain.Code001");
        //System.out.println(code001);
        Code001 code001 = (Code001) applicationContext.getBean("code001");
        System.out.println(code001);
        //code001.destroy();
        //applicationContext.
    }
}

2 通过 实现 InitializingBean, DisposableBean

@Slf4j
public class Code001 implements InitializingBean, DisposableBean {

    public Code001() {
        log.info("生成对象");
    }

    //第二种初始化和销毁方法
    @Override
    public void afterPropertiesSet() throws Exception {
        log.info("初始化对象");
    }

    @Override
    public void destroy() throws Exception {
        log.info("销毁对象");
    }
}
@Component
@Import(Code001.class)
public class MyConfig {

}
@Slf4j
public class Test001 {

    public static void main(String[] args) throws Exception {
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MyConfig.class);
        String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();
        for (String beanDefinitionName : beanDefinitionNames) {
            log.info(beanDefinitionName);
        }
        //Code001 code001 = (Code001) applicationContext.getBean("com.wenhao.springbeanlifecycle.initialization.Code001");
        Code001 code001 = (Code001) applicationContext.getBean("com.wenhao.springbeanlifecycle.initialization.domain.Code001");
        System.out.println(code001);
        //code001.destroy();
        //applicationContext.
    }
}

3 通过 @PostConstruct

@Slf4j
public class Code001 {

    public Code001() {
        log.info("生成对象");
    }


    @PostConstruct
    private void initMethod() {
        log.info("初始化对象");
    }

    @PreDestroy
    private void destroyMethod() {
        log.info("销毁对象");
    }
}
@Component
@Import(Code001.class)
public class MyConfig {


}
@Slf4j
public class Test001 {

    public static void main(String[] args) throws Exception {
        ApplicationContext applicationContext = new AnnotationConfigApplicationContext(MyConfig.class);
        String[] beanDefinitionNames = applicationContext.getBeanDefinitionNames();
        for (String beanDefinitionName : beanDefinitionNames) {
            log.info(beanDefinitionName);
        }
        //Code001 code001 = (Code001) applicationContext.getBean("com.wenhao.springbeanlifecycle.initialization.Code001");
        Code001 code001 = (Code001) applicationContext.getBean("com.wenhao.springbeanlifecycle.initialization.domain.Code001");
        System.out.println(code001);
        //Code001 code001 = (Code001) applicationContext.getBean("code001");
        //System.out.println(code001);
        //code001.destroy();
        //applicationContext.
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值