当前位置: 首页 > news >正文

基于Springboot + vue + mysql 车辆充电桩管理系统 设计实现

 

目录

📚 前言

📑摘要

1.1 研究背景

📑操作流程

📚 系统架构设计

📚 数据库设计

   💬 E-R表

3.4.2  数据库具体设计

系统功能模块

系统首页

用户注册

充电桩

个人中心

用户后台管理模块

用户登录

充电桩报修管理

管理员和维修员登录

管理员功能模块

管理员登录

维修员管理

用户管理

电桩类别管理

充电桩管理

充电桩报修管理

维修回复管理

系统管理

维修员功能模块

维修员登录

充电桩报修管理

维修回复管理

✒️ 源码实现

部分功能

springboot全局配置文件 

💖 源码获取

😁 联系方式


📚 前言

📑博客主页:@丘比特惩罚陆

💖欢迎关注:点赞收藏⭐留言✒
💬系列专栏:Java Springboot 毕设实战专栏
🎮 加入社区: 丘比特惩罚陆
🥇人生格言:选对方向,每走一步都是进步!
✒️欢迎大佬指正,一起学习!一起加油!

👏 希望大家能小手一动,帮忙点个赞!

📑摘要

1.1 研究背景

随着信息化时代的到来,管理系统都趋向于智能化、系统化,车辆充电桩管理系统也不例外,但目前国内仍都使用人工管理,市场规模越来越大,同时信息量也越来越庞大,人工管理显然已无法应对时代的变化,而车辆充电桩管理系统能很好地解决这一问题,轻松应对车辆充电桩平时的工作,既能提高人力物力财力,又能加快工作的效率,取代人工管理是必然趋势。

本车辆充电桩管理系统以springboot作为框架,b/s模式以及MySql作为后台运行的数据库,同时使用Tomcat用为系统的服务器。本系统主要包括首页、个人中心、维修员管理、用户管理、电桩类别管理、充电桩管理、充电桩报修管理、维修回复管理、系统管理等功能,通过这些功能的实现基本能够满足日常车辆充电桩管理的操作。

本文着重阐述了车辆充电桩管理系统的分析、设计与实现,首先介绍开发系统和环境配置、数据库的设计,接着说明功能模块的详细实现,最后进行了总结。


📑家具商城平台的特点

本次设计任务是要设计一个车辆充电桩管理系统,通过这个系统能够满足车辆充电桩管理系统的管理功能。系统的主要功能包括首页、个人中心、维修员管理、用户管理、电桩类别管理、充电桩管理、充电桩报修管理、维修回复管理、系统管理等功能。

管理员可以根据系统给定的账号进行登录,登录后可以进入车辆充电桩管理系统对车辆充电桩所有模块进行管理。包括查看和修改自己的个人信息以及登录密码。

该系统为每一个用户都分配了一个用户账号,用户通过账号的登录可以在系统中查看车辆充电桩信息及对个人信息进行修改等功能。

📑操作流程

                                                            

                                                           流程图

📚 系统架构设计

管理系统的总体架构图形如下:


📚 数据库设计

   💬 E-R表

数据库的E-R图反映了实体、实体的属性和实体之间的联系。下面是各个实体以及实体的属性。

用户注册实体属性图如下所示:

图3-2用户注册实体属性图

充电桩实体属性图如下所示:

图3-3充电桩实体属性图

3.4.2  数据库具体设计

根据E-R图,设计每张表的变量名,变量的类型及主键等如下。

表名3-1:配置文件

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

name

varchar

100

配置参数名称

value

varchar

100

配置参数值

表名3-2:充电桩报修

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dianzhuangbianhao

varchar

200

电桩编号

dianzhuangleibie

varchar

200

电桩类别

tupian

varchar

200

图片

suochuweizhi

varchar

200

所处位置

guzhangmiaoshu

longtext

4294967295

故障描述

yonghuzhanghao

varchar

200

用户账号

yonghuxingming

varchar

200

用户姓名

baoxiushijian

datetime

报修时间

