kk1*_*957 10 java spring javabeans
我在我的spring应用程序中有一个classX,我希望能够找出所有spring bean是否已经初始化.为此,我正在尝试监听ContextRefreshedEvent.
到目前为止,我有以下代码,但我不确定这是否足够.
import org.springframework.context.ApplicationListener;
import org.springframework.context.event.ContextRefreshedEvent;
public classX implements ApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
//do something if all apps have initialised
}
}
Run Code Online (Sandbox Code Playgroud)
Sot*_*lis 20
A ContextRefreshEvent发生了
当
ApplicationContext初始化或刷新时.
所以你走在正确的轨道上.
您需要做的是为bean声明一个bean定义classX.
使用@Component和组件扫描它所在的包
@Component
public classX implements ApplicationListener<ContextRefreshedEvent> {
@Override
public void onApplicationEvent(ContextRefreshedEvent event) {
//do something if all apps have initialised
}
}
Run Code Online (Sandbox Code Playgroud)
或<bean>声明
<bean class="some.pack.classX"></bean>
Run Code Online (Sandbox Code Playgroud)
Spring将检测bean是否为类型ApplicationListener并在没有任何进一步配置的情况下注册它.
仅供参考,Java具有类型,变量等的命名约定.对于类,约定是使其名称以大写字母字符开头.
Rad*_*FID 13
您可以使用注释驱动的事件侦听器,如下所示:
@Component
public class classX {
@EventListener
public void handleContextRefresh(ContextRefreshedEvent event) {
}
}
Run Code Online (Sandbox Code Playgroud)
要注册的ApplicationListener是在方法的签名中定义的.
| 归档时间: |
|
| 查看次数: |
16670 次 |
| 最近记录: |