2012-10-16 240 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

相關問題