美文网首页
日常总结:spring boot获取properties配置两种

日常总结:spring boot获取properties配置两种

作者: 灿烂的GL | 来源:发表于2023-05-09 16:07 被阅读0次

    场景:调用默认配置文件中参数
    方法:使用@Value注解读取

      @Value("${device.switch.threshold}")
        private Integer switchingTimesThreshold;
    

    场景二:获取自定义properties文件中参数
    方法
    1、添加获取方法

    @Getter
    @Setter
    @Component
    @ConfigurationProperties(prefix = "template")
    @Configuration
    public class UserPolicyTemplateConfigure {
    
        public static List<UserPolicyParamsDTO> USER_POLICY_TEMPLATE;
    
        //DTO里的字段和配置文件字段一致:eg:tlf、name
        private List<UserPolicyParamsDTO> userPolicyTemplate;
    
        /**
         * Init template configure.
         */
        @PostConstruct
        private void initTemplateConfigure() {
            UserPolicyTemplateConfigure.USER_POLICY_TEMPLATE = userPolicyTemplate;
        }
    }
    

    @ConfigurationProperties(prefix = "template")注解会根据这个前缀来获取参数
    userPolicy.properties文件如下,我这里模板是个list<DTO>

    template.userPolicyTemplate[0].tlf = -
    template.userPolicyTemplate[0].name = -
    

    如果properties文件放在项目里,命名方式为application-userPolicy.properties,放在resources文件夹里
    如果启动后找不到文件可以在方法UserPolicyTemplateConfigure 上添加注解
    @PropertySource(value = {"classpath:userPolicy.properties"})
    如果跟我一样是线上配置中心apollo,无需添加上边注解
    2、新增的properties引用的方式,根据实际情况选一个

    #本地引用方式
    spring.profiles.active=dev,userPolicy
    
    #线上apollo配置中心引用方式
    apollo.bootstrap.namespaces=application,userPolicy
    

    3、调用

     public Result getUserPolicyParams() {
            List<UserPolicyParamsDTO> userPolicyParamsDTOList = UserPolicyTemplateConfigure.USER_POLICY_TEMPLATE;
      。。。
        }
    

    以上就可以获取到配置文件中数据了


    其他问题
    项目是容器化部署,部署的时候需要对应修改配置文件,配置才会生效


    image.png

    相关文章

      网友评论

          本文标题:日常总结:spring boot获取properties配置两种

          本文链接:https://www.haomeiwen.com/subject/iabrsdtx.html