解除项目与其他服务的强依赖

项目中使用了其他项目中的服务,当服务不可用或者报错的时候,项目启动不了,需要解除强依赖

例如之前的写法:

@Configuration
public class EpasBeanConfig {

@Bean
public GroupOrganizationService getGroupOrganizationService(){
    return EpasClientFactory.createClient(GroupOrganizationService.class,Constants.EPAS_USER_BASIS_APP_KEY);
}

@Bean
public DepartmentService getDepartmentService(){
    return EpasClientFactory.createClient(DepartmentService.class, Constants.EPAS_USER_BASIS_APP_KEY);
}
}
@Autowired
private GroupOrganizationService groupOrganizationService;

@Autowired
private DepartmentService departmentService;

当服务不可用的时候,项目启动失败

修改后的方法:

@Configuration
public class EpasBeanConfig {

    @Bean
    @Lazy
    public GroupOrganizationService getGroupOrganizationService(){
        return EpasClientFactory.createClient(GroupOrganizationService.class, Constants.EPAS_USER_BASIS_APP_KEY);
    }
    
    @Bean
    @Lazy
    public DepartmentService getDepartmentService(){
        return EpasClientFactory.createClient(DepartmentService.class, Constants.EPAS_USER_BASIS_APP_KEY);
    }
}
GroupOrganizationService groupOrganizationService = AppContextHolder.getContext().getBean(GroupOrganizationService.class);

 

posted @ 2019-05-14 19:52  水木神舟10  阅读(327)  评论(0编辑  收藏  举报