我是新手,正在学习Spring Boot和MongoDb。 正在尝试一些使用Mongo存储库和Spring Boot的例子。 但是在查阅了一些文档后发现,Mongo Template将是更好的选择。无法找到一个合适的Spring Boot与Mongo Template示例。
有人可以举个例子帮助我吗?
在尝试Mongo模板时,我们需要创建一个用户定义的存储库接口并扩展存储库或CRUD存储库吗?
我是新手,正在学习Spring Boot和MongoDb。 正在尝试一些使用Mongo存储库和Spring Boot的例子。 但是在查阅了一些文档后发现,Mongo Template将是更好的选择。无法找到一个合适的Spring Boot与Mongo Template示例。
有人可以举个例子帮助我吗?
在尝试Mongo模板时,我们需要创建一个用户定义的存储库接口并扩展存储库或CRUD存储库吗?
如需进一步解释,您甚至可以同时使用两种方法。
MongoRepository
只是一个抽象层,类似于 MongoTemplate
,但接口更简单。
如果您发现使用 Spring 的查询创建功能进行某些操作过于复杂,并且不想使用@Query
(例如,您希望在构建查询时获得 IDE 提示),则可以扩展 MongoRepository
并使用 MongoTemplate
作为查询机制。
首先,我们使用自定义接口扩展我们的存储库。
@Repository
public interface ArticleRepository extends MongoRepository<Article, String>, CustomArticleRepository {
}
然后声明接口。
public interface CustomArticleRepository {
List<Article> getArticleFilteredByPage(int page, int num);
}
然后实现我们自定义的仓库。在这里,我们可以进行自动装配MongoTemplate
并使用它来查询数据库。
public class CustomArticleRepositoryImpl implements CustomArticleRepository {
@Autowired
MongoTemplate mongoTemplate;
@Override
public List<Article> getArticleFilteredByPage(int page, int num) {
return mongoTemplate.findAll(Article.class)
.skip(page * num)
.take(num);
}
}
ArticleRepository
。@Service
public class ArticleServiceImpl {
@Autowired
private ArticleRepository articleRepository;
public List<Article> getArticleByPage() {
return articleRepository.getArticleFilteredByPage(1, 10);
}
}
我发现了一些使用Mongo模板的示例
http://docs.spring.io/spring-data/data-document/docs/current/reference/html/#mongo-template
http://www.mkyong.com/mongodb/spring-data-mongodb-hello-world-example/
如果您有兴趣使用JPA,请参见以下内容。<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.mongodb</groupId>
<artifactId>mongo-java-driver</artifactId>
<version>{mongo.driver.version}</version>
</dependency>
application.properties
#Mongo DB
spring.data.mongodb.database=
spring.data.mongodb.host=
spring.data.mongodb.password=
spring.data.mongodb.port=
spring.data.mongodb.repositories.enabled=
spring.data.mongodb.uri=
spring.data.mongodb.username=
SpringBoot类
@SpringBootApplication
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class })
public class UserApp {
MongoDB仓库
@Repository
public interface UserRepository extends MongoRepository<User, Long> {}