cl
2026-04-17 5936c125b47d34ed1bb85bd0ddba4cb4052c865f
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
package com.vincent.rsf.server.common.config;
 
import com.alibaba.druid.pool.DruidDataSource;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.boot.autoconfigure.condition.ConditionalOnProperty;
import org.springframework.boot.context.properties.EnableConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jdbc.core.JdbcTemplate;
 
import javax.sql.DataSource;
 
/**
 * cus_item_sync_view 专用副库连接;未配置 cus-item-sync.datasource.url 时不创建 Bean,查询回退主库 Mapper
 */
@Configuration
@ConditionalOnProperty(prefix = "cus-item-sync.datasource", name = "url")
@EnableConfigurationProperties(CusItemSyncDataSourceProperties.class)
public class CusItemSyncDataSourceConfig {
 
    @Bean(name = "cusItemSyncDataSource")
    public DataSource cusItemSyncDataSource(CusItemSyncDataSourceProperties p) {
        DruidDataSource ds = new DruidDataSource();
        ds.setUrl(p.getUrl());
        ds.setUsername(p.getUsername());
        ds.setPassword(p.getPassword());
        ds.setDriverClassName(p.getDriverClassName());
        ds.setInitialSize(2);
        ds.setMinIdle(2);
        ds.setMaxActive(10);
        ds.setMaxWait(30000);
        ds.setTestWhileIdle(true);
        ds.setValidationQuery("SELECT 'x'");
        return ds;
    }
 
    @Bean(name = "cusItemSyncJdbcTemplate")
    public JdbcTemplate cusItemSyncJdbcTemplate(@Qualifier("cusItemSyncDataSource") DataSource dataSource) {
        return new JdbcTemplate(dataSource);
    }
}