那么 @configuration 类到底何时执行以及它的范围是什么?
每个 session 一次吗?每个整个应用程序一个?但我的下一个问题是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 或多或少什么时候有效/启动?
最佳答案
一个 @Configuration
带注释的类就是这样,一个用 @Configuration
注释的类注解。它本身什么也不做。
您需要一些东西来评估和处理类(class)。这是通过引导完成的。您有三个选择
- 使用
AnnotationConfigApplicationContext
注册类(class)实例。 - 将类指定为
<bean>
在 XML 配置中具有相应的启用 XMLApplicationContext
. - 将类放入经过组件扫描的包中。
这些选项的详细信息请参见 javadoc更详细的信息,请参见 Spring IOC documentation .
您在 @Configuration
中声明的 Bean类活只要有其相应的范围。您的testBean
bean 具有单例作用域,因此与包含的 ApplicationContext
一样长。 .
关于java - spring @configuration 类什么时候执行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34097164/