美文网首页
InitializingBean

InitializingBean

作者: 不二不二熊 | 来源:发表于2019-09-28 22:16 被阅读0次

    一、起源

    很多时候,我们在配置文件初始化完毕后都想根据配置文件初始化自己的属性,那么这个时候InitializingBean就能够起作用了。

    二、展示

    假如我们在配置文件自定义了这样一个属性url

    com.imoc.user.url = com.imoc.study,com.imoc.learn
    

    我们想在配置文件初始化完毕后将url按照逗号分隔注入自己的属性中

    @ConfigurationProperties(prefix = "com.imoc")
    @Data
    @Configuration
    public class UserConfigition {
        private MyUser user;
    }
    
    @Data
    public class MyUser  {
        private String url;
    }
    

    我们可以实现InitializingBean接口的afterPropertiesSet,在方法体内部编写具体的逻辑。如下所示,可以在UserConfigition注入完毕后,调用afterPropertiesSet方法将url切割并且注入到自定义的urls中,这样当项目启动后,urls就会有值啦~

    @RestController
    @RequestMapping("/init")
    public class ParmeatTest implements InitializingBean {
        @Autowired
        private UserConfigition userConfigition;
        private String[] urls;
       
        @GetMapping("/initTest")
        public void InitializingBeanTest(){
            System.out.println(urls.toString());
        }
    
        @Override
        public void afterPropertiesSet() throws Exception {
            String[] split = StringUtils.splitByWholeSeparator(userConfigition.getUser().getUrl(), ",");
            urls = split;
        }
    }
    

    三、参考

    Spring应用--实现InitializingBean接口
    spring-bean模块中InitializingBean接口

    相关文章

      网友评论

          本文标题:InitializingBean

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