Java 弹簧座控制器-启动顺序
我有一个要求,只有在我的应用程序完成启动后,端点才可用 目前,我正在试验Spring应用程序Listener/ContextRefreshedEvent,以便在Spring完成初始化后捕获 有没有办法让它在此时启动我的自定义Rest端点?我尝试使用:Java 弹簧座控制器-启动顺序,java,spring,rest,Java,Spring,Rest,我有一个要求,只有在我的应用程序完成启动后,端点才可用 目前,我正在试验Spring应用程序Listener/ContextRefreshedEvent,以便在Spring完成初始化后捕获 有没有办法让它在此时启动我的自定义Rest端点?我尝试使用: BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ReadinessIndicator.class); beanFactory.registerBean
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ReadinessIndicator.class);
beanFactory.registerBeanDefinition("readinessIndicator", builder.getBeanDefinition());
要在运行时添加bean,但它看起来不像是初始化的。正如Aleksander所说,端点在EE应用程序完成加载后可用。如果要在所有初始化过程之后触发某些操作,可以在拥有main方法的类中对该方法使用
@PostConstruct
注释。范例
@PostConstruct
public void afterInit() {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ReadinessIndicator.class);
beanFactory.registerBeanDefinition("readinessIndicator", builder.getBeanDefinition());
}
正如Aleksander所说,端点在EE应用程序完成加载后可用。如果要在所有初始化过程之后触发某些操作,可以在拥有main方法的类中对该方法使用
@PostConstruct
注释。范例
@PostConstruct
public void afterInit() {
BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ReadinessIndicator.class);
beanFactory.registerBeanDefinition("readinessIndicator", builder.getBeanDefinition());
}
你能再给我一点启发吗?我不怎么使用Spring,但是在应用程序加载完成后,端点就可以使用了,或者在应用程序启动完成后,你有了一些初始化的东西?为什么你认为你的端点在应用程序启动之前是在线的?也许他不想将他的端点类注释为
控制器类,这就是为什么他想在初始化后触发它。你能给我一点更深入的了解吗?我不怎么使用Spring,但是在应用程序加载完成后,端点就可以使用了,或者在应用程序启动完成后,你有了一些初始化的东西?为什么你认为你的端点在应用程序启动之前是在线的?也许他不想将他的端点类注释为控制器类,这就是为什么他想在init之后触发它。使用postcontract
,因为这是个坏主意。。。在创建对象并注入其依赖项时调用。它不会等到整个应用程序启动,而是对那些用例使用ApplicationListener
。。。在创建对象并注入其依赖项时调用。它不会等到整个应用程序启动,而是对这些用例使用ApplicationListener
。