Descripción
Este artículo es solo una introducción muy simple, springboot + mongodb + thymeleaf es
solo para referencia, si hay un error, corríjame
=====================================
1. Crea un proyecto maven
2. Importa las dependencias relacionadas
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-devtools</artifactId>
<scope>runtime</scope>
<optional>true</optional>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.projectlombok</groupId>
<artifactId>lombok</artifactId>
<optional>true</optional>
</dependency>
</dependencies>
Tres, escribe el archivo de propiedades
spring.data.mongodb.uri=mongodb://127.0.0.1:27017
spring.data.mongodb.database=coffee
Asegúrese de que mongodb esté encendido
Cuarto, escribir clases de entidad
package com.pojo;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;
import org.springframework.data.mongodb.core.mapping.Field;
@Setter
@Getter
@Document("product")
public class Products {
// @Id的作用的指定id,避免和下面的那个重复
@Id
private Object _id;
@Field
private double id;
private String name;
private String describe;
private String introduce;
private String descriptor;
private String[] picture;
private String type;
private double deleted;
public Products(Object _id, double id, String name, String describe, String introduce, String descriptor, String[] picture, String type, double deleted) {
this._id = _id;
this.id = id;
this.name = name;
this.describe = describe;
this.introduce = introduce;
this.descriptor = descriptor;
this.picture = picture;
this.type = type;
this.deleted = deleted;
}
public Products() {
}
}
Nota: La clase de entidad debe corresponder al nombre de la colección correspondiente, si no corresponde es necesario agregarlo @Document("集合名称")
para indicarlo.
@Id
La función es: debido a que el atributo id está personalizado, la anotación se agrega para indicar que "_id" es la clave principal.
@Field
La función es: si el nombre del campo es "nombre_usuario", pero la clase de entidad escribe "nombre_usuario", agregue esta anotación y compile automáticamente "nombre_usuario" en "nombre_usuario" al compilar.
Cinco, escriba la
interfaz de definición de capa de persistencia (servicio)
package com.dao;
import com.pojo.Products;
import org.springframework.stereotype.Repository;
import java.util.List;
@Repository
public interface ProductDao{
public List<Products> findAll();
public void insert(Products product);
public void delete(String id);
public void update(Products product);
}
@Repository se usa en la interfaz de la capa de persistencia Esta anotación es para dar una clase de implementación de la interfaz a Spring para su administración.
Seis, implementa la interfaz`
package com.service;
import com.dao.ProductDao;
import com.pojo.Products;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
@Service
public class ProductService implements ProductDao {
@Autowired
MongoTemplate mongoTemplate;
@Override
public List<Products> findAll() {
List<Products> list = mongoTemplate.findAll(Products.class);
for (Products pro : list) {
System.out.println("========>>>" + pro);
}
System.out.println("执行了service ==> findAll方法");
return list;
}
@Override
public void insert(Products product) {
mongoTemplate.insert(product);
}
@Override
public void delete(String id) {
mongoTemplate.remove(id);
}
@Override
public void update(Products product) {
mongoTemplate.save(product);
}
}
@Service
La función es: si una clase está anotada con @Service, se registrará automáticamente en el contenedor Spring.
@Autowired
El papel de es: anotar variables de miembros de clase, métodos y constructores, y dejar que Spring complete el trabajo del ensamblaje automático de beans.
Siete, escribe la capa de control
package com.controller;
import com.pojo.Products;
import com.service.ProductService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.ui.Model;
import org.springframework.web.bind.annotation.RequestMapping;
import java.util.List;
@Controller
public class ProductController {
@Autowired
ProductService productService;
@RequestMapping("/productPreview")
public String toProductPreview(Model model){
List<Products> list=productService.findAll();
model.addAttribute("list",list);
System.out.println("总长度:"+list.size());
for(Products pro:list){
System.out.println("========>>>"+pro);
}
return "productPreview";
}
}
@Controller
El rol de es: usado para marcar una clase, la clase marcada con él es un objeto Controlador SpringMVC. El procesador de despacho escaneará el método de la clase que usa la anotación y detectará si el método usa la anotación @RequestMapping.
@RequestMapping
El rol: se utiliza para procesar las anotaciones de la asignación de direcciones solicitada. El punto simple es que el objeto de controlador correspondiente (señal de tráfico) se puede encontrar accediendo a la dirección en los corchetes de comentarios.
Ocho, escribe la página html
<!DOCTYPE html>
<html lang="en" xmlns:th="http://www.w3.org/1999/xhtml">
<head>
<meta charset="UTF-8">
<title>Title</title>
</head>
<body>
<table>
<tr>
<td>id</td>
<td>名字</td>
<td>短评</td>
<td>简介</td>
<td>价格</td>
<td>假删除</td>
<td>类型</td>
</tr>
<tr th:each="pro : ${list}">
<td th:text="${pro.id}">id</td>
</tr>
</table>
</body>
</html>
xmlns:th="http://www.w3.org/1999/xhtml"
: Xmlns es en realidad una abreviatura de XML NameSpace. Indica la definición de dónde proviene la etiqueta xml utilizada aquí.
th:each="pro : ${list}
: Sintaxis Thymeleaf, que se utiliza para recorrer la lista / matriz obtenida del backend.
th:text="${pro.id}"
: Sintaxis Thymeleaf, utilizada para obtener el atributo id del objeto obtenido en la lista.
Nota: El nombre de esta página corresponde al valor de retorno de la capa del controlador.
该页面的名字为:productPreview
controller层:
@RequestMapping("/productPreview")
public String toProductPreview(Model model){
List<Products> list=productService.findAll();
model.addAttribute("list",list);
System.out.println("总长度:"+list.size());
for(Products pro:list){
System.out.println("========>>>"+pro);
}
return "productPreview";
}
Nueve, captura de pantalla
mongodb
En este punto, puede escribir un proyecto springboot + mongodb + thymeleaf muy simple. Este artículo solo proporciona ideas para la referencia de amigos de mongodb de integración de springboot que no tienen ni idea; más páginas exquisitas deben ser exploradas por mí mismo, después de todo, también soy un error de Baidu por un día para hacer algo tan simple. Los frutos de mis propios esfuerzos son los más fragantes.
Finalmente, si hay errores o deficiencias en el texto, deje un mensaje para corregirlo.