首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >使用MongoTemplate的Spring Boot

使用MongoTemplate的Spring Boot
EN

Stack Overflow用户
提问于 2016-07-10 11:18:41
回答 2查看 25.4K关注 0票数 11

我是Spring Boot和MongoDb的新手。尝试一些使用Mongo存储库和Spring Boot的示例。但在浏览了一些文档后发现,Mongo模板会是一个更好的选择。无法获得正确的Spring Boot with Mongo模板示例。

  1. 有人能帮我举个同样的例子吗?
  2. 在尝试Mongo模板时,我们需要创建用户定义的存储库界面并扩展存储库或CRUD存储库吗?
EN

回答 2

Stack Overflow用户

发布于 2019-06-26 08:54:35

如需进一步解释,您甚至可以同时使用这两种方法。

MongoTemplate一样,MongoRepository只是一个抽象层,但接口更简单。

如果您发现使用Spring执行某种操作太复杂,并且不知何故不想使用@Query (例如,您希望在构造查询时使用query-creation类型提示),您可以扩展MongoRepository并使用MongoTemplate作为查询机制。

首先,我们使用自定义接口扩展我们的存储库。

代码语言:javascript
复制
@Repository
public interface ArticleRepository extends MongoRepository<Article, String>, CustomArticleRepository {
}

然后声明接口。

代码语言:javascript
复制
public interface CustomArticleRepository {
    List<Article> getArticleFilteredByPage(int page, int num);
}

然后实现我们的自定义存储库。我们可以在这里自动连接MongoTemplate,并使用它来查询数据库。

代码语言:javascript
复制
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

代码语言:javascript
复制
@Service
public class ArticleServiceImpl {

    @Autowired
    private ArticleRepository articleRepository;

    public List<Article> getArticleByPage() {
        return articleRepository.getArticleFilteredByPage(1, 10);
    }
}
票数 7
EN

Stack Overflow用户

发布于 2016-07-10 12:49: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感兴趣,请参阅下面的内容

代码语言:javascript
复制
<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

代码语言:javascript
复制
#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类

代码语言:javascript
复制
@SpringBootApplication
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class })
public class UserApp {

Mongo存储库

代码语言:javascript
复制
@Repository
public interface UserRepository extends MongoRepository<User, Long> {}
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/38288258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档