Spring Bean添加启动逻辑

  • Spring启动时执行逻辑:
  • Javax的@PostConstruct
  • InitializingBean
  • ApplicationListener
  • @Bean和initMethod
  • Spring Boot为CommanLineRunner
  • Spring Boot ApplicationRunner

启动顺序:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
@Component
@Scope(value = "prototype")
public class AllStrategiesExampleBean implements InitializingBean {

private static final Logger LOG
= Logger.getLogger(AllStrategiesExampleBean.class);

public AllStrategiesExampleBean() {
LOG.info("Constructor");
}

@Override
public void afterPropertiesSet() throws Exception {
LOG.info("InitializingBean");
}

@PostConstruct
public void postConstruct() {
LOG.info("PostConstruct");
}

public void init() {
LOG.info("init-method");
}
}

[main] INFO o.b.startup.AllStrategiesExampleBean - Constructor
[main] INFO o.b.startup.AllStrategiesExampleBean - PostConstruct
[main] INFO o.b.startup.AllStrategiesExampleBean - InitializingBean
[main] INFO o.b.startup.AllStrategiesExampleBean - init-method