zjh
2025-02-05 c176d20e59d15d137ab783e260d704b864b6ced0
ltkj-framework/src/main/java/com/ltkj/framework/config/DruidConfig.java
@@ -42,6 +42,7 @@
@Slf4j
public class DruidConfig {
    @Value ("${config.properties}")
    private  String url;
@@ -259,6 +260,55 @@
    }
    @Bean
//    @ConfigurationProperties("spring.datasource.druid.slavepacs")
//    @ConditionalOnProperty(prefix = "spring.datasource.druid.slavepacs", name = "enabled", havingValue = "true")
    public DataSource slaveDataWsSource(DruidProperties druidProperties) {
        DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
        Properties props = new Properties();
        try {
            // 从文件中读取配置信息
            FileInputStream fis = null;
            try {
                fis = new FileInputStream(url);
            } catch (FileNotFoundException e) {
                log.info("数据库连接文件找不到");
            }
            props.load(fis);
            fis.close();
            // 这里是测试写法,具体的value可以通过请求参数传递过来
            String pacsenabled = props.getProperty("wsenabled");
            if (pacsenabled.equals("false"))
                return null;
            String pacsdbtype = props.getProperty("wsdbtype");
            switch (pacsdbtype){
                case "sqlserver":
                    dataSource = creatSqlServer(pacsenabled, props.getProperty("wsip"),props.getProperty("wsprot"),
                            props.getProperty("wsname"),props.getProperty("wsusername"),props.getProperty("wspassword"));
                    break;
                case "mysql":
                    dataSource = creatMysql(pacsenabled, props.getProperty("wsip"),
                            props.getProperty("wsprot"),props.getProperty("wsname"),props.getProperty("wsusername"),props.getProperty("wspassword"));
                    break;
                case "oracle":
                    dataSource = creatOracle(pacsenabled, props.getProperty("wsip"),
                            props.getProperty("wsprot"),props.getProperty("wsname"),props.getProperty("wsusername"),props.getProperty("wspassword"));
                    break;
                default:
                    dataSource = creatOracle(pacsenabled, props.getProperty("wsip"),props.getProperty("wsprot"),props.getProperty("wsname"),props.getProperty("wsusername")
                            ,props.getProperty("wspassword"));
                    break;
            }
            log.info("数据库连接成功!!!");
        } catch (Exception e) {
            log.info("数据库连接失败  请联系管理员!");
            e.printStackTrace();
        }
        return druidProperties.dataSource(dataSource);
    }
    private DruidDataSource creatSqlServer(String enabled, String ip,String port,String db,String user,String password) throws SQLException {
        DruidDataSource dataSource = DruidDataSourceBuilder.create().build();
        Properties properties = new Properties();
@@ -305,6 +355,7 @@
        setDataSource(targetDataSources, DataSourceType.SLAVE_HIS.name(), "slaveHisDataSource");
        setDataSource(targetDataSources, DataSourceType.SLAVE_LIS.name(), "slaveDataLisSource");
        setDataSource(targetDataSources, DataSourceType.SLAVE_PACS.name(), "slaveDataPacsSource");
        setDataSource(targetDataSources, DataSourceType.SLAVE_WS.name(), "slaveDataWsSource");
        return new DynamicDataSource(masterDataSource, targetDataSources);
    }