Evaluating spring @value annotation as primitive boolean

后端 未结 4 725
情歌与酒
情歌与酒 2020-12-05 17:47

I have a spring @configuration annotated class MappingsClientConfig with a boolean field as:

 @Value(\"${mappings.enabled:true}\")
    private boolean mappi         


        
4条回答
  •  攒了一身酷
    2020-12-05 18:23

    This is how it was solved in our project, as the other answers didn't work for us. We were using spring batch, also.

    main job config:

    @Configuration
    @EnableBatchProcessing
    @PropertySource("classpath:application.properties")
    public class MainJobConfiguration {
        @Autowired
        PipelineConfig config;
    
        @Bean
        public PipelineConfig pipelineConfig(){
            return new PipelineConfig();
        }
    
        // To resolve ${} in @Value
        @Bean
        public static PropertySourcesPlaceholderConfigurer propertyConfigInDev() {
            return new PropertySourcesPlaceholderConfigurer();
        }
    
        // job stuff ...
    }
    

    properties config loader:

    public class PipelineConfig {
        @Value("${option}")
        private boolean option;
    }
    

    Note how the @Value is in the PipelineConfig, but the actual properties from which the option is loaded, is specified in the job class.

提交回复
热议问题