• 合并分支导致的问题


            有一个模块,因底层使用的云平台不同,所以有两个分支分别对应h3c / openstack 云平台环境,但是这样导致难以维护,决定开发兼容两套云平台的sdk后(由其他同事进行完成,对于缺少的接口自行补充),使用该sdk将模块的两个分支进行合并。

            openstack分支有一个功能直接对openstack数据库进行了操作,而h3c分支并没有,如果模块切换到h3c环境后该mapperBean没有则会报错。于是使用@Conditional(x.class)注解进行有条件的使用。

    如果不是openstack环境则不注入 openstack环境的链接、会话对象,并手动注入一个空实现的mapper对象,这样其他类引入mappper对象就可以找到空实现的mapper对象,然后在其他类做判断如果不是openstack 则抛出异常提示非openstack环境该功能无法使用

    1. @Configuration
    2. @MapperScan(basePackages = "com.rs.remote.dao.nova",sqlSessionFactoryRef = "novaSqlSessionFactory")
    3. @ConditionalOnExpression("'${cloud.type}'.equals('os')")
    4. public class NovaDataSourceConfig {
    5. @ConfigurationProperties(prefix = "spring.datasource.druid.nova")
    6. @Bean(name = "novaDataSource")
    7. public DataSource getDataSource(){
    8. return DruidDataSourceBuilder.create().build();
    9. }
    10. @Bean(name = "novaSqlSessionFactory")
    11. public SqlSessionFactory novaSqlSessionFactory(@Qualifier("novaDataSource") DataSource dataSource) throws Exception {
    12. SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
    13. bean.setDataSource(dataSource);
    14. bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:com/rs/remote/dao/nova/**/mybatis/*Mapper.xml"));
    15. bean.setTypeAliasesPackage("com.rs.remote.dao.nova.model");
    16. return bean.getObject();
    17. }
    18. }
    1. @Bean
    2. @ConditionalOnExpression("'!${cloud.type}'.equals('os')")
    3. public InstanceMapper instanceMapper(){
    4. return new InstanceMapper() {
    5. @Override
    6. public void updateHostNameForInstanceByCloudId(String cloudId, String hostName) {
    7. throw new RuntimeException("非openstack环境,无法使用");
    8. }
    9. };

  • 相关阅读:
    Go语言入门心法(十六):Go远程过程调用框架GRPC实战
    免费的机器学习数据集网站(6300+数据集)
    Prompt之美:如何设计提示词让大模型变“聪明”
    指标计算实践
    windows10环境下配置Apache-Tomcat并测试联通
    力扣(LeetCode)322. 零钱兑换(2022.11.19)
    五.docker+jenkins自动部署项目
    技术管理实战之全貌
    SQL复习(1)
    x64内核实验6-进程
  • 原文地址:https://blog.csdn.net/qq_41149775/article/details/127869522