gpt4 book ai didi

java - 带有@Lookup 方法的Spring @Bean

转载 作者:行者123 更新时间:2023-11-30 08:55:01 24 4
gpt4 key购买 nike

我已经使用@Lookup 注释实现了一个Spring bean。 (此线程很有帮助:How to use spring @Lookup annotation?)

我随后注意到一个奇怪的行为,我不确定这是设计使然还是我自己的误解。 Spring 将在使用 @Service、@Component 等注释的 ComponentScan-ed bean 中实现 @Lookup 方法,但不会在 @Configuration 类 (Application.java) 中定义的 @Bean 中实现此类方法。

这不是什么大问题,因为我可以从配置中删除@Bean 定义,而是直接注释它的类;但我想知道这种行为是否记录在某处,还是我实现不正确?

@Bean
public Service getService() {
// ServiceImpl has a @Lookup method,
// but Spring does not implement it unless the class itself is annotated.
return new ServiceImpl();
}

最佳答案

事实上,这种行为 @Lookup 注释的限制。 Spring最新版documentation比 4.1 版更明确地描述了警告。

...please remember that lookup methods won't work on beans returned from @Bean methods in configuration classes;

通常,从@Bean 方法返回的对象确实处理了它们的注解; @Lookup 是典型行为的异常(exception)。

关于java - 带有@Lookup 方法的Spring @Bean,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29239965/

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