SpringBoot集成MongoDB使用

摘要

本文介绍了SpringBoot中如何集成MongoDB使用,并展示了增删改查及聚合方法使用。关键在于实体类的集合声明,以及业务逻辑类的API使用,让我们拿下它。

SpringBoot集成MongoDB

先往monggodb里导入初始数据

perl 复制代码
{"_id":"ORDER_001","orderDate":{"$date":"2024-10-23T10:30:00Z"},"orderStatus":"shipped","customer":{"customerId":"CUST_8901","name":"李明","contact":{"email":"liming@example.com","phone":"13800138001","address":{"street":"花园路 123 号","city":"上海","province":"上海","Codepostal":"200000","country":"中国"}},"membership":{"level":"gold","points":1500,"discount":0.1}},"shipping":{"shippingId":"SHIP_0056","carrier":"顺丰速运","trackingNumber":"SF1234567890","shippingAddress":{"street":"科技大道 45 号","city":"北京","province":"北京","postalCode":"100000","country":"中国"},"shippingDate":{"$date":"2024-10-25T14:00:00Z"},"estimatedDelivery":"2024-10-30T16:00:00Z"},"payment":{"paymentId":"PAY_7890","paymentMethod":"creditCard","paymentDate":{"$date":"2024-10-23T01:35:00Z"},"amount":2499.00,"currency":"CNY","paymentStatus":"completed"},"items":[{"itemId":"ITEM_001","product":{"productId":"PROD_4567","name":"智能手机","category":"electronics","description":"高性能智能手机,6.7 英寸屏幕,5G 网络,128GB 存储","price":399.900,"specs":{"processor":"骁龙 8 系列","ram":"8GB","battery":"4500mAh","color":"黑色"}},"quantity":1,"subtotal":3999.00,"discount":0.25,"total":2999.25},{"itemId":"ITEM_002","product":{"productId":"DPRO_8910","name":"无线耳机","category":"electronics","description":"高音质无线蓝牙耳机,主动降噪,舒适佩戴","price":899.00,"specs":{"batteryLife":"20 小时","bluetoothVersion":"5.2","color":"白色"}},"quantity":1,"subtotal":899.00,"discount":0.1,"total":809.10}],"total":{"subTotal":4898.00,"discounts":989.65,"tax":194.90,"shippingFee":0.00,"grandTotal":4103.25}}

{"_id":"ORDER_002","orderDate":{"$date":"2024-10-24T14:20:00Z"},"orderStatus":"processing","customer":{"customerId":"CUST_8902","name":"张伟","contact":{"email":"zhangwei@example.com","phone":"13800138002","address":{"street":"和平路 45 号","city":"天津","province":"天津","postalCode":"300000","country":"中国"}},"membership":{"level":"silver","points":800,"discount":0.05}},"shipping":{"shippingId":"SHIP_0057","carrier":"圆通速递","trackingNumber":"YTO987654321","shippingAddress":{"street":"民主路 67 号","city":"天津","province":"天津","postalCode":"300000","country":"中国"},"shippingDate":{"$date":"2024-10-26T09:00:00Z"},"estimatedDelivery":"2024-11-01T18:00:00Z"},"payment":{"paymentId":"PAY_7891","paymentMethod":"alipay","paymentDate":{"$date":"2024-10-24T14:25:00Z"},"amount":1299.00,"currency":"CNY","paymentStatus":"completed"},"items":[{"itemId":"ITEM_003","product":{"productId":"PROD_4568","name":"平板电脑","category":"electronics","description":"10.2 英寸平板电脑,A13 芯片,64GB 存储","price":2599.00,"specs":{"processor":"A13","ram":"4GB","battery":"6500mAh","color":"银色"}},"quantity":1,"subtotal":2599.00,"discount":0.15,"total":2209.15},{"itemId":"ITEM_004","product":{"productId":"PROD_8911","name":"智能手表","category":"electronics","description":"多功能智能手表,心率监测,运动追踪","price":799.00,"specs":{"batteryLife":"7 天","bluetoothVersion":"5.0","color":"黑色"}},"quantity":1,"subtotal":799.00,"discount":0.1,"total":719.10}],"total":{"subTotal":3398.00,"discounts":539.75,"tax":169.90,"shippingFee":0.00,"grandTotal":2968.15}}

