在非Web注释配置的应用程序中初始化Spring

set*_*tec 0 spring annotations applicationcontext

我的java应用程序使用Spring构造型注释(@Controller,@ Component)和autowire注释来管理依赖注入.

它不是Web应用程序,只是简单的jar.它也是基于纯注释的代码,即根本没有xml.

什么是从main方法初始化基于Spring注释的应用程序上下文和默认配置的正确方法?

小智 5

使用@Configuration命名AppConfig,它等同于applicationContext.xml.

@Configuration
public class AppConfig {

  @Bean(initMethod = "init")
  public Foo foo() {
      return new Foo();
  }

  @Bean(destroyMethod = "cleanup")
  public Bar bar() {
      return new Bar();
  }
}
Run Code Online (Sandbox Code Playgroud)

并在main方法中新建一个AnnotationConfigApplicationContext.

public static void main(String[] args) {
  ApplicationContext ctx = new AnnotationConfigApplicationContext(AppConfig.class);
  Foo foo = ctx.getBean(Foo.class);
  //etc
}
Run Code Online (Sandbox Code Playgroud)