表名3-3:充电桩

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dianzhuangbianhao

varchar

200

电桩编号

dianzhuangleibie

varchar

200

电桩类别

tupian

varchar

200

图片

shurudianya

varchar

200

输入电压

shuchugonglv

varchar

200

输出功率

shiyongfangshi

longtext

4294967295

使用方式

zhuyishixiang

longtext

4294967295

注意事项

suochuweizhi

varchar

200

所处位置

meishidanjia

float

每时单价

表名3-4:用户

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

yonghuzhanghao

varchar

200

用户账号

yonghuxingming

varchar

200

用户姓名

mima

varchar

200

密码

xingbie

varchar

200

性别

nianling

int

年龄

lianxidianhua

varchar

200

联系电话

表名3-5:维修员

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

weixiugonghao

varchar

200

维修工号

weixiuxingming

varchar

200

维修姓名

mima

varchar

200

密码

xingbie

varchar

200

性别

lianxidianhua

varchar

200

联系电话

shenfenzheng

varchar

200

身份证

jiatingzhuzhi

varchar

200

家庭住址

表名3-6:维修回复

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dianzhuangbianhao

varchar

200

电桩编号

dianzhuangleibie

varchar

200

电桩类别

tupian

varchar

200

图片

suochuweizhi

varchar

200

所处位置

yonghuzhanghao

varchar

200

用户账号

yonghuxingming

varchar

200

用户姓名

dengjishijian

datetime

登记时间

weixiugonghao

varchar

200

维修工号

weixiuxingming

varchar

200

维修姓名

weixiuzhuangtai

varchar

200

维修状态

weixiudengji

longtext

4294967295

维修登记

表名3-7:用户表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

username

varchar

100

用户名

password

varchar

100

密码

role

varchar

100

角色

管理员

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

表名3-8:token表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

userid

bigint

用户id

username

varchar

100

用户名

tablename

varchar

100

表名

role

varchar

100

角色

token

varchar

200

密码

addtime

timestamp

新增时间

CURRENT_TIMESTAMP

expiratedtime

timestamp

过期时间

CURRENT_TIMESTAMP

表名3-9:收藏表

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

userid

bigint

用户id

refid

bigint

收藏id

tablename

varchar

200

表名

name

varchar

200

收藏名称

picture

varchar

200

收藏图片

type

varchar

200

类型(1:收藏,21:赞,22:踩)

1

inteltype

varchar

200

推荐类型

表名3-10:充电常识

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

title

varchar

200

标题

introduction

longtext

4294967295

简介

picture

varchar

200

图片

content

longtext

4294967295

内容

表名3-11:电桩类别

字段名称

类型

长度

字段说明

主键

默认值

id

bigint

主键

主键

addtime

timestamp

创建时间

CURRENT_TIMESTAMP

dianzhuangleibie

varchar

200

电桩类别

📚 系统功能的具体实现

系统功能模块

系统首页

车辆充电桩管理系统,用户进入到系统首页,可以查看首页、充电桩、充电常识、个人中心、后台管理等内容进行操作

