Conte -nos sobre a origem do Springboot e tio Lind.ddd
O MongoDB é encapsulado secundário em Lind.DDD (tio .NET e .NET Core) e o usa como uma espécie de repositório. Para os desenvolvedores, apenas cure algumas interfaces padrão. Na estrutura de trampolim, é um pouco semelhante ao Lind do tio e também é encapsulado secundário. Os desenvolvedores precisam apenas prestar atenção ao seu próprio negócio. A operação CUR padrão é concluída pelo Springboot para nos ajudar a implementar. Geralmente, projetaremos um repositório de interface com objetos de entidade, para que ele possa herdar a interface padrão do MONGO e, em seguida, injetar a implementação padrão na estrutura de injeção de dependência de trampolim. Tudo isso é o que a estrutura nos ajuda a implementar!
Implementar o MongoDB no projeto
Se o projeto precisar usar o MongoDB para persistir dados, geralmente poderá ser alcançado através das seguintes etapas:
1 Adicione a dependência da pacote Build.gradle
Compile ('org.springframework.boot: spring-boot-starter-data-mongodb')Se houver um projeto de teste de unidade, você poderá usar o MongoDB incorporado para que ele não precise se comunicar com recursos externos. Como funciona: faça o download do pacote MongoDB de remotamente, inicie -o, exclua a coleção gerada após a conclusão do teste
testCompile ('de.flapdoodle.embed: de.flapdoodle.embed.mongo: 2.0.3')2 Adicione o item de configuração padrão Application.yml
Primavera: Dados: MongoDB: URI: MONGODB: //192.168.99.100: 27017/Teste Senha: Guest Nome de usuário: Convidado
3Ad a classe de entidade correspondente à coleção MongoDB
/** * Endereço. * /@Data@noargsconstructor@alargsconstructorpublic endereço { /*** número. */ @ID ID de sequência privada; /*** Província. */ Província de cordas privadas; /** * Cidade. */ cidade de cordas privadas; /*** Distrito. */ Distrito de String Private; /** * Status. */ status privado status;}4 Adicione a classe de repositório correspondente à entidade. Ele precisa herdar o repositório padrão do MongoDB estendido. Ao mesmo tempo, o repositório MongoDB suporta métodos de convenções automáticas. Os desenvolvedores podem usar a anotação @Query para determinar a lista de campo retornada, que é muito necessária para documentos de big data. Se a interface padrão não puder atender aos nossos requisitos, precisamos definir uma interface personalizada e implementá -la. No exemplo a seguir, nosso endereçoextrepository é uma interface personalizada. Nosso endereço de interface externo precisa ser herdado. Observe que o tio acredita que isso quebrou o princípio de abertura e fechamento orientado a objetos. Yuan Fang, o que você acha!
/*** A interface de armazenamento de endereço fornecida para o exterior, herdando todas as interfaces relacionadas a endereços. * /Endereço de interface pública REPENDREPOSIENTE Estende o endereçoextrepository, Mongorepository <Endereço, String> { /*** Obtenha a lista de endereços com base na província. * * Província @param * @return */ @Query (FIELDS = "{'Província': 0}") Lista <Deped> findAddressesByProvince (Província de String); /*** Obtenha a lista de endereços com base na província e na província. * * Província @param * @param city * @return */@query () // campos indica o campo contido na lista <deedent> findaddressesbyprovinceAndCityAndDistict (província de string, string city, string distrito);}Implementação personalizada de armazenamento, usando o objeto Mongotemplate para interagir com o banco de dados MongoDB!
/*** Implementação do repositório de regras especiais. */public classe endereçoextrepositoryImpl implementa o endereçoextrepository {@aUTowired Mongotemplate Mongotemplate; @Override Public Endereço FindyByprovyEndCity (Província de String, String City) {Query Query = New Query (Criteria.where ("Província"). Is (Província) .e ("City"). Is (cidade)); return mongotemplate.findone (Query, endereço.class, "endereço"); }}5. No controlador, você pode acessar o repositório e objetos de negócios diretamente através da anotação @Autowired.
@RestControllerPublic Classe MongoController {// Repositório. @AUTOWIRED PRIVADO REPOSITION DE ENDEREPOSITÓRIO; // Negócio de usuário. @AUTOWIRED PRIVADO UserService UserService; /*** Obtenha a lista de endereços. * * @return */@RequestMapping ("/endereço/{Província}") endereço público getAddress (@Pathvariable ("Província") Província de String) {System.out.println ("1, Província =" + Província); return userservice.getAddress (província); }}Resumir
O exposto acima é uma explicação detalhada dos exemplos de integração e uso do MangoDB de troca apresentado pelo editor. Espero que seja útil para você. Se você tiver alguma dúvida, deixe -me uma mensagem e o editor responderá a você a tempo. Muito obrigado pelo seu apoio ao site wulin.com!