gpt4 book ai didi

spring - "Manually"使用 Grails BeanBuilder 或 Spring GenericGroovyApplicationContext 创建 bean

转载 作者:行者123 更新时间:2023-12-02 11:32:21 26 4
gpt4 key购买 nike

我有一个具有复杂创建逻辑的类(例如使用构建器)。早在 2000 年,由于 XML 很僵化,不是一种编程语言,我无法在其中编写创建逻辑,因此我将其封装在 FactoryBean 中。

然后,幸运的 JavaConfig 来了(谢谢你,@cbeams),并将 FactoryBean 扔进了历史的垃圾箱。

由于 GroovyConfig 向前迈出了一步(不仅是一种真正的配置编程语言,而且还具有 DSL),我确信能找到一种简单而优雅的方式来编写我的代码,虽然复杂的创建逻辑,但并没有找到任何提及这样做的能力吗?!

我知道 GroovyConfig 或多或少是从 Grails BeanBuilder 中逐字获取的,所以也许如果有办法在那里做到这一点,它也可以在 GroovyConfig 中工作(祈祷)。

请告诉我我遗漏了一些明显的东西,不必再次使用 FactoryBean!

睡着了,我想答案是否定的。我正在添加一个答案(仍然希望它会被严重否决为错误答案)。请证明我错了!

最佳答案

仔细想想,答案似乎是“不”。看来没有 FactoryBean 我就无法管理,这就是为什么:

  • XML 和 GroovyConfig 是 BeanDefinitionReader s。他们正在解析配置文件(分别是 XML 和 groovy 脚本)并创建 BeanDefinition从他们当中。无论我在 groovy 脚本中编写什么逻辑都会影响 BeanDefinition (例如,我可以将范围包装在 if-else 中)。然后,在我无法控制的后期阶段,Spring 根据自身的定义创建 bean 对象。
  • JavaConfig 不同。它不会被解析为 BeanDefinition 的配置文件创建,但其中创建的对象是 bean 本身(以及它们的 BeanDefinition )!这意味着我可以控制bean创建的时间,并且可以实现任何bean实例创建逻辑,而无需FactoryBean ,不仅BeanDefinition逻辑。

关于spring - "Manually"使用 Grails BeanBuilder 或 Spring GenericGroovyApplicationContext 创建 bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26247276/

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