编写完之后,启动程序,在浏览器输入:http://127.0.0.1:8084/druid/index.html ,然后输入设置的用户名和密码,便可以访问Web界面了。
多数据源配置
======
在进行多数据源配置之前,先分别在springBoot和springBoot_test的mysql数据库中执行如下脚本。
– springBoot库的脚本
CREATE TABLE t_user
(
id
int(11) NOT NULL AUTO_INCREMENT COMMENT ‘自增id’,
name
varchar(10) DEFAULT NULL COMMENT ‘姓名’,
age
int(2) DEFAULT NULL COMMENT ‘年龄’,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=15 DEFAULT CHARSET=utf8
– springBoot_test库的脚本
CREATE TABLE t_student
(
id
int(11) NOT NULL AUTO_INCREMENT,
name
varchar(16) DEFAULT NULL,
age
int(11) DEFAULT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8
注:为了偷懒,将两张表的结构弄成一样了!不过不影响测试!
在application.properties中已经配置这两个数据源的信息,上面已经贴出了一次配置,这里就不再贴了。
这里重点说下 第二个数据源的配置。和上面的MasterDataSourceConfig.java差不多,区别在与没有使用@Primary 注解和名称不同而已。需要注意的是MasterDataSourceConfig.java对package和mapper的扫描是精确到目录的,这里的第二个数据源也是如此。
那么代码如下:
@Configuration
@MapperScan(basePackages = ClusterDataSourceConfig.PACKAGE, sqlSessionFactoryRef = “clusterSqlSessionFactory”)
public class ClusterDataSourceConfig {
static final String PACKAGE = “com.pancm.dao.cluster”;
static final String MAPPER_LOCATION = “classpath:mapper/cluster/*.xml”;
@Value(“${cluster.datasource.url}”)
private String url;
@Value(“${cluster.datasource.username}”)
private String username;
@Value(“${cluster.datasource.password}”)
private String password;
@Value(“${cluster.datasource.driverClassName}”)
private String driverClass;
// 和MasterDataSourceConfig一样,这里略
@Bean(name = “clusterDataSource”)
public DataSource clusterDataSource() {
DruidDataSource dataSource = new DruidDataSource();
dataSource.setUrl(url);
dataSource.setUsername(username);
dataSource.setPassword(password);
dataSource.setDriverClassName(driverClass);
// 和MasterDataSourceConfig一样,这里略 …
return dataSource;
}
@Bean(name = “clusterTransactionManager”)
public DataSourceTransactionManager clusterTransactionManager() {
return new DataSourceTransactionManager(clusterDataSource());
}
@Bean(name = “clusterSqlSessionFactory”)
public SqlSessionFactory clusterSqlSessionFactory(@Qualifier(“clusterDataSource”) DataSource clusterDataSource)
throws Exception {
final SqlSessionFactoryBean sessionFactory = new SqlSessionFactoryBean();
sessionFactory.setDataSource(clusterDataSource);
sessionFactory.setMapperLocations(new PathMatchingResourcePatternResolver().getResources(ClusterDataSourceConfig.MAPPER_LOCATION));
return sessionFactory.getObject();
}
}
成功写完配置之后