美文网首页
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