{"_id":"ORDER_003","orderDate":{"$date":"2024-10-24T14:20:00Z"},"orderStatus":"shipped","customer":{"customerId":"CUST_8903","name":"王芳","contact":{"email":"wangfang@example.com","phone":"13800138003","address":{"street":"建设路 78 号","city":"重庆","province":"重庆","postalCode":"400000","country":"中国"}},"membership":{"level":"platinum","points":3200,"discount":0.15}},"shipping":{"shippingId":"SHIP_0058","carrier":"京东物流","trackingNumber":"JD9876543210","shippingAddress":{"street":"解放路 34 号","city":"重庆","province":"重庆","postalCode":"400000","country":"中国"},"shippingDate":{"$date":"2024-10-24T14:20:00Z"},"estimatedDelivery":"2024-10-31T14:00:00Z"},"payment":{"paymentId":"PAY_7892","paymentMethod":"wechatpay","paymentDate":{"$date":"2024-10-24T14:20:00Z"},"amount":3899.00,"currency":"CNY","paymentStatus":"completed"},"items":[{"itemId":"ITEM_005","product":{"productId":"PROD_4569","name":"笔记本电脑","category":"electronics","description":"15.6 英寸笔记本电脑,i7 处理器,16GB 内存,512GB SSD","price":5999.00,"specs":{"processor":"i7","ram":"16GB","battery":"5600mAh","color":"深空灰"}},"quantity":1,"subtotal":5999.00,"discount":0.2,"total":4799.20},{"itemId":"ITEM_006","product":{"productId":"PROD_8912","name":"机械键盘","category":"electronics","description":"机械键盘,青轴,背光,游戏专用","price":499.00,"specs":{"switchType":"青轴","backlight":"RGB","layout":"全键"}},"quantity":1,"subtotal":499.00,"discount":0.1,"total":449.10}],"total":{"subTotal":6498.00,"discounts":1299.70,"tax":324.90,"shippingFee":0.00,"grandTotal":5522.20}}

{"_id":"ORDER_004","orderDate":{"$date":"2023-10-24T14:20:00Z"},"orderStatus":"pending","customer":{"customerId":"CUST_8904","name":"刘强","contact":{"email":"liuqiang@example.com","phone":"13800138004","address":{"street":"中山路 90 号","city":"广州","province":"广东","postalCode":"510000","country":"中国"}},"membership":{"level":"bronze","points":200,"discount":0.02}},"shipping":{"shippingId":"SHIP_0059","carrier":"中通快递","trackingNumber":"ZTO123456789","shippingAddress":{"street":"天河路 56 号","city":"广州","province":"广东","postalCode":"510000","country":"中国"},"shippingDate":{"$date":"2023-10-24T14:20:00Z"},"estimatedDelivery":"2024-11-03T17:00:00Z"},"payment":{"paymentId":"PAY_7893","paymentMethod":"bankTransfer","paymentDate":{"$date":"2023-10-24T14:20:00Z"},"amount":1599.00,"currency":"CNY","paymentStatus":"pending"},"items":[{"itemId":"ITEM_007","product":{"productId":"PROD_4570","name":"数码相机","category":"electronics","description":"2420 万像素数码相机,4K 视频,WiFi 连接","price":3999.00,"specs":{"sensor":"APS-C","megapixels":24.2,"zoom":"18-55mm","color":"黑色"}},"quantity":1,"subtotal":3999.00,"discount":0.1,"total":3599.10},{"itemId":"ITEM_008","product":{"productId":"PROD_8913","name":"蓝牙音箱","category":"electronics","description":"便携式蓝牙音箱,立体声,防水设计","price":299.00,"specs":{"batteryLife":"12 小时","bluetoothVersion":"5.0","waterproof":"IPX7"}},"quantity":1,"subtotal":299.00,"discount":0.05,"total":284.05}],"total":{"subTotal":4298.00,"discounts":429.80,"tax":214.90,"shippingFee":0.00,"grandTotal":4082.10}}

