gpt4 book ai didi

java - 使用注解创建时,默认情况下如何命名Bean?

转载 作者:行者123 更新时间:2023-12-01 08:22:53 26 4
gpt4 key购买 nike

我正在使用别人编写的Spring Java代码。我想引用由注释(字段classABC)创建的bean:

@Component
public class ClassService
{
@Autowired
ClassABC classABC;

public interface ClassABC

@Repository
public class ClassABCImpl extends BaseABC implements ClassABC

以下代码尝试按名称获取对ClassABC bean的引用,但不起作用:
ClassABC classABC = ApplicationContext.getBean("classABC");

但是,以下按类型引用此bean的代码可以正常工作:
ClassABC classABC = ApplicationContext.getBean(ClassABC.class);

因为第一个引用不起作用,所以我猜该bean没有命名为“classABC”。这个bean叫什么名字?

注意:没有配置XML引用此bean,因此我认为bean名称没有在xml中定义。

最佳答案

https://docs.spring.io/spring/docs/current/javadoc-api/org/springframework/context/annotation/AnnotationBeanNameGenerator.html

是注释的默认bean名称生成器,由DefaultBeanNameGenerator定义的bean有一个@Bean
在这种情况下,我相信bean的名称将是classABCImpl,因为它是由类的短名称构建的。

以具体的服务实现为例,com.xyz.FooServiceImpl -> fooServiceImpl
就个人而言,如果您想通过名称引用该bean,我不喜欢使用默认命名。在这些情况下最好明确。

关于java - 使用注解创建时,默认情况下如何命名Bean?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48871789/

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