/*** 登录** @param username* @param password*/@RequestMapping("/login.do")public void login(String username,String password,HttpServletRequest request,HttpServletResponse response) throws IOException {User user = userService.checkLogin(username, password);if (user != null) {//登录成功 重定向到首页request.getSession().setAttribute("user", user);response.sendRedirect("/mall/index.html");} else {throw new LoginException("登录失败! 用户名或者密码错误");}}
用户注册

在用户注册页面中输入用户账号、用户姓名、密码、确认密码、年龄、联系电话等内容进行用户注册操作

充电桩

充电桩;在充电桩页面中可以查看电桩编号、充电桩类别、输入电压、输出功率、使用方式、所处位置、每时单价、注意事项、图片、地图等内容;并进行报修或收藏操作;

个人中心

个人中心;在个人中心页面中输入用户账号、用户姓名、密码、性别、年龄、联系电话等内容进行更新信息,并可以根据需要对我的收藏进行详细的操作管理,

用户后台管理模块

用户登录

进入车辆充电桩管理系统可以对首页、个人中心、充电桩报修管理、维修回复管理等功能进行详细操作

充电桩报修管理

在充电桩报修管理页面中可以查看索引、电桩编号、电桩类别、图片、气息位置、用户账号、用户姓名、报修时间等内容,并进行详情,修改和删除等操作;

管理员和维修员登录

管理员和维修员登录,通过填写注册时输入的用户名、密码、选择角色等信息进行登录操作

管理员功能模块

管理员登录

管理员登录进入车辆充电桩管理系统可以查看首页、个人中心、维修员管理、用户管理、电桩类别管理、充电桩管理、充电桩报修管理、维修回复管理、系统管理等功能进行详细操作

维修员管理

维修员管理;在维修员管理页面中可以查看索索引、维修工号、维修姓名、性别、联系电话、身份证、家庭住址等内容,并进行详情,修改和删除等操作

用户管理

用户管理;在用户管理页面中可以查看索引、用户账号、用户姓名、性别、年龄、联系电话等内容,并进行详情,修改和删除等操作;

电桩类别管理

在电桩类别管理页面中可以查看索引、电桩类别等内容,并进行详情,修改和删除等操作 

充电桩管理

在充电桩管理页面中可以查看索引、电桩编号、电桩类别、图片、输入电压、输出功率、所处位置、每时单价等内容,并进行详情,修改和删除等操作

充电桩报修管理

在充电桩报修管理页面中可以查看索引、电桩编号、电桩类别、图片、所处位置、用户账号、用户姓名、报修时间等内容,并进行详情,修改和删除等操作

维修回复管理

在维修回复管理页面中可以查看索引、电桩编号、电桩类别、图片、所处位置、用户账号、用户姓名、登记时间、维修工号、维修姓名、维修状态等内容,并进行详情,修改和删除等操作

系统管理

在充电常识页面中可以查看索引,标题,图片等内容,并进行详情,修改和删除等操作;还可以对轮播图管理进行详细操作

维修员功能模块

维修员登录

进入车辆充电桩管理系统可以查看首页、个人中心、充电桩报修管理、维修回复管理等功能进行详细操作

充电桩报修管理

在充电桩报修管理页面中可以查看索引、电桩编号、电桩类别、图片、所处位置、用户账号、用户姓名、报修时间等内容,并进行详情或维修回复等操作;

维修回复管理

在维修回复管理页面中可以查看索引、电桩编号、电桩类别、图片、所处位置、用户账号、用户姓名、登记时间、维修工号、维修姓名、维修状态等内容,并进行详情,修改和删除等操作;

✒️ 源码实现

部分功能

package com.controller;import java.util.Arrays;
import java.util.Calendar;
import java.util.Date;
import java.util.Map;import javax.servlet.http.HttpServletRequest;import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.ResponseBody;
import org.springframework.web.bind.annotation.RestController;import com.annotation.IgnoreAuth;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.entity.TokenEntity;
import com.entity.UserEntity;
import com.service.TokenService;
import com.service.UserService;
import com.utils.CommonUtil;
import com.utils.MPUtil;
import com.utils.PageUtils;
import com.utils.R;
import com.utils.ValidatorUtils;/*** 登录相关*/
@RequestMapping("users")
@RestController
public class UserController{@Autowiredprivate UserService userService;@Autowiredprivate TokenService tokenService;/*** 登录*/@IgnoreAuth@PostMapping(value = "/login")public R login(String username, String password, String captcha, HttpServletRequest request) {UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null || !user.getPassword().equals(password)) {return R.error("账号或密码不正确");}String token = tokenService.generateToken(user.getId(),username, "users", user.getRole());return R.ok().put("token", token);}/*** 注册*/@IgnoreAuth@PostMapping(value = "/register")public R register(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 退出*/@GetMapping(value = "logout")public R logout(HttpServletRequest request) {request.getSession().invalidate();return R.ok("退出成功");}/*** 密码重置*/@IgnoreAuth@RequestMapping(value = "/resetPass")public R resetPass(String username, HttpServletRequest request){UserEntity user = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", username));if(user==null) {return R.error("账号不存在");}user.setPassword("123456");userService.update(user,null);return R.ok("密码已重置为:123456");}/*** 列表*/@RequestMapping("/page")public R page(@RequestParam Map<String, Object> params,UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();PageUtils page = userService.queryPage(params, MPUtil.sort(MPUtil.between(MPUtil.allLike(ew, user), params), params));return R.ok().put("data", page);}/*** 列表*/@RequestMapping("/list")public R list( UserEntity user){EntityWrapper<UserEntity> ew = new EntityWrapper<UserEntity>();ew.allEq(MPUtil.allEQMapPre( user, "user")); return R.ok().put("data", userService.selectListView(ew));}/*** 信息*/@RequestMapping("/info/{id}")public R info(@PathVariable("id") String id){UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 获取用户的session用户信息*/@RequestMapping("/session")public R getCurrUser(HttpServletRequest request){Long id = (Long)request.getSession().getAttribute("userId");UserEntity user = userService.selectById(id);return R.ok().put("data", user);}/*** 保存*/@PostMapping("/save")public R save(@RequestBody UserEntity user){
//    	ValidatorUtils.validateEntity(user);if(userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername())) !=null) {return R.error("用户已存在");}userService.insert(user);return R.ok();}/*** 修改*/@RequestMapping("/update")public R update(@RequestBody UserEntity user){
//        ValidatorUtils.validateEntity(user);UserEntity u = userService.selectOne(new EntityWrapper<UserEntity>().eq("username", user.getUsername()));if(u!=null && u.getId()!=user.getId() && u.getUsername().equals(user.getUsername())) {return R.error("用户名已存在。");}userService.updateById(user);//全部更新return R.ok();}/*** 删除*/@RequestMapping("/delete")public R delete(@RequestBody Long[] ids){userService.deleteBatchIds(Arrays.asList(ids));return R.ok();}
}
springboot全局配置文件 
# \u8BBF\u95EE\u8DEF\u5F84\uFF0C\u7AEF\u53E3\u914D\u7F6E
server.context-path=/mall
server.port=8081# \u6587\u4EF6\u4E0A\u4F20\u914D\u7F6E
spring.http.multipart.enabled=true
spring.http.multipart.max-file-size=100MB
spring.http.multipart.max-request-size=100MBlogging.level.priv.jesse.mall=DEBUG# \u914D\u7F6E\u8F6Cjson\u7684\u65F6\u95F4\u683C\u5F0F
spring.jackson.time-zone=GMT+8
spring.jackson.date-format=yyyy-MM-dd HH:mm:ss# jdbc\u8FDE\u63A5\u914D\u7F6E
# mysql
#spring.datasource.url=jdbc:mysql://active.iceslurry.xyz/mall?useSSL=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull
#spring.datasource.username=root
#spring.datasource.password=123456
#spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#H2
spring.datasource.url=jdbc:mysql://localhost:3307/mall?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai
spring.datasource.username=root
spring.datasource.password=crit@2019
spring.datasource.driver-class-name=com.mysql.jdbc.Driver
#spring.h2.console.settings.web-allow-others=false
#spring.h2.console.path=/h2-consolespring.datasource.type=com.alibaba.druid.pool.DruidDataSource#thymeleaf \u6A21\u677F\u5F15\u64CE\u8BBE\u7F6E
spring.thymeleaf.mode=HTML5
spring.thymeleaf.encoding=UTF-8
spring.thymeleaf.content-type=text/html
##\u5F00\u53D1\u65F6\u5173\u95ED\u7F13\u5B58,\u4E0D\u7136\u6CA1\u6CD5\u770B\u5230\u5B9E\u65F6\u9875\u9762
spring.thymeleaf.cache=false##################### jpa hibernate \u914D\u7F6E #########################
spring.jpa.show-sql=false
spring.jpa.database=mysql
spring.jpa.properties.hibernate.format_sql=false
spring.jpa.generate-ddl=true
# \u6700\u5E38\u7528\u7684\u5C5E\u6027\uFF0C\u7B2C\u4E00\u6B21\u52A0\u8F7Dhibernate\u65F6\u6839\u636Emodel\u7C7B\u4F1A\u81EA\u52A8\u5EFA\u7ACB\u8D77\u8868\u7684\u7ED3\u6784\uFF08\u524D\u63D0\u662F\u5148\u5EFA\u7ACB\u597D\u6570\u636E\u5E93\uFF09\uFF0C
# \u4EE5\u540E\u52A0\u8F7Dhibernate\u65F6\u6839\u636Emodel\u7C7B\u81EA\u52A8\u66F4\u65B0\u8868\u7ED3\u6784\uFF0C\u5373\u4F7F\u8868\u7ED3\u6784\u6539\u53D8\u4E86\u4F46\u8868\u4E2D\u7684\u884C\u4ECD\u7136\u5B58\u5728\u4E0D\u4F1A\u5220\u9664\u4EE5\u524D\u7684\u884C\u3002
# \u8981\u6CE8\u610F\u7684\u662F\u5F53\u90E8\u7F72\u5230\u670D\u52A1\u5668\u540E\uFF0C\u8868\u7ED3\u6784\u662F\u4E0D\u4F1A\u88AB\u9A6C\u4E0A\u5EFA\u7ACB\u8D77\u6765\u7684\uFF0C\u662F\u8981\u7B49\u5E94\u7528\u7B2C\u4E00\u6B21\u8FD0\u884C\u8D77\u6765\u540E\u624D\u4F1A\u3002
spring.jpa.hibernate.ddl-auto=update
####################################################################################druid\u6570\u636E\u5E93\u8FDE\u63A5\u6C60\u914D\u7F6E############################
#\u914D\u7F6E\u521D\u59CB\u5316\u5927\u5C0F\uFF0C\u6700\u5C0F\uFF0C\u6700\u5927
spring.datasource.druid.initial-size=1
spring.datasource.druid.max-active=20
spring.datasource.druid.min-idle=1
#\u914D\u7F6E\u83B7\u53D6\u8FDE\u63A5\u7B49\u5F85\u8D85\u65F6\u7684\u65F6\u95F4
spring.datasource.druid.max-wait=60000
#\u914D\u7F6E\u95F4\u9694\u591A\u4E45\u624D\u8FDB\u884C\u4E00\u6B21\u68C0\u6D4B\uFF0C\u68C0\u6D4B\u9700\u8981\u5173\u95ED\u7684\u7A7A\u95F2\u8FDE\u63A5\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
spring.datasource.druid.time-between-eviction-runs-millis=60000
#\u914D\u7F6E\u4E00\u4E2A\u8FDE\u63A5\u5728\u6C60\u4E2D\u6700\u5C0F\u751F\u5B58\u7684\u65F6\u95F4\uFF0C\u5355\u4F4D\u662F\u6BEB\u79D2
spring.datasource.druid.min-evictable-idle-time-millis=300000
spring.datasource.druid.validation-query=SELECT 'x'
spring.datasource.druid.test-on-borrow=false
spring.datasource.druid.test-on-return=false
spring.datasource.druid.test-while-idle=true
#\u6253\u5F00PSCache\uFF0C\u5E76\u4E14\u6307\u5B9A\u6BCF\u4E2A\u8FDE\u63A5\u4E0APSCache\u7684\u5927\u5C0F
#\u5982\u679C\u7528Oracle\uFF0C\u5219\u628ApoolPreparedStatements\u914D\u7F6E\u4E3Atrue\uFF0Cmysql\u53EF\u4EE5\u914D\u7F6E\u4E3Afalse\u3002\u5206\u5E93\u5206\u8868\u8F83\u591A\u7684\u6570\u636E\u5E93\uFF0C\u5EFA\u8BAE\u914D\u7F6E\u4E3Afalse\u3002
spring.datasource.druid.pool-prepared-statements=false
spring.datasource.druid.max-pool-prepared-statement-per-connection-size=20
#druid\u76D1\u63A7\u914D\u7F6E
spring.datasource.druid.filters=stat,slf4j
# WebStatFilter\u914D\u7F6E\uFF0C\u8BF4\u660E\u8BF7\u53C2\u8003Druid Wiki\uFF0C\u914D\u7F6E_\u914D\u7F6EWebStatFilter
spring.datasource.druid.web-stat-filter.enabled=true
spring.datasource.druid.filter.stat.log-slow-sql=true
spring.datasource.druid.filter.stat.slow-sql-millis=2000
# StatViewServlet\u914D\u7F6E\uFF0C\u8BF4\u660E\u8BF7\u53C2\u8003Druid Wiki\uFF0C\u914D\u7F6E_StatViewServlet\u914D\u7F6E
spring.datasource.druid.stat-view-servlet.enabled=true
spring.datasource.druid.stat-view-servlet.url-pattern=/druid/*
spring.datasource.druid.stat-view-servlet.reset-enable=true
spring.datasource.druid.stat-view-servlet.login-username=druid
spring.datasource.druid.stat-view-servlet.login-password=123456
# Spring\u76D1\u63A7\u914D\u7F6E\uFF0C\u8BF4\u660E\u8BF7\u53C2\u8003Druid Github Wiki\uFF0C\u914D\u7F6E_Druid\u548CSpring\u5173\u8054\u76D1\u63A7\u914D\u7F6E
spring.datasource.druid.aop-patterns=priv.jesse.mall.service.impl.*
# druid\u65E5\u5FD7\u8F93\u51FA
spring.datasource.druid.filter.slf4j.enabled=true
spring.datasource.druid.filter.slf4j.result-set-log-enabled=false
spring.datasource.druid.filter.slf4j.statement-create-after-log-enabled=false
spring.datasource.druid.filter.slf4j.statement-close-after-log-enabled=false
spring.datasource.druid.filter.slf4j.result-set-open-after-log-enabled=false
spring.datasource.druid.filter.slf4j.result-set-close-after-log-enabled=false
##################druid\u8FDE\u63A5\u6C60\u914D\u7F6E\u7ED3\u675F############################

💖 源码获取

点赞、收藏、关注!!!

非无偿源码!获取源码请添加up主!!

😁 联系方式

文章最底下有微信联系方式!!!


http://www.mrgr.cn/news/9897.html

相关文章:

  • Ubuntu 22.04上稳定安装与配置搜狗输入法详细教程
  • 【Linux 从基础到进阶】NFS与Samba文件共享配置
  • 学习笔记七:基于Jenkins+k8s+Git+DockerHub等技术链构建企业级DevOps容器云平台
  • C#网络请求封装,HttpClient 静态单实例
  • 浅谈Java SpringBoot和Spring区别
  • 2024 年顶级 Flutter UI 框架和库
  • 垂直电商的未来发展方向与开源 AI 智能名片 O2O 小程序的融合
  • 如何借助BI高效打造经营分析看板?从业七年的数据分析师给出这四点建议!
  • SpringBoot的异常java.lang.ClassNotFoundException: io.r2dbc.spi.ValidationDepth
  • Cesium 视频投射
  • NFT Insider #144:Sandbox 投资 9 万美元助力区块链活动
  • Ollama 使用指南:Linux、Windows 和 macOS
  • 2001-2023年上市公司数字化转型年报词频统计(吴非、赵宸宇、甄红线等300+个关键词)
  • 1、.Net UI框架:Platform Uno - .Net宣传系列文章
  • 身份证二要素验证接口如何用PHP进行调用
  • 中仕公考怎么样?2025国考报名流程介绍!
  • 使用Python实现深度学习模型:智能灾害响应与救援机器人
  • 2024国自然放榜!仅11.43%中标率,新增79797项!
  • 怎么管控终端电脑上的移动端口
  • linux关闭热点模式,设置开机自启动wifi模式