我正在将 Spring Boot 2.2.2.RELEASE 与 Java 一起使用。
我有一些@Service类,这些类具有相同的类名,但包不同。 例: package1 / Service.java package2 / Service.java
我有一个问题“具有相同名称和类的不兼容bean定义” 。我已对其进行了修复:已将其添加到Application.java的主类中,以便所有bean均具有其完整路径作为名称。
public static void main(String[] args) {
SpringApplication app = new SpringApplication(TaxEngineApp.class);
app.setBeanNameGenerator(new AnnotationBeanNameGenerator() {
@Override
protected String buildDefaultBeanName(BeanDefinition definition) {
String beanClassName = definition.getBeanClassName();
Assert.state(beanClassName != null, "No bean class name set");
return beanClassName;
}
});
DefaultProfileUtil.addDefaultProfile(app);
Environment env = app.run(args).getEnvironment();
logApplicationStartup(env);
}
但是,如果运行带有@SpringBootTest注释的任何测试,它将使用自己的应用程序。因此,我有一个相同的问题“与具有相同名称和类的现有不兼容bean定义冲突”。 如何使用它来使用我的Application.java? 我已经尝试过@SpringBootTest(classes = TaxEngineApp.class),但这也无济于事。