栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

spring-boot属性不是@Autowired

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

spring-boot属性不是@Autowired

您的配置会导致

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());    }

这将解决您的运行时配置问题,并使您的测试使用Spring Boot的功能来配置您的应用程序。



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/402925.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号