Spring Загрузка с помощью MongoTemplate
Я новичок в Spring Boot и MongoDb.
Попробуйте несколько примеров с Mongo Repositories и Spring Boot.
Но, пройдя через некоторые из найденных документов, Монгольский шаблон станет лучшим вариантом. Не удалось получить правильный пример Spring Boot with Mongo Template.
-
Может кто-то, пожалуйста, помогите мне с примером для этого.
-
Нужно ли создавать пользовательский интерфейс репозиториев и расширять репозитории или репозиторий CRUD при попытке создать шаблон Mongo?
Ответы
Ответ 1
Я нашел несколько примеров с использованием шаблона 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 {
Монгонский репозиторий
@Repository
public interface UserRepository extends MongoRepository<User, Long> {}
Ответ 2
Для дальнейшего объяснения, вы можете даже использовать оба одновременно.
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);
}
}