开发者

Spring创建Bean完成后执行指定代码的几种实现方式

开发者 https://www.devze.com 2024-01-31 10:26 出处:网络 作者: 无名_NoOne
目录Spring中Bean创建完成后执行指定代码的几种实现方式1、 实现ApplicationListener接口2、 实现InitializingBean接口3、 使用@PostConstruct注解Spring中Bean创建完成后执行指定代码的几种实现方式
目录
  • Spring中Bean创建完成后执行指定代码的几种实现方式
  • 1、 实现ApplicationListener接口
  • 2、 实现InitializingBean接口
  • 3、 使用@PostConstruct注解

Spring中Bean创建完成后执行指定代码的几种实现方式

在实际开发中经常会遇到在spring容器加载完某个bean之后,需要执行一些业务代码的场景。比如初始化配置、缓存等。有以下几种方式可以实现此需求

1、 实php现ApplicationListener接口

实现ApplicationListener接口并实现方法onApplicationEvent()方法,Bean在创建完成后会执行onApplic编程客栈ationEvent方法

@Component
public class DoByApplicationListener implements ApplicationListener<ContextRefreshedEvent> {
    public DoByApplicationListener() {
        System.out.println("DoByApplicationListener constructor");
    }
    @Override
    public void onApplicationEvent(ContextRefreshedEvent event) {
        if (event.getApplicationContext().getParent() == null) {
            System.out.println("DoByApplicationListener do something");
        }
    }
}

2、 实现InitializingBean接口

实现InitializingBean接口并实现方法afterPropertiesSet(),编程客栈Bean在创建完成后会执行afterPropertiesSet()方法

@Component
public class DoByInitializingBean implements InitializingBean {
    public DoByInitializingBean() {
        System.out.println("DoByInitializingBean constructor");
    }
    @Override
    public void afterPropertiesSet() throws Exception {
        System.out.println("InitByInitializingBean do something");
    }
}编程客栈

3、 使用@PostConstruct注解

在Bean的某个方法上使用@PostConstruct注解,Bean在创建完成后会执行该方法

@Component
public class DoByPostConstructAnnotation {
    public DoByPostConstructAnnotation() {
        System.out.println("DoByPostConstructAnnotation constructor");
    }
    @PostConstruct
    public void init(){
        System.out.println("InitByPostConstructAnnotation do something");
    }
}

转载自:https://segmentfault.com/a/1190000019622443?utm_source=tag-newest

到此这篇关于Spring中Bean创建完成后执行指定代码的几种实现方式的文章就介绍到这了,更多相关Spring Bean创建完成后执行指定代码内容请搜索编程客栈(www.devze.com)以前的文章或继续浏览下面的相关文章希望大家以后多多支持编程客栈(www.cppphpcns.com)!

0

精彩评论

暂无评论...
验证码 换一张
取 消