{"_id":"ORDER_005","orderDate":{"$date":"2023-10-24T14:20:00Z"},"orderStatus":"shipped","customer":{"customerId":"CUST_8905","name":"赵敏","contact":{"email":"zhaomin@example.com","phone":"13800138005","address":{"street":"南京路 110 号","city":"南京","province":"江苏","postalCode":"210000","country":"中国"}},"membership":{"level":"gold","points":2100,"discount":0.1}},"shipping":{"shippingId":"SHIP_0060","carrier":"韵达快递","trackingNumber":"YD9876543210","shippingAddress":{"street":"汉中路 78 号","city":"南京","province":"江苏","postalCode":"210000","country":"中国"},"shippingDate":{"$date":"2023-10-24T14:20:00Z"},"estimatedDelivery":"2024-11-04T15:00:00Z"},"payment":{"paymentId":"PAY_7894","paymentMethod":"creditCard","paymentDate":{"$date":"2023-10-24T14:20:00Z"},"amount":2399.00,"currency":"CNY","paymentStatus":"completed"},"items":[{"itemId":"ITEM_009","product":{"productId":"PROD_4571","name":"游戏主机","category":"electronics","description":"高性能游戏主机,4K HDR,1TB 存储","price":2999.00,"specs":{"processor":"定制 CPU","gpu":"定制 GPU","storage":"1TB SSD","color":"黑色"}},"quantity":1,"subtotal":2999.00,"discount":0.2,"total":2399.20}],"total":{"subTotal":2999.00,"discounts":599.80,"tax":149.95,"shippingFee":0.00,"grandTotal":2549.15}}

{"_id":"ORDER_006","orderDate":{"$date":"2023-10-24T14:20:00Z"},"orderStatus":"processing","customer":{"customerId":"CUST_8906","name":"孙雨","contact":{"email":"sunny@example.com","phone":"13800138006","address":{"street":"成都路 124 号","city":"成都","province":"四川","postalCode":"610000","country":"中国"}},"membership":{"level":"silver","points":650,"discount":0.07}},"shipping":{"shippingId":"SHIP_0061","carrier":"德邦快递","trackingNumber":"DB9876543210","shippingAddress":{"street":"锦江路 56 号","city":"成都","province":"四川","postalCode":"610000","country":"中国"},"shippingDate":{"$date":"2023-10-24T14:20:00Z"},"estimatedDelivery":"2024-11-06T16:00:00Z"},"payment":{"paymentId":"PAY_7895","paymentMethod":"alipay","paymentDate":{"$date":"2023-10-24T14:20:00Z"},"amount":1799.00,"currency":"CNY","paymentStatus":"completed"},"items":[{"itemId":"ITEM_010","product":{"productId":"PROD_4572","name":"智能音箱","category":"electronics","description":"智能语音助手,高品质音频,多房间音乐","price":499.00,"specs":{"audioOutput":"360 度环绕","connectivity":"WiFi, Bluetooth","color":"白色"}},"quantity":2,"subtotal":998.00,"discount":0.1,"total":898.20},{"itemId":"ITEM_011","product":{"productId":"PROD_8914","name":"电动牙刷","category":"health","description":"声波电动牙刷,智能计时,多种清洁模式","price":399.00,"specs":{"batteryLife":"30 天","chargingType":"感应充电","color":"蓝色"}},"quantity":1,"subtotal":399.00,"discount":0.05,"total":379.05},{"itemId":"ITEM_012","product":{"productId":"PROD_8915","name":"电子血压计","category":"health","description":"上臂式电子血压计,高精度测量,大屏幕显示","price":299.00,"specs":{"measurementType":"上臂式","display":"LCD","memory":"60 组数据"}},"quantity":1,"subtotal":299.00,"discount":0.03,"total":289.13}],"total":{"subTotal":1696.00,"discounts":179.60,"tax":84.80,"shippingFee":0.00,"grandTotal":1601.20}}

引入依赖,不用添加版本号

xml 复制代码
<!-- mongodb -->
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-data-mongodb</artifactId>
</dependency>

配置数据源,连接本地mongodb服务器

yaml 复制代码
# 数据源配置
spring:
  data:
    mongodb:
      uri: mongodb://username:password@host:port/database?authSource=admin

定义实体类,映射集合

ini 复制代码
package org.coffeebeans.entity;

import java.util.Date;
import java.util.List;
import lombok.Data;
import java.math.BigDecimal;
import lombok.experimental.Accessors;
import org.springframework.data.annotation.Id;
import org.springframework.data.mongodb.core.mapping.Document;

/**
 * <li>ClassName: Order </li>
 * <li>Description: 创建一个实体类,用@Document注解标注,表示这是一个MongoDB的集合(Collection) </li>
 * <li>Author: OakWang </li> 
 * <li>Version: V1.0</li>
 */
@Data
@Accessors(chain = true)
@Document(collection = "orders")// 指定集合名称
public class Order {

    @Id //主键
    private String id;
    private Date orderDate;
    private String orderStatus;
    private Customer customer;
    private Shipping shipping;
    private Payment payment;
    private List<OrderItem> items;
    private OrderTotal total;
}

