2015-12-04 104 views
0

因此,何时执行@configuration类,它的范围是什么?何时执行spring @ configuration类?

这是每个会话一个吗?每个应用程序一个?但是我的下一个问题是执行后bean返回到哪里?也许这段代码会帮助你更好地理解我的意思。

@Configuration 
@PropertySource("classpath:application.properties") 
public class AppConfig { 
    @Autowired 
    Environment env; 

    @Bean 
    public DBConnection testBean() { 
    DBConnection testBean = new DBConnection(); 
     testBean.setName(env.getProperty("testbean.name")); 
     return testBean; 
    } 
} 

那么这个DBConnection何时或多或少会有效/启动?

+0

我建议你在春季了解Bean的生命周期。 Spring参考:http://docs.spring.io/spring/docs/current/spring-framework-reference/html/beans.html或者这个:http://javabeginnerstutorial.com/spring-framework-tutorial/java-spring -bean生命周期/ – jny

回答

2

A @Configuration带注解的类就是这样,一个类用@Configuration注解注解。它本身不做任何事情。

您需要一些评估和处理该类。这是通过引导完成的。您有三个选项

  1. AnnotationConfigApplicationContext实例注册该类。
  2. 在XML配置中将类指定为<bean>,并使用相应的启用XML的ApplicationContext
  3. 将该类放置在组件扫描的包中。

这些选项在javadoc中有详细说明,更详细地说,在Spring IOC documentation中。

豆你在@Configuration类声明只要他们的对应范围。您的testBean bean具有单身作用域,因此其寿命与包含ApplicationContext一样长。