基于SSM的婴幼儿商城
基于SSM的婴幼儿商城
✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌
🍅文末获取项目下载方式🍅
一、项目背景介绍:
当今社会已经是一个新的信息技术时代,各个行业和领域也都有了翻天覆地的变革,各大行业都努力争取上游,改变各种行业管理水平和现代化管理,进一步适应信息科技和社会的变革与发展,计算机、网络技术已融合到各行各业的工作生活当中,企业对信息的需求刻不容缓。
设计并研究开发一个基于 myeclipse 开发平台的母婴用品商城系统,该平台采用 b / s 架构,结合前端开发语言 java ,后台数据库 mysql。母婴专属商品网站系统可以为用户提供方便的信息注册、查询、管理等功能,大家通过互联网就可以及时地查找和获取自己的所需,不仅大大降低了人力物力,而且网站管理员的工作效率大大提升。本研究项目依据企业日常经营管理工作的要求和母婴用品商城系统的经营管理流程,结合现代科学管理理论,设计并研制一个基于互联网环境下的母婴用品商城系统。据分析母婴用品商城系统的市场需求和其应用,通过对用户和系统管理员两个角色的配置来完成对系统职能的执行与实现,完成对企业信息的管理。
二、项目技术简介:
- JAVA:Java是一门面向对象编程语言,不仅吸收了C++语言的各种优点,还摒弃了C++里难以理解的多继承、指针等概念,因此Java语言具有功能强大和简单易用两个特征。Java语言作为静态面向对象编程语言的代表,极好地实现了面向对象理论,允许程序员以优雅的思维方式进行复杂的编程。
- Spring:Spring框架是一个开放源代码的J2EE应用程序框架,由Rod Johnson发起,是针对bean的生命周期进行管理的轻量级容器(lightweight container)。 Spring解决了开发者在J2EE开发中遇到的许多常见的问题,提供了功能强大IOC、AOP及Web MVC等功能。Spring可以单独应用于构筑应用程序,也可以和Struts、Webwork、Tapestry等众多Web框架组合使用,并且可以与 Swing等桌面应用程序AP组合。因此, Spring不仅仅能应用于J2EE应用程序之中,也可以应用于桌面应用程序以及小应用程序之中。Spring框架主要由七部分组成,分别是 Spring Core、 Spring AOP、 Spring ORM、 Spring DAO、Spring Context、 Spring Web和 Spring Web MVC。
- Mybatis:MyBatis本是apache的一个开源项目iBatis,2010年这个项目由apache software foundation迁移到了google code,并且改名为MyBatis。2013年11月迁移到Github。
iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAOs)。 - Jsp:JSP(全称JavaServer Pages)是由Sun Microsystems公司主导创建的一种动态网页技术标准。JSP部署于网络服务器上,可以响应客户端发送的请求,并根据请求内容动态地生成HTML、XML或其他格式文档的Web网页,然后返回给请求者。JSP技术以Java语言作为脚本语言,为用户的HTTP请求提供服务,并能与服务器上的其它Java程序共同处理复杂的业务需求。
。
JSP将Java代码和特定变动内容嵌入到静态的页面中,实现以静态页面为模板,动态生成其中的部分内容。JSP引入了被称为“JSP动作”的XML标签,用来调用内建功能。另外,可以创建JSP标签库,然后像使用标准HTML或XML标签一样使用它们。标签库能增强功能和服务器性能,而且不受跨平台问题的限制。JSP文件在运行时会被其编译器转换成更原始的Servlet代码。JSP编译器可以把JSP文件编译成用Java代码写的Servlet,然后再由Java编译器来编译成能快速执行的二进制机器码,也可以直接编译成二进制码。 - Spring-Mvc:Spring MVC属于SpringFrameWork的后续产品,已经融合在Spring Web Flow里面。Spring 框架提供了构建 Web 应用程序的全功能 MVC 模块。使用 Spring 可插入的 MVC 架构,从而在使用Spring进行WEB开发时,可以选择使用Spring的Spring MVC框架或集成其他MVC开发框。
三、系统功能模块介绍:

四、数据库设计:
1:active(active)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| itemId | int | NULL | |
| stock | int | NULL | |
| num | int | NULL | |
| startTime | datetime | NULL | |
| endTime | datetime | NULL | |
| status | int | NULL | 状态[0:未开始,1:开始中,2:已结束] |
| price | varchar | NULL |
2:car(car)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| item_id | int | NULL | |
| user_id | int | NULL | |
| num | int | NULL | |
| price | decimal | NULL | |
| total | varchar | NULL |
3:comment(comment)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| user_id | int | NULL | |
| item_id | int | NULL | |
| content | varchar | NULL | |
| addTime | datetime | NULL | |
| status | int | NULL |
4:item(item)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| name | varchar | NULL | |
| price | varchar | NULL | 价格 |
| scNum | int | NULL | 收藏数 |
| gmNum | int | NULL | 购买数 |
| url1 | varchar | NULL | 主图 |
| url2 | varchar | NULL | 附图 |
| url3 | varchar | NULL | 附图 |
| url4 | varchar | NULL | 附图 |
| url5 | varchar | NULL | 附图 |
| ms | text | NULL | 描述 |
| pam1 | varchar | NULL | 参数1 |
| pam2 | varchar | NULL | 参数2 |
| pam3 | varchar | NULL | 参数3 |
| val3 | varchar | NULL | 值3 |
| val2 | varchar | NULL | 值2 |
| val1 | varchar | NULL | 值1 |
| type | int | NULL | 类型 |
| zk | float | NULL | 折扣 |
| category_id_one | int | NULL | 类别id |
| category_id_two | int | NULL | 类别2级 |
| isDelete | int | NULL | 0否 1是 |
| num | int | NULL | 点赞数 |
5:item_category(item_category)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| name | varchar | NULL | 类目名称 |
| pid | int | NULL | 父id |
| isDelete | int | NULL |
6:item_order(item_order)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| item_id | int | NULL | |
| user_id | int | NULL | |
| code | varchar | NULL | |
| addTime | datetime | NULL | |
| total | varchar | NULL | |
| isDelete | int | NULL | |
| status | int | NULL | 0.新建代发货1.已取消 2已已发货3.到收货4已评价 |
7:manage(manage)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| userName | varchar | NULL | |
| passWord | varchar | NULL | |
| realName | varchar | NULL | |
| type | varchar | NULL |
8:‘留言表’(message)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| name | varchar | NULL | |
| phone | varchar | NULL | |
| content | varchar | NULL |
9:news(news)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| name | varchar | NULL | |
| content | text | NULL | |
| addTime | datetime | NULL |
10:order_detail(order_detail)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| item_id | int | NULL | |
| order_id | int | NULL | |
| status | int | NULL | 0.未退货 1已退货 |
| num | int | NULL | |
| total | varchar | NULL |
11:sc(sc)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| item_id | int | NULL | |
| user_id | int | NULL |
12:user(user)
| 字段名 | 类型 | 默认值 | 列注释 |
|---|---|---|---|
| id | int | NULL | |
| userName | varchar | NULL | |
| passWord | varchar | NULL | |
| phone | varchar | NULL | |
| realName | varchar | NULL | |
| sex | varchar | NULL | |
| address | varchar | NULL | |
| varchar | NULL |
五、功能模块:
-
首页:商城首页会展示所有后台添加的一级分类,二级分类数据,以及秒杀活动,热门商品等数据

-
商品列表模块:根据不同的二级分类,可以今日不同的商品列表模块,该模块可以进行查询,排序等操作

-
商品详情模块:该模块主要是商品详情的一个展示,还包括加入购物车,收藏,点赞,评论等功能

-
购物车,订单模块:购物完成之后会将购物车里的数据删除,添加到我的订单中去,其中也包括一系列的订单状态,包括代发货,已收货,已完成等