//以下方便展示,放入一个文件里
@Data
class Address {
    private String street;
    private String city;
    private String province;
    private String postalCode;
    private String country;
}
@Data
class Contact {
    private String email;
    private String phone;
    private Address address;
}
@Data
class Customer {
    private String customerId;
    private String name;
    private Contact contact;
    private Membership membership;
}
@Data
class Membership {
    private String level;
    private int points;
    private double discount;
}
@Data
class OrderItem {
    private String itemId;
    private Product product;
    private int quantity;
    private BigDecimal subtotal;
    private double discount;
    private BigDecimal total;
}
@Data
class OrderTotal {
    private BigDecimal subTotal;
    private BigDecimal discounts;
    private BigDecimal tax;
    private BigDecimal shippingFee;
    private BigDecimal grandTotal;
}
@Data
class Payment {
    private String paymentId;
    private String paymentMethod;
    private Date paymentDate;
    private BigDecimal amount;
    private String currency;
    private String paymentStatus;
}
@Data
class Product {
    private String productId;
    private String name;
    private String category;
    private String description;
    private BigDecimal price;
    private ProductSpecs specs;
}
@Data
class ProductSpecs {
    private String processor;
    private String ram;
    private String battery;
    private String color;
    private String batteryLife;
    private String bluetoothVersion;
}
@Data
class Shipping {
    private String shippingId;
    private String carrier;
    private String trackingNumber;
    private Address shippingAddress;
    private Date shippingDate;
    private String estimatedDelivery;
}

定义业务逻辑类

java 复制代码
package org.coffeebeans.service;

import cn.hutool.core.date.DateUtil;
import org.coffeebeans.entity.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Sort;
import org.springframework.data.mongodb.core.MongoTemplate;
import org.springframework.data.mongodb.core.aggregation.*;
import org.springframework.data.mongodb.core.query.Criteria;
import org.springframework.data.mongodb.core.query.Query;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;

/**
 * <li>ClassName: OrderService </li>
 * <li>Author: OakWang </li>
 * <li>Version: V1.0</li>
 */
@Service
public class OrderService {

    @Autowired
    private MongoTemplate mongoTemplate;

    // 保存订单
    @Transactional
    public Order saveOrder() {
        // 创建订单对象
        Order order = new Order();
        order.setId("ORDER_00999");
        order.setOrderDate(new Date());
        order.setOrderStatus("shipped");

        // 设置客户信息
        Customer customer = new Customer();
        customer.setCustomerId("CUST_8901");
        customer.setName("李明");

        Contact contact = new Contact();
        contact.setEmail("liming@example.com");
        contact.setPhone("13800138001");

        Address address = new Address();
        address.setStreet("花园路 123 号");
        address.setCity("上海");
        address.setProvince("上海");
        address.setPostalCode("200000");
        address.setCountry("中国");

        contact.setAddress(address);
        customer.setContact(contact);

        Membership membership = new Membership();
        membership.setLevel("gold");
        membership.setPoints(1500);
        membership.setDiscount(0.1);

        customer.setMembership(membership);
        order.setCustomer(customer);

        // 设置物流信息
        Shipping shipping = new Shipping();
        shipping.setShippingId("SHIP_0056");
        shipping.setCarrier("顺丰速运");
        shipping.setTrackingNumber("SF1234567890");

        Address shippingAddress = new Address();
        shippingAddress.setStreet("科技大道 45 号");
        shippingAddress.setCity("北京");
        shippingAddress.setProvince("北京");
        shippingAddress.setPostalCode("100000");
        shippingAddress.setCountry("中国");

        shipping.setShippingAddress(shippingAddress);
        shipping.setShippingDate(new Date());
        shipping.setEstimatedDelivery("2024-10-30T16:00:00Z");
        order.setShipping(shipping);

        // 设置支付信息
        Payment payment = new Payment();
        payment.setPaymentId("PAY_7890");
        payment.setPaymentMethod("creditCard");
        payment.setPaymentDate(new Date());
        payment.setAmount(new BigDecimal("2499.00"));
        payment.setCurrency("CNY");
        payment.setPaymentStatus("completed");
        order.setPayment(payment);

        // 设置订单项
        List<OrderItem> items = new ArrayList<>();

        OrderItem item1 = new OrderItem();
        item1.setItemId("ITEM_001");

        Product product1 = new Product();
        product1.setProductId("PROD_4567");
        product1.setName("智能手机");
        product1.setCategory("electronics");
        product1.setDescription("高性能智能手机,6.7 英寸屏幕,5G 网络,128GB 存储");
        product1.setPrice(new BigDecimal("3999.00"));

        ProductSpecs specs1 = new ProductSpecs();
        specs1.setProcessor("骁龙 8 系列");
        specs1.setRam("8GB");
        specs1.setBattery("4500mAh");
        specs1.setColor("黑色");
        product1.setSpecs(specs1);

        item1.setProduct(product1);
        item1.setQuantity(1);
        item1.setSubtotal(new BigDecimal("3999.00"));
        item1.setDiscount(0.25);
        item1.setTotal(new BigDecimal("2999.25"));
        items.add(item1);

        OrderItem item2 = new OrderItem();
        item2.setItemId("ITEM_002");

        Product product2 = new Product();
        product2.setProductId("DPRO_8910");
        product2.setName("无线耳机");
        product2.setCategory("electronics");
        product2.setDescription("高音质无线蓝牙耳机,主动降噪,舒适佩戴");
        product2.setPrice(new BigDecimal("899.00"));

        ProductSpecs specs2 = new ProductSpecs();
        specs2.setBatteryLife("20 小时");
        specs2.setBluetoothVersion("5.2");
        specs2.setColor("白色");
        product2.setSpecs(specs2);

        item2.setProduct(product2);
        item2.setQuantity(1);
        item2.setSubtotal(new BigDecimal("899.00"));
        item2.setDiscount(0.1);
        item2.setTotal(new BigDecimal("809.10"));
        items.add(item2);
        order.setItems(items);

        // 设置订单总计
        OrderTotal total = new OrderTotal();
        total.setSubTotal(new BigDecimal("4898.00"));
        total.setDiscounts(new BigDecimal("989.65"));
        total.setTax(new BigDecimal("194.90"));
        total.setShippingFee(new BigDecimal("0.00"));
        total.setGrandTotal(new BigDecimal("4103.25"));
        order.setTotal(total);

        // 保存订单
        return mongoTemplate.save(order);
    }

