通过@Configuration启动Spring应用程序

时间:2012-10-16 20:17:23

标签: 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() {
        return new MyServicesLifecycle();
    }   
}

我想了解: 因此,它在开始之前/同时使用所有spring / * .xml文件/ bean,然后将ApplicationLifecycle bean注入spring上下文(以及来自spring / * xml的其他bean以及来自'my.services.jms.server的bean) '包裹)。所以,最后我们将有一个全局上下文与所有bean(?)

问题:如何启动此应用程序(如果我理解这个类只是应用程序的一个入口点)?

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

1 个答案:

答案 0 :(得分:1)

  

所以,最后我们将有一个全局上下文与所有bean(?)

没错。从Spring角度来看@Configuration类只是一种定义bean的不同方式,相当于XML。 Java配置和XML配置都会在以后合并和处理。

这就是你可以通过main()

开始上下文的方式
ApplicationContext ctx = 
    new AnnotationConfigApplicationContext(MyServicesConfiguration.class);

以后:

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