retrieve Bean programmatically

后端 未结 3 1339
有刺的猬
有刺的猬 2020-12-10 12:17
@Configuration
public class MyConfig {
    @Bean(name = \"myObj\")
    public MyObj getMyObj() {
        return new MyObj();
    }
}

I have this My

3条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-12-10 12:39

    Here an Example

    public class MyFancyBean implements ApplicationContextAware {
    
      private ApplicationContext applicationContext;
    
      void setApplicationContext(ApplicationContext applicationContext) {
        this.applicationContext = applicationContext;
      }
    
      public void businessMethod() {
        //use applicationContext somehow
      }
    
    }
    

    However you rarely need to access ApplicationContext directly. Typically you start it once and let beans populate themselves automatically.

    Here you go:

    ApplicationContext ctx = new ClassPathXmlApplicationContext("applicationContext.xml");
    

    Note that you don't have to mention files already included in applicationContext.xml. Now you can simply fetch one bean by name or type:

    ctx.getBean("someName")
    

    Note that there are tons of ways to start Spring - using ContextLoaderListener, @Configuration class, etc.

提交回复
热议问题