Acesse MongoDB-Spring em notas de estudo de entrada do Spring 14

O conteúdo do curso vem da época geek jogando Spring Family Bucket, invadido e excluído , o link é o seguinte
https://time.geekbang.org/course/intro/100023501

Sétimo dia 1/2

Preparação antes de usar MongoDB

NoSQL

Quatro blocos: KV tipo Redis e Memcache,
tipo de documento MongoDB e Couchbase,
armazenamento de coluna HBase e Cassandra,
banco de dados gráfico Neo4j

Banco de dados MongoDB

Suporte por meio do Spring Data MongoDB
Como JDBCTemplate, Spring Data fornece modelo MongoDB
como repositório JPA, Spring Data fornece repositório MongoDB

anotação

@Document é semelhante a @Entity
@Id
MongoDB executa autodividimento de acordo com a Id para lidar com a complexidade de vários fragmentação de dados

Inicialize a biblioteca e as permissões do MongoDB

O nome de usuário e a senha foram configurados na última nota, o root
primeiro inicia o contêiner

docker start mongo

Em seguida, inicie o bash, conecte-se ao banco de dados

docker exec -it mongo bash
mongo -u root -p root

Crie a biblioteca springbucks (use realmente esta biblioteca, mas o sistema irá criá-la automaticamente)

use springbucks

Crie usuários e permissões com base na entrada de linha

 db.createUser(
  {
  user: "springbucks",
  pwd: "springbucks",
  roles: [
  { role: "readWrite", db: "springbucks" }
  ]
  }

Insira a descrição da imagem aqui

Acesse MongoDB na primavera

Execute o programa, você pode ver as informações de configuração e saída.
Insira a descrição da imagem aqui
Conecte-se ao banco de dados através do cmd. Você pode ver as informações inseridas armazenadas no banco de dados de documentos.
Insira a descrição da imagem aqui

Use MongoTemplate

A anotação de @Id no modelo MongoDB é springframework.data.annotation.Id em vez de Id no JPA

Configure spring.data.mongodb.uri = in application.properties para especificar o banco de dados

Código falso

@SpringBootApplication
@Slf4j
public class MongoDemoApplication implements ApplicationRunner {
    
    
	@Autowired
	private MongoTemplate mongoTemplate;

	public static void main(String[] args) {
    
    
		SpringApplication.run(MongoDemoApplication.class, args);
	}

	@Bean
	public MongoCustomConversions mongoCustomConversions() {
    
    
		return new MongoCustomConversions(Arrays.asList(new MoneyReadConverter()));
	}

	@Override
	public void run(ApplicationArguments args) throws Exception {
    
    
	
    //逻辑代码
	···
	}

Use MongoRepository

Adicione a anotação EnableMongoRepositories para habilitar o suporte

Código falso

@Slf4j
@SpringBootApplication
@EnableMongoRepositories
public class MongoRepositoryDemoApplication implements CommandLineRunner {
    
    
	@Autowired
	private CoffeeRepository coffeeRepository;

	public static void main(String[] args) {
    
    
		SpringApplication.run(MongoRepositoryDemoApplication.class, args);
	}

	@Bean
	public MongoCustomConversions mongoCustomConversions() {
    
    
		return new MongoCustomConversions(Arrays.asList(new MoneyReadConverter()));
	}

	@Override
	public void run(String... args) throws Exception {
    
    
	    //逻辑代码
	···
	}

Classe CoffeeRepository

package geektime.spring.data.mongodemo.repository;

import geektime.spring.data.mongodemo.model.Coffee;
import org.springframework.data.mongodb.repository.MongoRepository;

import java.util.List;

public interface CoffeeRepository extends MongoRepository<Coffee, String> {
    
    
    List<Coffee> findByName(String name);
}

Digressão: por que injetar o bean de MongoCustomConversions

O método MoneyReadConverter converte o documento em dinheiro

Como o Spring Data mongoDB é configurado no Spring Boot


mongoDataAutoConfiguration sob mongo sob dados sob autoconfig de inicialização de primavera

Verifica-se que um mongoCustomConvertions é passado no meio, que não contém nenhuma conversão, então podemos substituí-lo, desde que passemos na conversão definida por nós mesmos

E também marcado com a anotação ConditionalOnMissingBean, ou seja, nenhum Bean não contém nenhuma conversão é usado por padrão
Insira a descrição da imagem aqui

Acho que você gosta

Origin blog.csdn.net/weixin_43596589/article/details/112833963
Recomendado
Clasificación