1application配置文件
#database
spring.datasource.dashboard.driver-class-name: com.mysql.cj.jdbc.Driver
spring.datasource.dashboard.hikari.pool-name: monitor-pool-hikaricp
spring.datasource.dashboard.url: jdbc:mysql://******/******?useUnicode=ture&characterEncoding=UTF-8&serverTimezone=GMT%2B8
spring.datasource.dashboard.username: ******
spring.datasource.dashboard.password: ******
# data database
spring.datasource.dal.driver-class-name: com.mysql.cj.jdbc.Driver
spring.datasource.dal.hikari.pool-name: monitor-pool-hikaricp
spring.datasource.dal.url: jdbc:mysql://******/user?useUnicode=ture&characterEncoding=UTF-8&serverTimezone=GMT%2B8
spring.datasource.dal.username: ******
spring.datasource.dal.password: ******
spring.main.allow-bean-definition-overriding: true
config配置,对两个数据源配置,并制定哪写dao用哪个mysql
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Configuration
@MapperScan(basePackages = {"com.ht.user.service.dao.xxx", "com.ht.user.service.dao.xx2"},
sqlSessionFactoryRef = "dalSqlSessionFactory")//basePackages指定使用改配置的dao的包名
public class DalSQLDataSourceConfig {
@Value("${spring.datasource.dal.url}")
private String url;
@Value("${spring.datasource.dal.username}")
private String username;
@Value("${spring.datasource.dal.password}")
private String password;
@Value("${spring.datasource.dal.driver-class-name:com.mysql.cj.jdbc.Driver}")
private String driver;
@Value("${spring.datasource.dal.hikari.pool-name:monitor-pool-hikaricp}")
private String poolName;
@Bean("dalsqlDataSource")
@Qualifier("dalsqlDataSource")
public DataSource getDataSource() {
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setDriverClassName(driver);
dataSource.setPoolName(poolName);
return dataSource;
}
@Bean(name = "dalSqlSessionFactory")
public SqlSessionFactory primarySqlSessionFactory(@Qualifier("dalsqlDataSource") DataSource datasource,
@Qualifier("dalsqlConfig") org.apache.ibatis.session.Configuration configuration1)
throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(datasource);
bean.setConfiguration(configuration1);
//分页插件
Interceptor interceptor = new PageInterceptor();
Properties properties = new Properties();
properties.setProperty("helperDialect", "mysql");
properties.setProperty("offsetAsPageNum", "true");
properties.setProperty("rowBoundsWithCount", "true");
properties.setProperty("reasonable", "true");
properties.setProperty("supportMethodsArguments", "true");
//properties.setProperty("params","pageNum=pageNumKey;pageSize=pageSizeKey;");
interceptor.setProperties(properties);
bean.setPlugins(new Interceptor[]{interceptor});
return bean.getObject();
}
@Bean("dalSqlSessionTemplate")
public SqlSessionTemplate mySqlSessionTemplate(@Qualifier("dalSqlSessionFactory") SqlSessionFactory sessionFactory) {
return new SqlSessionTemplate(sessionFactory);
}
@Bean("dalsqlConfig")
@ConfigurationProperties(prefix = "mybatis.configuration")
public org.apache.ibatis.session.Configuration configuration1() {
return new org.apache.ibatis.session.Configuration();
}
}
@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@Configuration
@MapperScan(basePackages = "com.ht.info.dao.user", sqlSessionFactoryRef = "mySqlSessionFactory")
public class MySQLDataSourceConfig {
@Value("${spring.datasource.dashboard.url}")
private String url;
@Value("${spring.datasource.dashboard.username}")
private String username;
@Value("${spring.datasource.dashboard.password}")
private String password;
@Value("${spring.datasource.dashboard.driver-class-name}")
private String driver;
@Value("${spring.datasource.dashboard.hikari.pool-name}")
private String poolName;
@Bean("mysqlDataSource")
@Qualifier("mysqlDataSource")
@Primary
public DataSource getDataSource() {
HikariDataSource dataSource = new HikariDataSource();
dataSource.setJdbcUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setDriverClassName(driver);
dataSource.setPoolName(poolName);
return dataSource;
}
@Bean(name = "mySqlSessionFactory")
@Primary
public SqlSessionFactory primarySqlSessionFactory(@Qualifier("mysqlDataSource") DataSource datasource,
@Qualifier("mysqlConfig") org.apache.ibatis.session.Configuration configuration2)
throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(datasource);
bean.setConfiguration(configuration2);
//分页插件
Interceptor interceptor = new PageInterceptor();
Properties properties = new Properties();
properties.setProperty("helperDialect", "mysql");
properties.setProperty("offsetAsPageNum", "true");
properties.setProperty("rowBoundsWithCount", "true");
properties.setProperty("reasonable", "true");
properties.setProperty("supportMethodsArguments", "true");
//properties.setProperty("params","pageNum=pageNumKey;pageSize=pageSizeKey;");
interceptor.setProperties(properties);
bean.setPlugins(new Interceptor[]{interceptor});
return bean.getObject();
}
@Bean("mySqlSessionTemplate")
@Primary
public SqlSessionTemplate mySqlSessionTemplate(@Qualifier("mySqlSessionFactory") SqlSessionFactory sessionFactory) {
return new SqlSessionTemplate(sessionFactory);
}
@Bean("mysqlConfig")
@ConfigurationProperties(prefix = "mybatis.configuration")
public org.apache.ibatis.session.Configuration configuration() {
return new org.apache.ibatis.session.Configuration();
}
}