美文网首页
SpringBoot给静态属性赋值

SpringBoot给静态属性赋值

作者: 程序员小杰 | 来源:发表于2020-11-22 13:45 被阅读0次

    前言

    在实际开发中,我们经常需要给静态属性赋值,值来源于yml或者properties文件。就不能单独去使用@Value注解了,下面介绍几种方式进行属性注入。

    一、set方法注入

    @Component
    public class Static {
    
        public static String APP_ID;
        public static String APP_USER;
    
        @Value("${channl.ali.appId}")
        public void setAppId(String appId) {
            APP_ID = appId;
        }
    
        @Value("${channl.ali.appUser}")
        public void setAppUser(String appUser) {
            APP_USER = appUser;
        }
    }
    

    注:该类需要被Spring管理,setXx方法名可以随便起

    使用

        @Test
        void contextLoads() {
            System.out.println(Static.APP_ID);
            System.out.println(Static.APP_USER);
        }
    

    二、@PostConstruct

        @Value("${channl.ali.appId}")
        private String appId;
        @Value("${channl.ali.appUser}")
        private String appUser;
        @Autowired
        private Environment environment;
        @PostConstruct
        public void init(){
    //        APP_ID = environment.getProperty("channl.ali.appId");
    //        APP_USER = environment.getProperty("channl.ali.appUser");
            APP_ID = appId;
            APP_USER = appUser;
        }
    

    注:使用Environment 和 @Value方式都可以

    三、实现InitializingBean重写afterPropertiesSet方法

        @Value("${channl.ali.appId}")
        private String appId;
        @Value("${channl.ali.appUser}")
        private String appUser;
        @Autowired
        private Environment environment;
        @Override
        public void afterPropertiesSet() throws Exception {
    //        //APP_ID = environment.getProperty("channl.ali.appId");
    //       // APP_USER = environment.getProperty("channl.ali.appUser");
            APP_ID = appId;
            APP_USER = appUser;
        }
    

    注:使用Environment 和 @Value方式都可以
    代码地址:https://gitee.com/gongjienianq/spring-static

    相关文章

      网友评论

          本文标题:SpringBoot给静态属性赋值

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