Java 带MongoTemplate的弹簧靴
我不熟悉Spring Boot和MongoDb。 尝试使用Mongo存储库和Spring Boot的一些示例。 但在浏览了一些文档后发现,Mongo模板将是一个更好的选择。无法使用Mongo模板示例获得正确的Spring引导Java 带MongoTemplate的弹簧靴,java,mongodb,spring-boot,mongotemplate,mongorepository,Java,Mongodb,Spring Boot,Mongotemplate,Mongorepository,我不熟悉Spring Boot和MongoDb。 尝试使用Mongo存储库和Spring Boot的一些示例。 但在浏览了一些文档后发现,Mongo模板将是一个更好的选择。无法使用Mongo模板示例获得正确的Spring引导 有人能帮我举个例子吗 在尝试Mongo模板时,是否需要创建用户定义的存储库界面并扩展存储库或CRUD存储库 我发现了一些使用Mongo模板的示例 如果您对使用JPA感兴趣,请参见下文 <dependency> <groupId>org.s
我发现了一些使用Mongo模板的示例 如果您对使用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>
SpringBoot类
@SpringBootApplication
@EnableAutoConfiguration(exclude = { DataSourceAutoConfiguration.class, HibernateJpaAutoConfiguration.class })
public class UserApp {
Mongo存储库
@Repository
public interface UserRepository extends MongoRepository<User, Long> {}
@存储库
公共接口UserRepository扩展了MongoRepository{}
为了进一步解释,您甚至可以同时使用两者
MongoRepository
只是一个抽象层,类似于MongoTemplate
,但接口更简单
如果您发现使用Spring执行某种操作太复杂,并且不想使用(例如,在构造查询时需要IDE类型提示),那么可以扩展MongoRepository
并使用MongoTemplate
作为查询机制
首先,我们使用自定义接口扩展存储库
@Repository
public interface ArticleRepository extends MongoRepository<Article, String>, CustomArticleRepository {
}
public interface CustomArticleRepository {
List<Article> getArticleFilteredByPage(int page, int num);
}
最后,我们使用文章库
@Service
public class ArticleServiceImpl {
@Autowired
private ArticleRepository articleRepository;
public List<Article> getArticleByPage() {
return articleRepository.getArticleFilteredByPage(1, 10);
}
}
@服务
公共类ArticleServiceImpl{
@自动连线
私人物品储存库;
公共列表getArticleByPage(){
返回articleRepository.getArticleFilteredByPage(1,10);
}
}
Hi Sarvanna,我的问题是在使用Mongo模板时是否需要创建存储库类?据我所知,Mongo Template和Mongo Repository是两个不同的实体。你不需要同时创建它们,模板基本上是连接工厂的包装器,提供基本的CRUD操作。我发布的链接是用于使用模板的,但是如果你想使用JPA,你可以看到我发布的代码。你找到解决方案了吗?我们可以在同一个项目中同时使用模板和存储库吗?假设如果我想实现一个自定义存储库,我可以使用模板来实现吗?
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);
}
}
@Service
public class ArticleServiceImpl {
@Autowired
private ArticleRepository articleRepository;
public List<Article> getArticleByPage() {
return articleRepository.getArticleFilteredByPage(1, 10);
}
}