I have a set up like:
Bean class:
private final Map<String, String> configCache = new HashMap<>();
@PostConstruct
private void fillCache() { (...) configCache.clear();}
TestConfig类:
@Bean
@Order(Ordered.HIGHEST_PRECEDENCE)
@Primary
public Bean beanMock() {
return Mockito.mock(Bean.class);
}
测试类:用@Autowire
注入bean。
似乎当Mockito在TestConfig中创建Mock对象时,它调用了@PostConstruct,这似乎是在map字段初始化之前调用的,因此会抛出异常。
我的问题是:
- 为什么Mockito要调用@PostConstruct?
- 如何禁用@PostConstruct以进行Mock?
编辑:显然,在Spring从配置的@Bean方法中返回bean之前,调用是在实例化后完成的。
@Configuration
的@Bean
方法返回实例之后被调用的。我该如何禁用它? - Whimusical