项目中使用了其他项目中的服务,当服务不可用或者报错的时候,项目启动不了,需要解除强依赖
例如之前的写法:
@Configurationpublic class EpasBeanConfig {@Beanpublic GroupOrganizationService getGroupOrganizationService(){ return EpasClientFactory.createClient(GroupOrganizationService.class,Constants.EPAS_USER_BASIS_APP_KEY);}@Beanpublic DepartmentService getDepartmentService(){ return EpasClientFactory.createClient(DepartmentService.class, Constants.EPAS_USER_BASIS_APP_KEY);}}
@Autowiredprivate GroupOrganizationService groupOrganizationService;@Autowiredprivate DepartmentService departmentService;
当服务不可用的时候,项目启动失败
修改后的方法:
@Configurationpublic 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);