您的配置会导致ConfigurationSettings
该类的2个实例,并且一个实例可能会覆盖另一个实例。
在@Component
扫描组件(@ComponentScan
)时,“ ConfigurationSettings”具有注释,这将导致一个实例。您还具有带@Bean
注释的方法,该方法也可以导致实例。后者被第一个覆盖。
简而言之,删除@Component
不需要的注释,因为您已经有了此类的工厂方法。
public class ConfigurationSettings { ... }
您还应该删除@PropertySource
注释,因为Spring-Boot已经application.properties
为您加载了注释。
最后,您不应@ContextConfiguration
在测试类上使用批注,而应@SpringApplicationConfiguration
在应用程序类(而非配置类!)中使用和。
@RunWith(SpringJUnit4ClassRunner.class)
@SpringApplicationConfiguration(classes=OFAC.class)
public class OFAConfigurationTest {
@Autowired
private Environment environment;
@Autowired
private ConfigurationSettings configurationSettings;
@Test
public void testConfigurationLoads() {
assertNotNull(environment);
assertNotNull(configurationSettings);
}
@Test
public void testConfigurationSettingValues() {
assertEquals("Product Name", configurationSettings.getProduct());
assertEquals("0.0.1", configurationSettings.getVersion());
assertEquals("2014 Product", configurationSettings.getCopyright());
}