0

我在我的代码库中找到了这段代码。其实类:

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 的全局上下文(?)

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

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

4

1 回答 1

1

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

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

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

ApplicationContext ctx = 
    new AnnotationConfigApplicationContext(MyServicesConfiguration.class);

然后:

ApplicationLifecycle applicationLifecycle = 
    ctx.getBean(ApplicationLifecycle.class);
于 2012-10-16T20:21:50.653 回答