在我的 application.yml 中我有以下内容
cors-allowed-origins:
url-origins:
- http://host.docker.internal:81/
- http://localhost:8081/*
- http://digitale.com/
- http://share.com/
第一个记录
@ConfigurationProperties( "cors-allowed-origins" )
public record CrosAllowedOrigins(List<String> urlOrigins) {
}
Could you please help me out or even tell me what s wrong thanks
在我注入值的类中
public class SecurityConfig {
@Value("${cors-allowed-origins.url-origins}")
private List<String> allowedOrigins;
我已经启用了主类中的属性
@EnableConfigurationProperties({ CrosAllowedOrigins.class})
它构建完美,但是当我运行该应用程序时,我收到此错误:
Caused by: java.lang.IllegalArgumentException: Could not resolve placeholder 'cors-allowed-origins.url-origins' in value "${cors-allowed-origins.url-origins}"
at org.springframework.util.PropertyPlaceholderHelper.parseStringValue(PropertyPlaceholderHelper.java:180) ~[spring-core-6.0.13.jar:6.0.13]
at org.springframework.util.PropertyPlaceholderHelper.replacePlaceholders(PropertyPlaceholderHelper.java:126) ~[spring-core-6.0.13.jar:6.0.13]
at org.springframework.core.env.AbstractPropertyResolver.doResolvePlaceholders(AbstractPropertyResolver.java:239) ~[spring-core-6.0.13.jar:6.0.13]
at org.springframework.core.env.AbstractPropertyResolver.resolveRequiredPlaceholders(AbstractPropertyResolver.java:210) ~[spring-core-6.0.13.jar:6.0.13]
at org.springframework.context.support.PropertySourcesPlaceholderConfigurer.lambda$processProperties$0(PropertySourcesPlaceholderConfigurer.java:200) ~[spring-context-6.0.13.jar:6.0.13]
at org.springframework.beans.factory.support.AbstractBeanFactory.resolveEmbeddedValue(AbstractBeanFactory.java:918) ~[spring-beans-6.0.13.jar:6.0.13]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.doResolveDependency(DefaultListableBeanFactory.java:1358) ~[spring-beans-6.0.13.jar:6.0.13]
at org.springframework.beans.factory.support.DefaultListableBeanFactory.resolveDependency(DefaultListableBeanFactory.java:1337) ~[spring-beans-6.0.13.jar:6.0.13]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.resolveFieldValue(AutowiredAnnotationBeanPostProcessor.java:764) ~[spring-beans-6.0.13.jar:6.0.13]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor$AutowiredFieldElement.inject(AutowiredAnnotationBeanPostProcessor.java:747) ~[spring-beans-6.0.13.jar:6.0.13]
at org.springframework.beans.factory.annotation.InjectionMetadata.inject(InjectionMetadata.java:145) ~[spring-beans-6.0.13.jar:6.0.13]
at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessProperties(AutowiredAnnotationBeanPostProcessor.java:492) ~[spring-beans-6.0.13.jar:6.0.13]
... 17 common frames omitted
我找到了解决该问题的方法,因此我没有将 Spring 的 @Autowired 注释与 @Value 一起使用,而是通过构造函数注入值,并且效果很好。
@RequiredArgsConstructor public class SecurityConfig { // @Value("${cors-allowed-origins.url-origins}") private final CrosAllowedOrigins allowedOrigins;