    // 根据ID查找订单
    public Order findOrderById(String id) {
        return mongoTemplate.findById(id, Order.class);
    }

    // 根据ID查找订单(使用Query和Criteria)
    public Order findOrder() {
        Query query = new Query();
        Criteria criteria= Criteria.where("orderStatus").is("shipped")
                .and("total.shippingFee").is(0)
                .and("_id").in("ORDER_001", "ORDER_002", "ORDER_003", "ORDER_004", "ORDER_005", "ORDER_006");
        query.addCriteria(criteria);
        return mongoTemplate.findOne(query, Order.class);
    }

    // 查找多个订单(使用Query和Criteria)
    public List<Order> findOrders() {
        Query query = new Query();
        Criteria criteria = Criteria.where("orderStatus").is("shipped")
                .and("total.shippingFee").is(0)
                .and("_id").in("ORDER_001", "ORDER_002", "ORDER_003", "ORDER_004", "ORDER_005", "ORDER_006");
        query.addCriteria(criteria);
        System.out.println("总数是:" + mongoTemplate.count(query, Order.class));
        return mongoTemplate.find(query, Order.class);
    }

    // 更新订单
    @Transactional
    public Order updateOrder(String id) {
        // 根据ID查找订单
        Order order = mongoTemplate.findById(id, Order.class);
        if (order != null) {
            // 更新订单信息
            order.setOrderStatus("修改completed");
            // 可以更新其他需要修改的字段
            return mongoTemplate.save(order);
        } else {
            return null; // 或者抛出异常,根据业务需求处理
        }
    }

    // 删除订单
    @Transactional
    public void deleteOrder(String id) {
        Query query = new Query();
        Criteria criteria = Criteria.where("_id").is(id);
        query.addCriteria(criteria);
        mongoTemplate.remove(query,Order.class);
        // 删除集合
        //mongoTemplate.dropCollection(Order.class);
    }


