use*_*676 4 java spring event-listener spring-boot
我的EventListener注释没有收到任何春季活动.这是我的代码:
@Component
public class ProxyConfig {
public ProxyConfig() {
System.out.println("I can see this in the console");
}
@EventListener
public void onApplicationEvent(ApplicationEnvironmentPreparedEvent event) {
System.out.println("WON'T WORK :-("); // FIXME
}
@EventListener
public void test(ApplicationStartedEvent event) {
System.out.println("WON'T WORK :-("); // FIXME
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的Application班级:
@SpringBootApplication
public class Application {
public static void main(String[] args) throws Exception {
SpringApplication.run(MyApp.class, args);
}
}
Run Code Online (Sandbox Code Playgroud)
根据https://spring.io/blog/2015/02/11/better-application-events-in-spring-framework-4-2和https://solidsoft.wordpress.com/2015/09/29/注释驱动 - 事件 - 听众 - 在春天4-2 /它必须工作,但它仍然不打印我的"将不工作:-("字符串:(
任何的想法?
谢谢!
您正在侦听的两个事件都是在应用程序生命周期的早期发布的.
ApplicationStartedEvent 一旦启动了SpringApplication,就会尽可能早地发送 - 在环境或ApplicationContext可用之前,但在注册了ApplicationListeners之后".
ApplicationEnvironmentPreparedEvent 发布时"当SpringApplication启动时,环境首次可用于检查和修改."
在这两种情况下,事件发布得太早,无法通过注释和应用程序上下文找到侦听器.正如您所观察到的,您可以使用spring.factories注册您的听众.或者,您可以使用setter方法SpringApplication.
| 归档时间: |
|
| 查看次数: |
4528 次 |
| 最近记录: |