引入依赖 spring-boot-starter-data-mongodb
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
<version>2.2.4.RELEASE</version>
</dependency>
增加配置
import com.mongodb.MongoClientURI;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.data.mongodb.MongoDbFactory;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.SimpleMongoDbFactory;
import org.springframework.data.mongodb.core.convert.DbRefResolver;
import org.springframework.data.mongodb.core.convert.DefaultDbRefResolver;
import org.springframework.data.mongodb.core.convert.MappingMongoConverter;
import org.springframework.data.mongodb.core.convert.MongoConverter;
import org.springframework.data.mongodb.core.mapping.MongoMappingContext;
/**
* @author hsf
* @since 2020/3/18
**/
@Configuration
public class MongoDbConfig {
@Value("${mongo.uri}")
private String uri;
@Bean
public MongoDbFactory mongoDbFactory() {
String uriStr = uri;
MongoClientURI mongoClientURI = new MongoClientURI(uriStr);
MongoDbFactory mongoDbFactory = new SimpleMongoDbFactory(mongoClientURI);
return mongoDbFactory;
}
@Bean
public MongoTemplate mongoTemplate(MongoDbFactory mongoDbFactory,
MongoConverter converter) {
return new MongoTemplate(mongoDbFactory, converter);
}
@Bean
public MappingMongoConverter mappingMongoConverter(MongoDbFactory factory,
MongoMappingContext context) {
DbRefResolver dbRefResolver = new DefaultDbRefResolver(factory);
MappingMongoConverter mappingConverter = new MappingMongoConverter(dbRefResolver,
context);
return mappingConverter;
}
}
创建一个entity
import lombok.Data;
/**
* @author hsf
* @since 2020/3/18
**/
@Data
public class MongoDemo {
private String name;
}
创建一个Dao
/**
* @author hsf
* @since 2020/3/18
**/
public interface MongoDemoDao {
void insert(MongoDemo mongoDemo);
}
实现Dao
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Component;
/**
* @author hsf
* @since 2020/3/18
**/
@Component
public class MongoDemoDaoImpl implements MongoDemoDao {
@Value("${mongo.data.collection}")
private String collection = "demo";
@Autowired
private MongoTemplate mongoTemplate;
@Override
public void insert(MongoDemo mongoDemo) {
mongoTemplate.insert(mongoDemo,collection);
}
}
直接引入就可以使用
@Autowired
private MongoDemoDao mongoDemoDao;
集群配置支持:集群直接在uri中配置即可