    //聚合查询
    public List<Map> getAggregationResults() {
        //创建一个匹配操作,用于过滤文档,只返回满足 criteria 条件的文档。
        Criteria criteria = Criteria.where("_id")
                .in("ORDER_001", "ORDER_002", "ORDER_003", "ORDER_004", "ORDER_005", "ORDER_006")
                .and("orderStatus").is("shipped")
                .and("total.subTotal").gte(1000).lte(7000)
                .and("orderDate").gte(DateUtil.parse("2022-10-26"))
                //items数组里需要满足的条件,包含什么内容
                .and("items").elemMatch(Criteria.where("itemId").in("ITEM_001","ITEM_002","ITEM_005"));
        MatchOperation match = Aggregation.match(criteria);

        //根据orderStatus创建一个分组操作,对所有文档的total.grandTotal进行累加,并将结果存储在字段 totalAmount 中。
        GroupOperation groupOperation = Aggregation.group("_id").sum("total.grandTotal").as("总数");

        //创建一个投影操作,返回内容排除payment字段
        // 创建投影操作,排除 payment 字段
        ProjectionOperation project = Aggregation.project().andExclude("payment");

        // 创建排序操作,按 totalAmount 降序排序
        SortOperation sort = Aggregation.sort(Sort.Direction.DESC, "总数");

        // 创建限制结果数量操作
        AggregationOperation limit = Aggregation.limit(5);

        //构建聚合管道
        Aggregation aggregation = Aggregation.newAggregation(match, groupOperation, project, sort, limit);

        //执行聚合查询
        AggregationResults<Map> results = mongoTemplate.aggregate(aggregation, "orders", Map.class);

        //获取聚合查询的结果
        return results.getMappedResults();
    }
}

定义控制层

kotlin 复制代码
package org.coffeebeans.controller;

import org.coffeebeans.entity.Order;
import org.coffeebeans.service.OrderService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.util.List;
import java.util.Map;

/**
 * <li>ClassName: OrderController </li>
 * <li>Author: OakWang </li>
 * <li>Version: V1.0</li>
 */
@RestController
@RequestMapping("/")
public class OrderController {

    @Autowired
    private OrderService orderService;

    @PostMapping("/saveOrder")
    public Order saveOrder() {
        return orderService.saveOrder();

    }

    @GetMapping("/findOrderById")
    public Order findOrderById(@RequestParam("id") String id) {
        return orderService.findOrderById(id);
    }

    @GetMapping("/findOrder")
    public Order findOrder() {
        return orderService.findOrder();
    }

    @GetMapping("/findOrders")
    public List<Order> findOrders() {
        return orderService.findOrders();
    }

    @PutMapping("/updateOrder")
    public Order updateOrder(@RequestParam("id") String id) {
        return orderService.updateOrder(id);
    }

    @DeleteMapping("/deleteOrder")
    public String deleteOrder(@RequestParam("id") String id) {
        orderService.deleteOrder(id);
        return"删除成功";
    }

    @GetMapping("/getAggregationResults")
    public List<Map> getAggregationResults() {
        return orderService.getAggregationResults();
        /*
        [
            {
                "_id": "ORDER_003",
                "总数": 5522.2
            },
            {
                "_id": "ORDER_001",
                "总数": 4103.25
            }
        ]
         */
    }

}

测试接口成功

总结

以上我们了解了SpringBoot如何集成MongoDB使用,并展示了如何利用MongoTemplate来进行增删改查,以及聚合函数的使用方式。

关注公众号:咖啡Beans

在这里,我们专注于软件技术的交流与成长,分享开发心得与笔记,涵盖编程、AI、资讯、面试等多个领域。无论是前沿科技的探索,还是实用技巧的总结,我们都致力于为大家呈现有价值的内容。期待与你共同进步,开启技术之旅。

相关推荐
用户83071968408217 小时前
Spring Boot 集成 RabbitMQ :8 个最佳实践,杜绝消息丢失与队列阻塞
spring boot·后端·rabbitmq
Java水解18 小时前
Spring Boot 视图层与模板引擎
spring boot·后端
Java水解18 小时前
一文搞懂 Spring Boot 默认数据库连接池 HikariCP
spring boot·后端
洋洋技术笔记1 天前
Spring Boot Web MVC配置详解
spring boot·后端
初次攀爬者2 天前
Kafka 基础介绍
spring boot·kafka·消息队列
用户8307196840822 天前
spring ai alibaba + nacos +mcp 实现mcp服务负载均衡调用实战
spring boot·spring·mcp
Java水解2 天前
SpringBoot3全栈开发实战:从入门到精通的完整指南
spring boot·后端
初次攀爬者3 天前
RocketMQ在Spring Boot上的基础使用
java·spring boot·rocketmq
花花无缺3 天前
搞懂@Autowired 与@Resuorce
java·spring boot·后端
Derek_Smart3 天前
从一次 OOM 事故说起:打造生产级的 JVM 健康检查组件
java·jvm·spring boot