如何在Spring Boot Test中使用我的Application类?

时间:2019-12-13 16:35:22

标签: java spring-boot testing javabeans spring-boot-test

我正在将 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),但这也无济于事。

0 个答案:

没有答案