0

我正在使用来自 org.springframework:spring-context 的 FullyQualifiedAnnotationBeanNameGenerator。随着最新的 pom 升级,我看到这个类在 spring-context jar 中不存在。现在这个类的替代品是什么?我正在使用 org.springframework:spring-context:jar:4.3.25.RELEASE

4

2 回答 2

0

这是解决方案。如果您的 spring-context 低于 5.2.3.RELEASE。

使用这种方法:

  1. 您可以实现自己的使用完全限定名称的 bean 名称生成策略:
public class UniqueBeanNameGenerator extends AnnotationBeanNameGenerator {
       
    @Override
    public String generateBeanName(BeanDefinition definition, BeanDefinitionRegistry registry) {
        return definition.getBeanClassName();
    }
}
  1. 将此添加到 Spring Boot 应用程序启动类
@SpringBootApplication
@ComponentScan(nameGenerator=UniqueNameGenerator.class)
public class Application {
   public static void main(String[] args) {
       SpringApplication.run(Application.class, args);
   }
}
于 2022-01-06T18:59:14.567 回答
0

您已从哪个版本升级到 4.3.25-RELEASE

如果我们遵循spring文档: https ://docs.spring.io/spring-framework/docs/current/javadoc-api/org/springframework/context/annotation/FullyQualifiedAnnotationBeanNameGenerator.html

这个注解是从 5.2.3 开始引入的

你能尝试使用这个 5.2.3 或更高版本,它应该可以解决你的问题。

于 2022-01-05T19:55:33.553 回答