elasticsearch整合mybatis
1.在pom文件中添加依赖
<dependency>
<groupId>org.elasticsearch.plugin</groupId>
<artifactId>x-pack-sql-jdbc</artifactId>
</dependency>
2.配置文件中添加配置
datasource
basedata
es:
url: jdbc:es://ip:port
driverClassName: org.elasticsearch.xpack.sql.jdbc.EsDriver
initialSize: 5
minIdle: 1
maxActive: 20
maxWait: 60000
timeBetweenEvictionRunsMillis: 60000
minEvictableIdleTimeMillis: 300000
validationQuery: SELECT 1
testWhileIdle: true
testOnBorrow: false
testOnReturn: false
创建数据库配置类
@Configuration
@MapperScan(basePackages ="gep.dao.mapper.es",sqlSessionFactoryRef ="sqlSessionFactoryForEs")
public class EsXpackMybatisConfig {
@Autowired
PageInterceptor interceptor;
@Bean(name = "esDataSource", destroyMethod = "close", initMethod = "init")
@ConfigurationProperties(prefix = "datasource.database.es")
public DruidDataSource esDataSource() {
return new DruidDataSource();
}
@Bean("sqlSessionFactoryForEs")
public SqlSessionFactory sqlSessionFactoryForEs(@Qualifier("esDataSource") DataSource dataSource) throws Exception {
SqlSessionFactoryBean sessionFactoryBean = new SqlSessionFactoryBean();
sessionFactoryBean.setDataSource(dataSource);
PageAutoDialect.registerDialectAlias("es", MySqlDialect.class);
sessionFactoryBean.setPlugins(new Interceptor[]{interceptor});
ResourcePatternResolver resolver = new PathMatchingResourcePatternResolver();
Resource[] esResources = resolver.getResources("classpath:mapper/es/*.xml");
sessionFactoryBean.setMapperLocations(esResources);
return sessionFactoryBean.getObject();
}
@Bean("sqlSessionTemplateForEs")
public SqlSessionTemplate sqlSessionTemplateForEs(@Qualifier("sqlSessionFactoryForEs") SqlSessionFactory sqlSessionFactory) {
return new SqlSessionTemplate(sqlSessionFactory);
}
}