Spring security Spring security WebSecurity配置适配器读取应用程序.properties

Spring security Spring security WebSecurity配置适配器读取应用程序.properties,spring-security,Spring Security,在我的应用程序中,我想配置spring security来配置HSTS支持。 我修改了pom.xml以添加所需的库 现在我想从application.properties中读取与HSTS相关的配置。我已经添加了如下代码 @Configuration @EnableWebSecurity public class WebSecurityConfig extends WebSecurityConfigurerAdapter { @Value("${app.security

在我的应用程序中,我想配置spring security来配置HSTS支持。 我修改了pom.xml以添加所需的库

现在我想从application.properties中读取与HSTS相关的配置。我已经添加了如下代码

@Configuration
@EnableWebSecurity
public class WebSecurityConfig extends WebSecurityConfigurerAdapter {
    
    @Value("${app.security.headers.hsts}")
    private boolean hsts;
    
    @Value("${app.security.headers.hsts.includeSubDomains}")
    private boolean includeSubDomains;
    
    @Value("${app.security.headers.hsts.maxAge}")
    private long maxAge;
    
    @Override
    protected void configure(HttpSecurity http) throws Exception {
        if(hsts) {
            http.headers().
            httpStrictTransportSecurity().
            includeSubDomains(includeSubDomains).
            maxAgeInSeconds(maxAge);
        }
    }
}


但是,spring应用程序无法启动。这是一个错误

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'webSecurityConfig': Injection of autowired dependencies failed; nested exception is java.lang.IllegalArgumentException: Could not resolve placeholder 'app.security.headers.hsts' in value "${app.security.headers.hsts}"
        at org.springframework.beans.factory.annotation.AutowiredAnnotationBeanPostProcessor.postProcessPropertyValues(AutowiredAnnotationBeanPostProcessor.java:372)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.populateBean(AbstractAutowireCapableBeanFactory.java:1264)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:553)
        at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:483)
        at org.springframework.beans.factory.support.AbstractBeanFactory$1.getObject(AbstractBeanFactory.java:306)
        at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:230)
        at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:302)
        at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:197)
        at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:761)
        at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:867)
        at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:543)
        at org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122)
        at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:693)
        at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:360)
        at org.springframework.boot.SpringApplication.run(SpringApplication.java:303)


你也可以分享你的application.properties文件吗?这是我的错误;application.properties不保留在spring配置位置;添加--spring.config.location参数作为命令行参数后;它开始读取属性。谢谢你的回复!!!