-
个人中心:个人中心包含个人信息管理,地址管理,订单,评论,收藏等管理

-
秒杀模块:主要对系统的一些特殊商品进行秒杀处理

-
后台管理模块:后台主要对商品,商品分类,育儿知识文章,订单,管理员等进行一系列的管理操作

-
数据统计模块:数据统计主要对整个商城进行一些销售统计,从而形成图形报表,供管理员查看

六、代码示例:
首页
@RequestMapping("/uIndex")public String uIndex(Model model, Item item, HttpServletRequest request) {String sql1 = "select * from item_category where isDelete=0 and pid is null order by name";List<ItemCategory> fatherList = itemCategoryService.listBySqlReturnEntity(sql1);List<CategoryDto> list = new ArrayList<>();if (!CollectionUtils.isEmpty(fatherList)) {for (ItemCategory ic : fatherList) {CategoryDto dto = new CategoryDto();dto.setFather(ic);//查询二级分类String sql2 = "select * from item_category where isDelete=0 and pid=" + ic.getId();List<ItemCategory> childrens = itemCategoryService.listBySqlReturnEntity(sql2);dto.setChildrens(childrens);list.add(dto);model.addAttribute("lbs", list);}}//秒杀活动String sql = "select * from active where status != 2 order by startTime desc";List<Active> activeList = activeService.listBySqlReturnEntity(sql);if (activeList != null && activeList.size() > 0) {Map<Integer, Active> integerActiveMap = activeList.stream().collect(Collectors.toMap(a -> a.getItemId(), a -> a, (k1, k2) -> k1));String itemIds = activeList.stream().map(active -> String.valueOf(active.getItemId())).collect(Collectors.joining(","));String itemSql = "select * from item where isDelete=0 and id in (" + itemIds + ")";List<Item> zks = itemService.listBySqlReturnEntity(itemSql);for (Item zk : zks) {zk.setStartTime(integerActiveMap.get(zk.getId()).getStartTime());}model.addAttribute("zks", zks);}//热销商品List<Item> rxs = itemService.listBySqlReturnEntity("select * from item where isDelete=0 order by gmNum desc limit 0,10");model.addAttribute("rxs", rxs);return "login/uIndex";}
商品列表模块
/*** 查询分类列表*/@RequestMapping("/findBySql")public String findBySql(Model model,ItemCategory itemCategory){String sql = "select * from item_category where isDelete = 0 and pid is null order by id";Pager<ItemCategory> pagers = itemCategoryService.findBySqlRerturnEntity(sql);model.addAttribute("pagers",pagers);model.addAttribute("obj",itemCategory);return "itemCategory/itemCategory";}/*** 转向到新增一级分类页面*/@RequestMapping(value = "/add")public String add(){return "itemCategory/add";}
商品详情模块
@RequestMapping("/shoplist")public String shoplist(Item item, String condition, Model model) {String sql = "select * from item where isDelete=0";if (!isEmpty(item.getCategoryIdOne())) {sql += " and category_id_one=" + item.getCategoryIdOne();}if (!isEmpty(item.getCategoryIdTwo())) {sql += " and category_id_two=" + item.getCategoryIdTwo();}if (!isEmpty(condition)) {sql += " and name like '%" + condition + "%' or category_id_one like '%" + condition + "%' or category_id_two like '%" + condition + "%'";model.addAttribute("condition", condition);}if (!isEmpty(item.getPrice())) {sql += " order by (price+0) desc";}if (!isEmpty(item.getGmNum())) {sql += " order by gmNum desc";}if (isEmpty(item.getPrice()) && isEmpty(item.getGmNum())) {sql += " order by id desc";}Pager<Item> pagers = itemService.findBySqlRerturnEntity(sql);model.addAttribute("pagers", pagers);model.addAttribute("obj", item);return "item/shoplist";}
购物车,订单模块
@RequestMapping("/my")public String my(Model model, HttpServletRequest request) {Object attribute = request.getSession().getAttribute(Consts.USERID);if (attribute == null) {return "redirect:/login/uLogin";}Integer userId = Integer.valueOf(attribute.toString());//全部订单String sql = "select * from item_order where user_id=" + userId + " order by id desc";List<ItemOrder> all = itemOrderService.listBySqlReturnEntity(sql);//待发货String sql2 = "select * from item_order where user_id=" + userId + " and status=0 order by id desc";List<ItemOrder> dfh = itemOrderService.listBySqlReturnEntity(sql2);//已取消String sql3 = "select * from item_order where user_id=" + userId + " and status=1 order by id desc";List<ItemOrder> yqx = itemOrderService.listBySqlReturnEntity(sql3);//已发货String sql4 = "select * from item_order where user_id=" + userId + " and status=2 order by id desc";List<ItemOrder> dsh = itemOrderService.listBySqlReturnEntity(sql4);//已收货String sql5 = "select * from item_order where user_id=" + userId + " and status=3 order by id desc";List<ItemOrder> ysh = itemOrderService.listBySqlReturnEntity(sql5);model.addAttribute("all", all);model.addAttribute("dfh", dfh);model.addAttribute("yqx", yqx);model.addAttribute("dsh", dsh);model.addAttribute("ysh", ysh);return "itemOrder/my";}
个人中心
@RequestMapping("/findBySql")public String findBySql(Model model, User user, Manage manage,HttpServletRequest request){//怎么获取当前登录的用户
// Object role = request.getSession().getAttribute(Consts.MANAGE);
// cgp
// if (role!="admin"){
// return "user/role";
// }String sql = "select * from user where 1=1 ";if(!isEmpty(user.getUserName())){sql += " and userName like '%"+user.getUserName()+"%' ";}sql+=" order by id";Pager<User> pagers = userService.findBySqlRerturnEntity(sql);model.addAttribute("pagers",pagers);model.addAttribute("obj",user);return "user/user";}
秒杀模块
@RequestMapping("/ms")@ResponseBodypublic String ms(Integer itemId, Integer msId, HttpServletRequest request) {Object attribute = request.getSession().getAttribute(Consts.USERID);JSONObject js = new JSONObject();if (attribute == null) {js.put(Consts.RES, 0);//没有登录return js.toJSONString();}Integer userId = Integer.valueOf(attribute.toString());User byId = userService.getById(userId);if (StringUtils.isEmpty(byId.getAddress())) {js.put(Consts.RES, 2);//地址为空return js.toJSONString();}synchronized (lock) {ItemOrder order = new ItemOrder();Active active = activeService.getById(msId);if (active.getStatus() != 1) {js.put(Consts.RES, 3);//地址为空return js.toJSONString();}active.setNum(active.getNum() - 1);activeService.updateById(active);order.setStatus(0);order.setCode(getOrderNo());order.setIsDelete(0);order.setTotal(active.getPrice());order.setUserId(userId);order.setAddTime(new Date());itemOrderService.insert(order);OrderDetail de = new OrderDetail();de.setItemId(itemId);de.setOrderId(order.getId());de.setStatus(0);de.setNum(1);de.setTotal(active.getPrice());orderDetailService.insert(de);// 修改成交数Item load2 = itemService.load(itemId);load2.setGmNum(load2.getGmNum() + 1);itemService.updateById(load2);js.put(Consts.RES, 1);//成功return js.toJSONString();}}
后台管理模块
private void itemCommon(Item item, @RequestParam("file") CommonsMultipartFile[] files, HttpServletRequest request) throws IOException {if (files.length > 0) {for (int s = 0; s < files.length; s++) {String n = UUIDUtils.create();String path = SystemContext.getRealPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename();File newFile = new File(path);//通过CommonsMultipartFile的方法直接写文件files[s].transferTo(newFile);if (s == 0) {item.setUrl1(request.getContextPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}if (s == 1) {item.setUrl2(request.getContextPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}if (s == 2) {item.setUrl3(request.getContextPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}if (s == 3) {item.setUrl4(request.getContextPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}if (s == 4) {item.setUrl5(request.getContextPath() + "\\resource\\ueditor\\upload\\" + n + files[s].getOriginalFilename());}}}ItemCategory byId = itemCategoryService.getById(item.getCategoryIdTwo());item.setCategoryIdOne(byId.getPid());}
数据统计模块
@ResponseBody@RequestMapping("/dz")public String dz(Item item, HttpServletRequest request) {JSONObject js = new JSONObject();Object attribute = request.getSession().getAttribute(Consts.USERID);if (attribute == null) {js.put(Consts.RES, 0);//0失败return js.toJSONString(); //用json格式输出,将JSON对象转化为JSON字符.结合ajax,请求服务器数据。}Item item1 = itemService.load(item.getId());item.setNum(item1.getNum() + 1);itemService.updateById(item);js.put(Consts.RES, 1);//成功return js.toJSONString();}
七、项目总结:
本母婴商城系统主要分为前台和后台两大板块。
用户的操作区域是在前台,管理员则对后台进行操作前台系统主要具备了登录和注册,商品展示,商品搜索,购物车等功能,游客可以进入商城主页进行浏览,查看关于母婴商品信息,可以精准查找所需商品,了解相关活动资讯。后台系统包括维护商品和对前台页面动态进行维护管理。
八、源码获取:
大家点赞、收藏、关注、评论啦 、查看👇🏻👇🏻👇🏻获取联系方式👇🏻👇🏻👇🏻
链接点击直达:下载链接
相关文章:
基于SSM的婴幼儿商城
基于SSM的婴幼儿商城 ✌全网粉丝20W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌ 🍅文末获取项目下载方式🍅 一、项目背景介绍: …...
2023年新能源汽车行业研究报告
第一章 行业概况 新能源汽车,是指采用新型动力系统,完全或者主要依靠新型能源驱动的汽车,包括纯电动汽车、插电式混合动力汽车、增程式混合动力汽车和燃料电池汽车等。国际上,混合动力汽车(含中混、强混、插电式混动&…...
手写Promise方法(直击Promise A+规范)
前言:大家好,我是前端獭子。高效优雅是我的创作方式。学习是一个渐进的过程,要把知识串联起来才能解决某一方面的问题。 Promise 构造函数 我们先来写 Promise 构造函数的属性和值,以及处理new Promise()时会传入的两个回调函数。…...
GooglePlay SSL Error Handler
应用上架GooglePlay 收到邮件提示 出现这个原因是因为我在app中使用webview加载Https的H5界面,在onReceivedSslError()中处理SslErrorHandler时,出现白屏现象,原因是webview默认在加载有证书验证的url时,会默认使用handler.cancel…...
OpenStack手动分布式部署Keystone【Queens版】
目录 Keystone简介 1、登录数据库配置(在controller执行) 1.1登录数据库 1.2数据库里创建keystone 1.3授权对keystone数据库的正确访问 1.4退出数据库 2、数据库导入Keystone表(在controller执行) 2.1安装httpd mod_wsgi 2.2备…...
AAPT2
概念 AAPT2(Android 资源打包工具)是一种构建工具,Android Studio 和 Android Gradle 插件使用它来编译和打包应用的资源。AAPT2 会解析资源、为资源编制索引,并将资源编译为针对 Android 平台进行过优化的二进制格式。 Android Gradle 插件 3.0.0 及更高版本在默认情况下…...
kafka学习
概念: broker: 1台服务器的kafka进程,它是kafka的工作者。类似Hbase的regionServer,hdfs的Datanodetopic: 订阅发布模式的kafka中有消息主题producer:生产者customer:消费者 基础架构: 元数据:…...
坐拥两条黄金赛道,爱博医疗未来必是星辰大海!
尽管2022年疫情反复,但爱博医疗仍交出了亮眼的“答卷”。图源:爱博医疗2023年2月14日晚间,爱博医疗披露了2022年度业绩快报,营收5.79亿元,同比增长33.81%;归母净利润2.32亿元,同比增长35.27%&am…...
DEV C++的使用入门程序做算术运算
DEV C Dev-C (有时候也称为 Dev-Cpp)是一个免费软件,最早是由 BloodShed 公司开发的,在版本 4.9.2 之后该公司停止开发并开放源代码。然后由 Orwell 接手进行维护,陆续开发了几个版本,后来也有其他开发人员…...
华为OD机试真题Python实现【商人买卖】真题+解题思路+代码(20222023)
商人买卖 题目 商人经营一家店铺,有number种商品, 由于仓库限制每件商品的最大持有数量是item[index] 每种商品的价格是item-price[item_index][day] 通过对商品的买进和卖出获取利润 请给出商人在days天内能获取的最大的利润 注:同一件商品可以反复买进和卖出 🔥🔥�…...
随想录二刷(数组二分法)leetcode 704 35 34 69 367
第一题 leetcode 704.二分查找 二分法的思路 二分法的思路很简单 数组必须有序先查找中间元素进行比较得出大小再考虑向左比较还是向右比较 代码实现 class Solution { public:int search(vector<int>& nums, int target) {int left 0;int right nums.size() -…...
【微信小程序】--WXML WXSS JS 逻辑交互介绍(四)
💌 所属专栏:【微信小程序开发教程】 😀 作 者:我是夜阑的狗🐶 🚀 个人简介:一个正在努力学技术的CV工程师,专注基础和实战分享 ,欢迎咨询! &#…...
c/c++开发,无可避免的模板编程实践(篇八)
一、借用标准库模板构造自己的模板 通常,模板设计是遵循当对象的类型不影响类中函数的行为时就使用模板。这也就是为何标准库提供大部分的模板都是与容器、迭代器、适配器、通用算法等有关,因为这些主要是除了对象集合行为,如读写、增删、遍历…...
Leetcode13. 罗马数字转整数
一、题目描述: 罗马数字包含以下七种字符: I, V, X, L,C,D 和 M。 字符数字I1V5X10L50C100D500M1000 例如, 罗马数字 2 写做 II ,即为两个并列的 1。12 写做 XII &…...
元宇宙对营销方式的影响
营销方式的变化通常伴随着技术的发展。我们已经看到营销方式从印刷媒体、电视、广播到互联网的转变。而现在,我们又处在下一个营销方式大跃进的风口浪尖上。关于元宇宙及其潜在的变革性影响,人们已经讨论了很多。虽然与元宇宙相关的大多数东西在很大程度…...
PERCCLI命令行程序说明
Dell EMC PowerEdge RAID控制器(PERC)命令行界面(CLI)实用程序用于管理RAID卡相关的配置和信息,命令的子命令和选项如下所示: help - lists all the commands with their usage. E.g. perccli help <command> help - gives details about a parti…...
系统架构——分布式架构负载均衡系统设计实战
摘要 关于“负载均衡”的解释,百度词条里:负载均衡,英文叫Load Balance,意思就是将请求或者数据分摊到多个操作单元上进行执行,共同完成工作任务。负载均衡(Load Balance)建立在现有网络结构之…...
机器学习算法: AdaBoost 详解
1. 集成学习概述 1.1. 定义 集成学习(Ensemble learning)就是将若干个弱分类器通过一定的策略组合之后产生一个强分类器。 弱分类器(Weak Classifier)指的就是那些分类准确率只比随机猜测略好一点的分类器,而强分类器&…...
6.824lab1总结
目录总体概要核心结构体coordinator思路:任务池管理RPC函数worker思路:实现细节总体概要 程序主要由mrcoordinator.go、mrworker.go为启动模块。 mrcoordinator.go: 启动rpc服务,循环等待m.Done()为true时退出。mrwoker.go:调用mr.worker(mapf, reduce…...
NIO蔚来 面试——IP地址你了解多少?
目录 前言 1、IP地址 1.1、什么是IP地址 1.2、IP地址的格式 1.2.1、32位二进制数表示IP地址,够用吗? 1.3、IP地址的组成 1.4、为什么会出现IPv6 1.4.1、为什么IPv6还没有大量普及呢? 1.5、子网掩码 1.6、特殊的IP地址 2、路由选择 …...
华为云AI开发平台ModelArts
华为云ModelArts:重塑AI开发流程的“智能引擎”与“创新加速器”! 在人工智能浪潮席卷全球的2025年,企业拥抱AI的意愿空前高涨,但技术门槛高、流程复杂、资源投入巨大的现实,却让许多创新构想止步于实验室。数据科学家…...
内存分配函数malloc kmalloc vmalloc
内存分配函数malloc kmalloc vmalloc malloc实现步骤: 1)请求大小调整:首先,malloc 需要调整用户请求的大小,以适应内部数据结构(例如,可能需要存储额外的元数据)。通常,这包括对齐调整,确保分配的内存地址满足特定硬件要求(如对齐到8字节或16字节边界)。 2)空闲…...
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする
日语学习-日语知识点小记-构建基础-JLPT-N4阶段(33):にする 1、前言(1)情况说明(2)工程师的信仰2、知识点(1) にする1,接续:名词+にする2,接续:疑问词+にする3,(A)は(B)にする。(2)復習:(1)复习句子(2)ために & ように(3)そう(4)にする3、…...
SciencePlots——绘制论文中的图片
文章目录 安装一、风格二、1 资源 安装 # 安装最新版 pip install githttps://github.com/garrettj403/SciencePlots.git# 安装稳定版 pip install SciencePlots一、风格 简单好用的深度学习论文绘图专用工具包–Science Plot 二、 1 资源 论文绘图神器来了:一行…...
中南大学无人机智能体的全面评估!BEDI:用于评估无人机上具身智能体的综合性基准测试
作者:Mingning Guo, Mengwei Wu, Jiarun He, Shaoxian Li, Haifeng Li, Chao Tao单位:中南大学地球科学与信息物理学院论文标题:BEDI: A Comprehensive Benchmark for Evaluating Embodied Agents on UAVs论文链接:https://arxiv.…...
理解 MCP 工作流:使用 Ollama 和 LangChain 构建本地 MCP 客户端
🌟 什么是 MCP? 模型控制协议 (MCP) 是一种创新的协议,旨在无缝连接 AI 模型与应用程序。 MCP 是一个开源协议,它标准化了我们的 LLM 应用程序连接所需工具和数据源并与之协作的方式。 可以把它想象成你的 AI 模型 和想要使用它…...
JDK 17 新特性
#JDK 17 新特性 /**************** 文本块 *****************/ python/scala中早就支持,不稀奇 String json “”" { “name”: “Java”, “version”: 17 } “”"; /**************** Switch 语句 -> 表达式 *****************/ 挺好的ÿ…...
Java多线程实现之Thread类深度解析
Java多线程实现之Thread类深度解析 一、多线程基础概念1.1 什么是线程1.2 多线程的优势1.3 Java多线程模型 二、Thread类的基本结构与构造函数2.1 Thread类的继承关系2.2 构造函数 三、创建和启动线程3.1 继承Thread类创建线程3.2 实现Runnable接口创建线程 四、Thread类的核心…...
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决
Spring Cloud Gateway 中自定义验证码接口返回 404 的排查与解决 问题背景 在一个基于 Spring Cloud Gateway WebFlux 构建的微服务项目中,新增了一个本地验证码接口 /code,使用函数式路由(RouterFunction)和 Hutool 的 Circle…...
现有的 Redis 分布式锁库(如 Redisson)提供了哪些便利?
现有的 Redis 分布式锁库(如 Redisson)相比于开发者自己基于 Redis 命令(如 SETNX, EXPIRE, DEL)手动实现分布式锁,提供了巨大的便利性和健壮性。主要体现在以下几个方面: 原子性保证 (Atomicity)ÿ…...
