Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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 通过@Configuration启动Spring应用程序_Java_Spring_Bootstrapping_Applicationcontext - Fatal编程技术网

Java 通过@Configuration启动Spring应用程序

Java 通过@Configuration启动Spring应用程序,java,spring,bootstrapping,applicationcontext,Java,Spring,Bootstrapping,Applicationcontext,我在我的代码库中找到了这段代码。实际上,课堂上: package my.services.config; @Configuration @ImportResource("classpath:spring/*.xml") @ComponentScan("my.services.jms.server") public class MyServicesConfiguration { @Bean public ApplicationLifecycle lifecycle() {

我在我的代码库中找到了这段代码。实际上,课堂上:

package my.services.config;

@Configuration
@ImportResource("classpath:spring/*.xml")
@ComponentScan("my.services.jms.server")
public class MyServicesConfiguration {
    @Bean
    public ApplicationLifecycle lifecycle() {
        return new MyServicesLifecycle();
    }   
}
我试图理解: 因此,它在启动之前/启动时使用所有spring/*.xml文件/bean,然后将ApplicationLifecycle bean注入到spring上下文中(以及spring/*xml和'my.services.jms.server'包中的其他bean)。因此,最终我们将拥有一个包含所有bean的全局上下文(?)

问题:如何启动这个应用程序(据我所知,如果这个类只是这个应用程序的一个入口点)

它将是一些主(String[]args){}函数,可以通过'my.services.config'路径启动它,比方说,作为一个参数

因此,最终我们将拥有一个包含所有bean的全局上下文(?)

对。从Spring的角度来看,
@Configuration
类只是定义bean的一种不同方式,相当于XML。Java配置和XML配置都将被合并,并在以后同等对待

这就是使用
main()
从上下文开始的方式:

后来:

ApplicationLifecycle applicationLifecycle = 
    ctx.getBean(ApplicationLifecycle.class);

啊哈。。我知道了。并且可以使用:public AnnotationConfigApplicationContext(String…basePackages)像参数一样传递路径/包。这正是我所拥有的
ApplicationLifecycle applicationLifecycle = 
    ctx.getBean(ApplicationLifecycle.class);