@@ -36,7 +36,7 @@ public class AnnotationBean {
36
36
37
37
### InitializingBean, DisposableBean 接口
38
38
39
- 还可以实现 ` InitializingBean,DisposableBean ` 这两个接口,也是在初始化已经销毁阶段调用 :
39
+ 还可以实现 ` InitializingBean,DisposableBean ` 这两个接口,也是在初始化以及销毁阶段调用 :
40
40
41
41
``` java
42
42
@Service
@@ -56,7 +56,7 @@ public class SpringLifeCycleService implements InitializingBean,DisposableBean{
56
56
57
57
### 自定义初始化和销毁方法
58
58
59
- 也可以自定义方法用于在初始化、销毁阶段进行调用 :
59
+ 也可以自定义方法用于在初始化、销毁阶段调用 :
60
60
61
61
``` java
62
62
@Configuration
@@ -85,7 +85,7 @@ public class SpringLifeCycle{
85
85
}
86
86
```
87
87
88
- 以上是在 SpringBoot 中可以这样配置,如果是原始的基于 XML 也是可以利用 :
88
+ 以上是在 SpringBoot 中可以这样配置,如果是原始的基于 XML 也是可以使用 :
89
89
90
90
```
91
91
<bean class="com.crossoverjie.spring.SpringLifeCycle" init-method="start" destroy-method="destroy">
@@ -113,23 +113,29 @@ public class SpringLifeCycleAware implements ApplicationContextAware {
113
113
}
114
114
```
115
115
116
- 这样在 ` springLifeCycleAware ` 这个 bean 初始化会就会调用 ` setApplicationContext ` 方法,并可以获得 applicationContext 对象。
116
+ 这样在 ` springLifeCycleAware ` 这个 bean 初始化会就会调用 ` setApplicationContext ` 方法,并可以获得 ` applicationContext ` 对象。
117
117
118
118
### BeanPostProcessor 后处理器
119
119
120
- 也可以实现 BeanPostProcessor 接口,Spring 中所有 bean 在做初始化时都会调用该接口中的两个方法,可以用于对一些特殊的 bean 进行处理:
120
+ 实现 BeanPostProcessor 接口,Spring 中所有 bean 在做初始化时都会调用该接口中的两个方法,可以用于对一些特殊的 bean 进行处理:
121
121
122
122
``` java
123
123
@Component
124
124
public class SpringLifeCycleProcessor implements BeanPostProcessor {
125
125
private final static Logger LOGGER = LoggerFactory . getLogger(SpringLifeCycleProcessor . class);
126
126
@Override
127
127
public Object postProcessBeforeInitialization (Object bean , String beanName ) throws BeansException {
128
+ if (" annotationBean" . equals(beanName)){
129
+ LOGGER . info(" SpringLifeCycleProcessor start beanName={}" ,beanName);
130
+ }
128
131
return bean;
129
132
}
130
133
131
134
@Override
132
135
public Object postProcessAfterInitialization (Object bean , String beanName ) throws BeansException {
136
+ if (" annotationBean" . equals(beanName)){
137
+ LOGGER . info(" SpringLifeCycleProcessor end beanName={}" ,beanName);
138
+ }
133
139
return bean;
134
140
}
135
141
}
0 commit comments