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);