Spring的PostConstruct注释是否与会话相关联?

时间:2014-07-17 16:22:59

标签: spring

在API中,我有两个类A和B,它们实现了一个接口C.我有一个DAO(我们可以调用D),它使用Spring的beanFactory加载A或B,具体取决于属性文件中的值。此属性与数据库值绑定。

我想使用Spring的PostConstruct注释来编写以下内容:

@PostConstruct    
public void setUp(){ 
    C file = (C) beanFactory.getBean(propertyValue);
}

但是我不清楚在编译应用程序时是否只调用一次Spring的PostConstruct,或者每个会话执行一次?

另外,我正在使用:

@Value("${property.variable.value}")
private String propertyValue;

这有效地从会话中加载的任何属性文件中正确地提取值。

1 个答案:

答案 0 :(得分:1)

它与bean实例化有关,它独立于bean的范围。

如果bean是一个普通的应用程序范围的单例,那么Spring只会调用该方法一次;即,Spring创建bean的那一次。如果bean是原型范围的,那么每次创建bean时Spring都会调用@PostConstruct。