/** * Copyright 2018-2020 stylefeng & fengshuonan (sn93@qq.com) *

* Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at *

* http://www.apache.org/licenses/LICENSE-2.0 *

* Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package cn.stylefeng.guns.config.datasource; import cn.stylefeng.guns.base.db.factory.AtomikosFactory; import cn.stylefeng.roses.core.config.properties.DruidProperties; import cn.stylefeng.roses.core.mutidatasource.aop.MultiSourceExAop; import org.springframework.beans.factory.annotation.Qualifier; import org.springframework.boot.context.properties.ConfigurationProperties; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.context.annotation.Primary; import javax.sql.DataSource; import static cn.stylefeng.guns.base.db.context.DataSourceContext.MASTER_DATASOURCE_NAME; /** * 多数据源配置
*

* 注:由于引入多数据源,所以让spring事务的aop要在多数据源切换aop的后面 * * @author stylefeng * @Date 2017/5/20 21:58 */ @Configuration public class DataSourceConfig { /** * 默认主数据源配置 */ @Bean @Primary @ConfigurationProperties(prefix = "spring.datasource") public DruidProperties druidProperties() { return new DruidProperties(); } /** * 主数据源实例 */ @Primary @Bean public DataSource dataSourcePrimary(@Qualifier("druidProperties") DruidProperties druidProperties) { return AtomikosFactory.create(MASTER_DATASOURCE_NAME, druidProperties); } /** * 多数据源切换的aop */ @Bean public MultiSourceExAop multiSourceExAop() { return new MultiSourceExAop(); } }