当前位置: 首页 > 知识库问答 >
问题:

IntelliJ中Spring Boot的Bean扫描

郦翰学
2023-03-14

我正在使用Spring Boot创建一个微服务,除了一些小麻烦之外,一切都很好。

Autowired成员必须在有效的spring bean中定义(@component/@service等)检查是否在有效的Spring bean(@component@service...)中定义了自动连线成员。

这是使用以下测试类

@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes = Application.class)
public class MyRecordTest {

    public static final String NUMBER = "ABC/123456";

    @Autowired
    private MyFactory factory;

    @Autowired
    private Marshaller marshaller;

    ...
}

其中我的应用程序配置类定义为

@SpringBootApplication
public class Application {
    public static void main(String[] args) {
        SpringApplication.run(Application.class, args);
    }

    @Bean
    public Marshaller getMarshaller() {
        Jaxb2Marshaller marshaller = new Jaxb2Marshaller();
        marshaller.setPackagesToScan("com.my.classes");
        return marshaller;
    }
}
@Component
public class MyFactory {
    ...
}

此外,我的应用程序中唯一未覆盖的行是公共静态void main方法中的SpringApplication.run行:

public static void main(String[] args) {
    SpringApplication.run(Application.class, args);
}

我怎样才能让这件事被掩盖或忽略?

共有1个答案

杨柏
2023-03-14

正如Anand所述,您需要在测试中满足以下条件,以便在测试中自动连接依赖项:

@RunWith(SpringRunner.class)
@SpringBootTest

像这样:

@RunWith(SpringRunner.class)
@SpringBootTest
public class MyRecordTest {

    public static final String NUMBER = "ABC/123456";

    @Autowired
    private MyFactory factory;

    @Autowired
    private Marshaller marshaller;

    ...
}
 类似资料:
  • 我一直收到这个错误: 原因:org.springframework.context.ApplicationContextException:由于缺少ServletWebServerFactory bean,无法启动ServletWebServerApplication Context。 这是我的运行配置中的目标。 这是MyApp.class: 这是我的Gradle构建文件: MyApp.java和

  • 我正在使用spring boot开发一个应用程序。我添加了一些具有xml配置的遗留依赖项库。我想使用Spring定义的豆子。xml文件。我已经在我的组件扫描中添加了这个包,但是这个bean似乎没有被提取出来。我应该为spring boot添加任何额外的配置来读取xml配置吗?

  • 问题内容: 我正在尝试使用Spring Boot在本地设置DynamoDB。最初,我开始进行设置,并能够通过存储库将其写入/保存到DynamoDB。从那时起,我添加了更多类来构建我的应用程序。现在,当我尝试启动应用程序时,出现以下异常: 我已经广泛搜索了SO和Internet,但是对此没有任何有用的解决方案。该错误消息也具有误导性。 我的项目属于以下层次结构 DynamoDBConfig.java

  • 我正在使用一个带有spring boot 2.0.0.rc1的多项目分级器。我的子项目之一是SpringBoot应用程序,其中包含了我的集成测试。 集成测试用WebEnvironment.random_port标记为@springboottest。由于未解析的依赖关系(在另一个子项目中声明的服务,的同级),测试失败,使用了gradle命令行,但在Eclipse IDE中成功。 如果有人有主意?如何

  • 我正在尝试创建一个简单的eureka服务和客户端程序,并在其上启用hystrix。但我在代码上发现了这个错误