最近项目使用到spring boot,需要集成mongodb、solr、redis等数据源,使用强大的spring data,还是很简单的,分享一下经验。spring boot推崇领配置,所以所有配置在application.properties中完成。mongodb、solr、redis等都是以集群的方式连接。
application.properties中的配置信息
#mongodb配置
spring.data.mongodb.host=192.168.8.100
spring.data.mongodb.port=27017
spring.data.mongodb.database=mmia_rd
#solr配置
spring.data.solr.host = http://192.168.8.101/solr/
#redis配置
spring.redis.cluster.nodes=192.168.8.101:6381,192.168.8.101:6382,192.168.8.101:6383,192.168.8.102:6384,192.168.8.102:6385,192.168.8.102:6386
spring.redis.cluster.maxRedirects=8
spring.redis.timeout=5000
使用
spring data的Repository接口,使用起来很方便。
mongodb有
public interface MongoRepository<T, ID extends Serializable> extends PagingAndSortingRepository<T, ID>, QueryByExampleExecutor<T> { }
solr有
public interface SolrCrudRepository<T, ID extends Serializable> extends SolrRepository<T, ID>, PagingAndSortingRepository<T, ID> { }简单的CRUD可以直接使用。命名参照spring data jpa标准命名,可以自动生成查询语句
redis使用
public class RedisTemplate<K, V> extends RedisAccessor implements RedisOperations<K, V>, BeanClassLoaderAware在类中直接注入
@Resource(name="stringRedisTemplate") private ListOperations<String,String> listValueOperations; @Resource(name="redisTemplate") ValueOperations<Object,Article> valueOperations;对redis的操作是使用 RedisTemplate中的
private ValueOperations<K, V> valueOps; private ListOperations<K, V> listOps; private SetOperations<K, V> setOps; private ZSetOperations<K, V> zSetOps;完成的。
对string类型的操作,spring data 已经为我们封装了
public class StringRedisTemplate extends RedisTemplate<String, String> {如果是简单使用String类型,可以直接注入使用。