Para agentes de IA: um índice de documentação está disponível em https://www.mongodb.com/pt-br/docs/llms.txt — as versões de markdown de todas as páginas estão disponíveis anexando .md a qualquer caminho de URL.
Menu Docs

Configurar o iniciador do Spring Boot

Neste guia, você pode aprender como configurar o iniciador do Spring Boot que a Extensão MongoDB para Hibernar ORM fornece. Para saber como instalar o iniciador e criar um aplicação que o utilize, consulte Introdução ao Spring Boot Starter.

Para ativar o iniciador, defina a propriedade spring.jpa.database-platform como MongoDB no arquivo application.properties do seu aplicativo, conforme mostrado no exemplo a seguir:

spring.jpa.database-platform=MongoDB

O iniciador usa essa propriedade padrão do Spring Boot e não requer nenhuma configuração dedicada própria. Quando a propriedade tem qualquer outro valor ou não está definida, o iniciador permanece inativo. Um iniciador inativo não afeta seu aplicação.

O inicial reutiliza a instância MongoClient que o Spring Boot cria a partir das propriedades spring.mongodb.*. O iniciador não cria um cliente próprio e não gerencia o ciclo de vida do cliente, portanto, seu aplicação usa um pool de conexões para persistência da Java Persistence API (JPA), verificações de integridade, métricas e qualquer outro componente que use o cliente.

O inicial utiliza o nome do banco de dados configurado na propriedadespring.mongodb.database. Se você não configurar esta propriedade, o iniciador utilizará o nome do banco de dados na string de conexão que você configurou na propriedadespring.mongodb.uri .

Para personalizar este cliente, declare um bean MongoClientSettingsBuilderCustomizer. Essa interface personaliza a instância MongoClientSettings.Builder antes que o Spring Boot crie o cliente.

O iniciante usa as propriedades padrão do spring.jpa.*. A tabela a seguir descreve as propriedades comumente usadas:

Propriedade
Descrição

spring.jpa.hibernate.ddl-auto

Especifica a ação de gerenciamento de esquema que o Hibername ORM executa na inicialização. O valor padrão para unidades de persistência apoiadas MongoDB é none.

spring.jpa.show-sql

Especifica se o Hibername ORM registra as declarações que ele gera.

spring.jpa.properties.*

Passa as propriedades de configuração do Hibernado ORM diretamente para o Hibernado ORM.

spring.jpa.open-in-view

Especifica se o contexto de persistência permanece aberto durante uma solicitação da web. Essa propriedade é habilitada por padrão em aplicativos da web de servlet.

spring.data.jpa.repositories.enabled

Especifica se o iniciador habilita a verificação do repositório JPA do Spring Data. Esta propriedade está habilitada por padrão.

Você também pode declarar os feijões HibernamePropertiesCustomizer e EntityManagerFactoryBuilderCustomizer para modificar a configuração que o iniciador cria. A interface HibernatePropertiesCustomizer personaliza as propriedades ORM do Hibername que o iniciador passa para o EntityManagerFactory, e a interface EntityManagerFactoryBuilderCustomizer personaliza o construtor que a cria.

O iniciador verifica entidades nos pacotes que você registra usando a anotação @EntityScan. Se você não registrar nenhum pacote, o iniciador verificará o pacote de sua classe @SpringBootApplication e seus subpacotes.

Declare a anotação @EntityScan na sua classe principal do aplicação , conforme mostrado no exemplo a seguir:

@SpringBootApplication
@EntityScan("org.example.model")
public class MovieApplication {
// ...
}

O iniciador habilita repositórios Spring Data JPA no mesmo escopo do pacote . Se você mesmo declarar a anotação @EnableJpaRepositories, sua declaração terá precedência sobre a do iniciante.

O inicial habilita esses repositórios sem um SQL DataSource e não traz nenhum pool de conexões SQL. Portanto, um aplicação somente do MongoDB não requer nenhuma propriedadespring.datasource.url e o Spring Boot não usa sua classeDataSourceAutoConfiguration.

Ao contrário de um aplicação SQL Spring Boot , que mapeia as propriedades da entidade para os nomes de coluna snake_case por padrão, o iniciador mapeia cada propriedade da entidade para um campo de documento com o mesmo nome. Uma entidade que você inicializa por meio do iniciador persiste da mesma forma que uma entidade que você inicializa diretamente por meio do Hibername ORM.

Para usar uma estratégia de nomenclatura diferente, defina a estratégia explicitamente no arquivo application.properties do seu aplicativo, conforme mostrado no exemplo a seguir:

spring.jpa.hibernate.naming.physical-strategy=org.hibernate.boot.model.naming.PhysicalNamingStrategySnakeCaseImpl

Aviso

Migre documentos antes de alterar a estratégia de nomenclatura

A alteração da estratégia de nomenclatura afeta apenas os documentos que seu aplicação grava após a alteração da estratégia. O MongoDB não migra documentos existentes, portanto, uma coleção pode conter documentos que usam vários tipos de nomes de campo . Migre seus documentos existentes antes de alterar a estratégia de nomenclatura.

Quando o iniciador está ativo, mas não consegue configurar uma unidade de persistência, ele relata o erro na inicialização. A tabela a seguir descreve esses erros:

Erro
de conflitos

Nenhum MongoClient está disponível para o iniciante usar.

Adicione a dependência spring-boot-mongodb e defina as propriedades spring.mongodb.* ou declare um MongoClient bean em seu aplicação.

Nenhum nome de banco de dados disponível.

Adicione o nome do banco de dados à string de conexão na propriedadespring.mongodb.uri, configure a propriedadespring.mongodb.database ou defina o nome utilizando um bean MongoConfigurationContributor.

Para se conectar por meio de um cliente que somente o iniciante usa, como um cliente com credenciais diferentes, declare um bean MongoConfigurationContributor que define o cliente e o nome do banco de dados . Quando você declara esse bean, o iniciador usa seu cliente em vez do cliente gerenciado pela Spring.

Se você declarar mais de um bean MongoConfigurationContributor, o iniciador os aplicará na ordem em que você especificar usando a anotação @Order e o último bean que definir um valor determinará esse valor.

O iniciador tem as seguintes limitações:

  • A anotação @DataJpaTest não é suportada. Para testar com relação ao MongoDB, use a anotação @SpringBootTest, que carrega o contexto completo do aplicação .

  • O iniciador configura uma unidade de persistência única. Para usar mais de uma unidade de persistência, configure você mesmo as unidades adicionais.