Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/345.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 弹簧座控制器-启动顺序_Java_Spring_Rest - Fatal编程技术网

Java 弹簧座控制器-启动顺序

Java 弹簧座控制器-启动顺序,java,spring,rest,Java,Spring,Rest,我有一个要求,只有在我的应用程序完成启动后,端点才可用 目前,我正在试验Spring应用程序Listener/ContextRefreshedEvent,以便在Spring完成初始化后捕获 有没有办法让它在此时启动我的自定义Rest端点?我尝试使用: BeanDefinitionBuilder builder = BeanDefinitionBuilder.rootBeanDefinition(ReadinessIndicator.class); beanFactory.registerBean

我有一个要求,只有在我的应用程序完成启动后,端点才可用

目前,我正在试验Spring应用程序Listener/ContextRefreshedEvent,以便在Spring完成初始化后捕获

有没有办法让它在此时启动我的自定义Rest端点?我尝试使用:

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