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および'からのBeanとともに) my.services.jms.server'パッケージ)。したがって、最終的には、すべてのBeanを含む1つのグローバルコンテキストが作成されます(?)

質問:このアプリケーションを起動するにはどうすればよいですか(私が理解しているように、このクラスがアプリへの1つのエントリポイントにすぎない場合)。

これは、引数として「my.services.config」パスで起動できるmain(String [] args){}関数になります。

4

1 に答える 1

1

最終的に、すべての Bean (?) を含む 1 つのグローバル コンテキストが作成されます。

それは正しい。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 に答える