gpt4 book ai didi

java - 如何在Spring @Bean中使用@Builder注解的类?

转载 作者:行者123 更新时间:2023-12-01 22:00:18 24 4
gpt4 key购买 nike

我有一个用 Lombok 的 @Builder 注释的类,并且我想要 Spring 的 @Bean 具有:

return AnnotedClass.builder().build();

问题是:我应该如何使用这个@Bean来通过构建器设置字段的值?

当我在 Bean 内部执行操作时:

return AnnotedClass.builder().field1(value1).build();

然后我可以稍后获取设置的值,但我想从 Bean 外部设置值。

最佳答案

这可能不是您正在寻找的答案,但是:您不能这样做。构建器由 AnnotatedClass 中的静态方法创建,并在调用 build() 后销毁。因此,当您拥有 AnnotatedClass 的实例时,构建器就消失了。由于您使用的是注入(inject),您当然不能向 bean 方法提供任意参数。

构建器模式旨在创建具有可选字段的不可变对象(immutable对象),而注入(inject)旨在连接服务。这显然完全不是你想要的。

我建议你看一下工厂模式。将工厂(例如 AnnotatedClassFactory)注入(inject)到您的类中,并让该工厂为您构建您需要的实例。当然,您可以让工厂返回构建器的实例。这将允许您注入(inject)可以在构建器的每个实例中预设的值,并且您可以在外部完成其余的操作。

关于java - 如何在Spring @Bean中使用@Builder注解的类?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58710623/

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