我们正在从1.3.0升级Spring引导版本。发布到2.3.12。释放。根据旧版本,yml文件使用以下代码片段读取
@Configuration
@ConfigurationProperties(locations = "classpath:/config/myconf-source.yml")
public class MyConfigProperties {
private String configSource;
public String getConfigSource() {
return configSource;
}
public void setConfigSource(String configSource) {
this.configSource = configSource;
}
}
在src/main/Resources/config/中配置文件
myconf-source.yml
news-source.yml
conf-mapping.yml
myconf源中的内容。yml
configSource: "TEST"
相应的测试类
@ActiveProfiles("test")
@RunWith(SpringJUnit4ClassRunner.class)
@EnableAutoConfiguration
@SpringApplicationConfiguration(classes = SampleApplication.class)
@DirtiesContext(classMode = ClassMode.AFTER_EACH_TEST_METHOD)
@ConfigurationProperties(locations = "classpath:**/config/**")
public class MyConfigPropertiesTest {
@Autowired
private MyConfigProperties myConfigProperties;
@Test
public void testMyConfigProperties() {
String config = myConfigProperties.getConfigSource();
Assert.assertEquals(config, "TEST");
}
}
更改到新版本后,它会抛出一个错误无法解析方法“位置”
。
如果我删除locations
属性,spring将如何知道类MyConfigProperties必须读取MyConfigSource。yml
另外,在运行测试类时,NullPointerException作为myConfigProperty抛出。getConfigSource()
变为空。
我尝试过各种解决方案,但没有成功,
有人能建议如何使它工作吗?
谢谢
您可以使用@PropertySource annotation读取yml文件,您可以阅读以下文章:
https://www.baeldung.com/properties-with-spring
如果在该类中使用@Bean
定义Bean,则应使用@Configuration
。
如果没有,那么从那里删除它。
此外,@Configuration不会使这个类成为您要求它在测试中自动生成的bean。如果您希望MyConfigProperties可用于自动连接,那么您还需要@EnableConfigurationProperties(MyConfigProperties.class)。这将确保这个类在应用程序上下文中作为Springbean可用。
是的
@PropertySource("classpath:/config/myconf-source.yml")
@ConfigurationProperties()
@EnableConfigurationProperties(MyConfigProperties.class)
public class MyConfigProperties {
private String configSource;
public String getConfigSource() {
return configSource;
}
public void setConfigSource(String configSource) {
this.configSource = configSource;
}
}
问题内容: 我可以创建自定义属性并将其应用到normal ,如下所示: 我的问题:是否可以在不创建扩展类的情况下读取这些自定义属性的值?我的意思是,我想从我的中读取自定义属性,但是到目前为止,我所看到的示例要求我从自定义视图的构造函数中读取值 问题答案: 我的问题:是否可以在不创建扩展EditText的类的情况下读取那些自定义属性的值? 是的,您无需扩展类即可获取这些属性。为此,你可以使用一个特殊
但是,我只能访问有关用户的基本信息,例如GivenName和Surname。我在Azure门户中创建了名为“extension_e3f9d0....”的扩展属性。 问题是,我不知道如何访问属性,一旦用户登录。当我调用Postman中的API时,可以检索这些自定义属性,如下所示: https://graph.microsoft.com/v1.0/users/[user@whatever]?$sele
我使用swagger生成类在Java和类型脚本。我有问题定义映射属性与对象列表为值。我试图定义如下: 上面的yml定义在java中生成以下代码: 如何配置yml以生成包含数据列表的密钥?类似于下面的类: 或 这是否可能与大摇大摆2.0?我正在考虑定义另一个扩展ArrayList的DataList类,然后将该类用作映射的值。 --------------更新 谢谢@nickb 我使用swagger-
在我的Android Studio项目中,我在gradle中定义了代理设置。与Git repo同步的属性文件。只要在那里定义了代理密码,我就需要将其移动到本地。属性文件。我想实现这样的smth: 在gradle.properties: 在当地。特性: 我该怎么做?
我正在使用Keycloak SAML,SpringBoot (Java ),并且我得到了一个包含用户所在组的响应,所以我在SAML响应中有这个属性: 属性名是member,他有2个值“/other_TEST_GROUP”和“TEST_ GROUP”,但在我的代码中,当我尝试获得这样的“member”值时(): 它只得到第一个值,在这种情况下是“/ANOTHER_TEST_GROUP”,我希望得到值
文本文件中有两个值,如下所示: 我想将这两个值保存为两个自定义属性,以便我可以在肥皂请求中使用它。 这是我到目前为止所拥有的,但没有运气: 我收到以下错误: