整合Mybatis
1、xml文件扫描问题
刚学习SpringBoot时困扰了很久的问题:扫描不到Mapper的配置文件。
SpringBoot配置文件中MyBatis扫描Mapper位置写的是
mybatis.mapper-locations=classpath:mapper/*.xml
但在使用idea创建Mapper.xml文件时没有加后缀,而是
没有写.xml后缀,并在下一步中选择xml文件类型。这样虽然idea识别了这是个xml文件,但由于没有.xml后缀Mybatis扫描不到
2、Mybatis配置多数据源,做数据集成
在配置多数据源的时候,因为分主从数据源,因此一定要在创建某一数据源的时候加上@Primary注解
/**
* @author Jigubigu
* @version 1.0
* @date 2019/9/25 18:40
*/
@Configuration
@MapperScan(basePackages = "com.example.demo.mapper.master",sqlSessionTemplateRef = "masterSqlSessionTemplate")
public class MasterDataSourceConfig {
/**
* 创建数据源
*@return DataSource
*/
@Bean(name = "masterDataSource")
@ConfigurationProperties(prefix = "spring.datasource.master")
@Primary
public DataSource masterDataSource() {
return DataSourceBuilder.create().build();
}
/**
* 创建工厂
*@param dataSource
*@throws Exception
*@return SqlSessionFactory
*/
@Bean(name = "masterSqlSessionFactory")
!!!!!!!!!!!!
!!@Primary!!
!!!!!!!!!!!!
public SqlSessionFactory masterSqlSessionFactory(@Qualifier("masterDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean bean = new SqlSessionFactoryBean();
bean.setDataSource(dataSource);
bean.setMapperLocations(new PathMatchingResourcePatternResolver().getResources("classpath:mapper/master/*.xml"));
return bean.getObject();
}
/**
* 创建事务
*@param dataSource
*@return DataSourceTransactionManager
*/
@Bean(name = "masterTransactionManager")
@Primary
public DataSourceTransactionManager masterDataSourceTransactionManager(@Qualifier("masterDataSource") DataSource dataSource) {
return new DataSourceTransactionManager(dataSource);
}
/**
* 创建模板
*@param sqlSessionFactory
*@return SqlSessionTemplate
*/
@Bean(name = "masterSqlSessionTemplate")
@Primary
public SqlSessionTemplate masterSqlSessionTemplate(@Qualifier("masterSqlSessionFactory") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}
整合Dubbo
1、zookeeper连接超时
因为Dubbo和Zookeeper是在云服务上配的,没用使用虚拟机,因此需要使防火墙开放2181端口
/sbin/iptables -I INPUT -p tcp --dport 2181 -j ACCEPT
2、修改注解
- ServiceImpl中 spring的@Service改为 dubbo中的@service
- Controller中的 @Autowired改为dubbo 中的@Reference
整合SpringCloud
1、引入Eureka时Maven无法下载jar包
在网上查找后发现,是由于IDEA自带的Maven版本太新不兼容导致,因此我将Maven改成3.6.1就可以了。