2012-10-16 175 views
0

我在代码库中找到了这段代码。其实类:通过@Configuration启动Spring应用程序

package my.services.config; 

@Configuration 
@ImportResource("classpath:spring/*.xml") 
@ComponentScan("my.services.jms.server") 
public class MyServicesConfiguration { 
    @Bean 
    public ApplicationLifecycle lifecycle() { 
     return new MyServicesLifecycle(); 
    } 
} 

我想了解: 所以,使用前春全/ * XML文件/豆/而盯着,然后将其注入ApplicationLifecycle豆到Spring上下文(连同来自spring/* xml的其他bean以及来自'my.services.jms.server'包的bean)。所以,最终我们将拥有一个全球上下文(?)

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

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

回答

1

所以,最终我们会与所有豆类(?)一个全球范围内的

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

这就是你如何开始你的上下文从withing main()

ApplicationContext ctx = 
    new AnnotationConfigApplicationContext(MyServicesConfiguration.class); 

及更高版本:

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

啊哈..我得到了。并且可以使用:public AnnotationConfigApplicationContext(String ... basePackages)像参数一样传递路径/包。这正是我所拥有的 – ses

相关问题