Spring 에서 Bean 생 성 완료 후 지정 한 코드 를 실행 하 는 몇 가지 구현 방식
ApplicationListener 인터페이스 구현
ApplicationListener 인 터 페 이 스 를 실현 하고 방법 onApplicationEvent()방법 을 실현 합 니 다.Bean 은 생 성 이 완료 되면 onApplicationEvent 방법 을 실행 합 니 다.
@Component
public class DoByApplicationListener implements ApplicationListener {
public DoByApplicationListener() {
System.out.println("DoByApplicationListener constructor");
}
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
if (event.getApplicationContext().getParent() == null) {
System.out.println("DoByApplicationListener do something");
}
}
}
InitialingBean 인터페이스 구현
InitialingBean 인 터 페 이 스 를 실현 하고 방법 을 실현 합 니 다.after PropertiesSet(),Bean 은 생 성 이 완료 되면 after PropertiesSet()방법 을 실행 합 니 다.
@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");
}
}
@PostConstruct 주석 사용 하기
빈 의 어떤 방법 에@PostConstruct 주 해 를 사용 하면 빈 은 생 성 이 완료 되면 이 방법 을 실행 합 니 다.
@Component
public class DoByPostConstructAnnotation {
public DoByPostConstructAnnotation() {
System.out.println("DoByPostConstructAnnotation constructor");
}
@PostConstruct
public void init(){
System.out.println("InitByPostConstructAnnotation do something");
}
}
init-method 사용 하기
init-metod 를 사용 하면 Bean 이 생 성 이 끝 난 후에 사용 하 는 방법 을 초기 화 할 수 있 습 니 다.예 를 들 어 Bike 류 가 있 습 니 다.
public class Bike {
public Bike() {
System.out.println("Bike constructor");
}
public void initBike() {
System.out.println("Bike do something");
}
}
@Configuration 주 해 를 사용 하여 용 기 를 시작 하고 Bike 의 초기 화 방법 을 initBike 로 설정 합 니 다.
@Configuration
public class DoByInitMethod {
@Bean(initMethod ="initBike")
public Bike bike() {
return new Bike();
}
}
이상 의 방식 과 코드 는 모두 테스트 실행 되 었 습 니 다.절대 사용 할 수 있 습 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Is Eclipse IDE dying?In 2014 the Eclipse IDE is the leading development environment for Java with a market share of approximately 65%. but ac...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.