gpt4 book ai didi

java - 让一个@Configuration 类定义另一个@Configuration 类有什么用?

转载 作者:行者123 更新时间:2023-11-29 04:59:08 26 4
gpt4 key购买 nike

在我正在玩的代码中,我看到一些地方是 @Configuration 类除了定义静态类之外什么都不做。格式各不相同,但通常是这样的:

@Configuration 
public class someAutoConfiguration {

@EnableConfigurationProperty(...)
@utoConfigureAfter(...)
@Configureation
public static class someConfiguration
{
@Autowired
//whatever needs autowired

@Bean
public myBean createBean(){

//construct bean
}
}

很清楚这些 bean 是如何运行的以及类做了什么,但我对两件事感到困惑,为什么需要它,甚至它是否遵循 @configuration 的契约。

我能找到的所有关于@Configuration 的定义都说它是用来用@Bean 定义bean 的,我还没有找到任何其他的注释 promise 。因此,似乎无法保证静态类本身会被构造或识别为 @Configuration 文件?显然是这样,我对此并不感到惊讶,但是 @Configuration 契约(Contract)是否保证这种行为?

其次,优势是什么?大概有一些原因我们需要两个类,而不是删除静态类并将其所有注释放在父类上?

最佳答案

当引导嵌套类时,只有 someAutoConfiguration(在您的示例中)需要针对应用程序上下文进行注册。由于是嵌套的 @Configuration 类,someConfiguration(在您的示例中)将自动注册。当 someAutoConfiguration 和 someConfiguration 之间的关系已经隐式明确时,这避免了使用 @Import 注释的需要。

如果您选择其他方式,则必须使用 @Import(someConfiguration.class)

关于java - 让一个@Configuration 类定义另一个@Configuration 类有什么用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32656232/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com