项目使用springmvc+mybatis+maven框架,数据库使用oracle数据库。model、dao、mapping的xml文件通过mybatis genrator自动生成。多数据源的切换通过DynamicDataSource这个类来决定,这个类其中主要的还是继承了AbstractoutingDataSource,因为AbstractoutingDataSource继承了AbstractDataSource。而AbstracDataSource又实现了DataSource接口。AbstractoutingDataSource里面有很关键的determineTargetDataSource方法,在这个方法里面解决了连接哪个数据源的key(Object lookupKey = determineCurrentLookupKey();),以及处理这个key来获取哪个数据源(DataSource dataSource = this.resolvedDataSources.get(lookupKey);)