- 博客(166)
- 资源 (1)
- 收藏
- 关注
原创 Docker
在计算机中,虚拟化(英语:Virtualization)是一种资源管理技术,是将计算机的各种实体资源,如服务器、网络、内存及存储等,予以抽象、转换后呈现出来,打破实体结构间的不可切割的障碍,使用户可以比原本的组态更好的方式来应用这些资源。这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制。一般所指的虚拟化资源包括计算能力和资料存储。
2025-03-05 09:56:24
1158
原创 day03-网络爬虫
指纹码对比最常见的去重方案是生成文档的指纹门。例如对一篇文章进行MD5加密生成一个字符串,我们可以认为这是文章的指纹码,再和其他的文章指纹码对比,一致则说明文章重复。但是这种方式是完全一致则是重复的,如果文章只是多了几个标点符号,那仍旧被认为是重复的,这种方式并不合理。这种方式就是我们之前对url进行去重的方式,使用在这里的话,也是对文章进行计算得到一个数,再进行对比,缺点和方法1是一样的,如果只有一点点不一样,也会认为不重复,这种方式不合理。KMP算法KMP算法是一种改进的字符串匹配算法。
2025-02-27 14:40:08
949
原创 使用WebMagic爬取51job上的招聘信息
可以看到,Pipeline其实就是将PageProcessor抽取的结果,继续进行了处理的,其实在Pipeline中完成的功能,你基本上也可以直接在PageProcessor实现,那么为什么会有Pipeline?在WebMagic中,Pileline是抽取结束后,进行处理的部分,它主要用于抽取结果的保存,也可以定制Pileline可以实现一些通用的功能。在解析页面的时候,很可能会解析出相同的url地址(例如商品标题和商品图片超链接,而且url一样),如果不进行处理,同样的url会解析处理多次,浪费资源。
2025-02-11 14:47:24
775
1
原创 WebMagic
WebMagic的结构分为Downloader、PageProcessor、Scheduler、Pipeline四大组件,并由Spider将它们彼此组织起来。这四大组件对应爬虫生命周期中的下载、处理、管理和持久化等功能。WebMagic的设计参考了Scapy,但是实现方式更Java化一些。而Spider则将这几个组件组织起来,让它们可以互相交互,流程化的执行,可以认为Spider是一个大的容器,它也是WebMagic逻辑的核心。
2025-02-05 15:21:34
1293
原创 Jsoup
jsoup 是一款Java 的HTML解析器,可直接解析某个URL地址、HTML文本内容。它提供了一套非常省力的API,可通过DOM,CSS以及类似于jQuery的操作方法来取出和操作数据。jsoup的主要功能如下:1.从一个URL,文件或字符串中解析HTML;2.使用DOM或CSS选择器来查找、取出数据;3.可操作HTML元素、属性、文本;--Jsoup-->--测试-->--工具-->tagname: 通过标签查找元素,比如:span。
2025-02-05 15:00:41
1032
原创 Java网络爬虫
网络(Web crawler),是一种按照一定的规则,自动地抓取万维网信息的程序或者脚本创建Maven工程itcast-crawler-first并给pom.加入依赖加入log4j.properties网络爬虫就是用程序帮助我们访问网络上的资源,我们一直以来都是使用HTTP协议访问互联网的网页,网络爬虫需要编写程序,在这里使用同样的HTTP协议访问网页。这里我们使用Java的HTTP协议客户端 HttpClient这个技术,来实现抓取网页数据。
2025-02-05 14:58:42
1765
原创 无法获取 org.hibernate.persister.entity.SingleTableEntityPersister 的构造函数
无法获取 org.hibernate.persister.entity.SingleTableEntityPersister 的构造函数。从jdk10升级到jdk11的时候遇到这个错误。
2024-12-25 16:10:24
124
原创 SpringBoot 实战
你会发现日志中只有这些打印信息,SpringMVC 的日志信息都没有,因为 SpringMVC 记录的 log 级别是 debug,SpringBoot 默认是显示 info 以上,我们需要修改日志级别。只要静态资源放在这些目录中任何一个,SpringMVC都会帮我们处理,我们习惯会把静态资源放在 classpath:/static/ 目录下。现在,我们的项目是一个 jar 工程,那么就没有 webapp,我们的静态资源该放哪里呢?我们在引入 web 的启动器时,就已经引入事务相关的依赖及默认配置了。
2024-12-24 10:19:40
902
原创 SpringBoot 入门
SpringBoot 被称为搭建程序的 “脚手架”。其最主要作用就是帮我们快速的构建庞大的 Spring 项目,并且尽可能的减少一切 xml 配置,让我们关注于业务而非配置文件。前面说到了 SpringBoot 主要解决了以下两点问题,现在再来看看 SpringBoot 是怎样解决两点问题的:复杂的配置SpringBoot 采用默认配置,我们也可以在 application.properties 文件来覆盖这些默认属性,这样虽然使用的还是默认配置,但是配置中的值改成了我们自定义的。混乱的依赖管理。
2024-12-12 15:13:16
819
原创 SpringDataJPA(三):多表操作,复杂查询
在实际开发中,我们数据库的表难免会有相互的关联关系,在操作表的时候就有可能会涉及到多张表的操作。有时我们在查询某个实体的时候,给定的条件是不固定的,这时就需要动态构建相应的查询语句,在Spring Data JPA中可以通过JpaSpecificationExecutor接口查询。多对多关系中:用中间表(第三章表)来描述这种关系,中间表中至少应该由两个字段组成,这两个字段作为外键指向两张表的主键,且这两个字段又组成了联合主键。在一对多关系中,我们习惯把一的一方称之为主表,把多的一方称之为从表。
2024-07-29 11:02:40
3189
原创 SpringDataJPA(二):SpringDataJPA的运行原理以及基本操作
Spring Data JPA 是 Spring 基于 ORM 框架、JPA 规范的基础上封装的一套JPA应用框架,可使开发者用极简的代码即可实现对数据库的访问和操作。它提供了包括增删改查等在内的常用功能,且易于扩展!学习并使用 Spring Data JPA 可以极大提高开发效率!
2024-07-29 10:36:53
1010
原创 SpringDataJPA(一):ORM思想和hibernate以及JPA的概述和基本操作
ORM(Object-Relational Mapping) 表示对象关系映射。在面向对象的软件开发中,通过ORM就可以把对象映射到关系型数据库中。只要有一套程序能够做到建立对象与数据库的关联,操作对象就可以直接操作数据库数据,就可以说这套程序实现了ORM对象关系映射。简单的说:ORM就是建立实体类和数据库表之间的关系,从而达到操作实体类就相当于操作数据库表的目的。
2024-07-29 10:08:34
1061
原创 ElasticSearch第二天
在进行关键字搜索时,搜索出的内容中的关键字会显示不同的颜色,称之为高亮百度搜索关键字"传智播客"[外链图片转存失败(img-B0FtGppk-1562473884413)(image/14.png)]京东商城搜索"笔记本"Spring Data是一个用于简化数据库访问,并支持云服务的开源框架。其主要目标是使得对数据的访问变得方便快捷,并支持map-reduce框架和云计算数据服务。Spring Data可以极大的简化JPA的写法,可以在几乎不用写实现的情况下,实现对数据的访问和操作。
2024-07-10 16:14:06
851
原创 ElasticSearch第一天
Elasticsearch,简称为es, es是一个开源的高扩展的分布式全文检索引擎,它可以近乎实时的存储、检索数据;本身扩展性很好,可以扩展到上百台服务器,处理PB级别的数据。es也使用Java开发并使用Lucene作为其核心来实现所有索引和搜索的功能,但是它的目的是通过简单的RESTful API来隐藏Lucene的复杂性,从而让全文搜索变得简单。Elasticsearch是面向文档(document oriented)的,这意味着它可以存储整个对象或文档(document)。
2024-07-08 16:56:59
1101
原创 全文检索功能(Lucene)
Lucene是一个基于java开发全文检索工具包,提供了查询引擎和索引引擎如何实现全文检索:可以使用Lucene实现全文检索。Lucene是apache下的一个开放源代码的全文检索引擎工具包。提供了完整的查询引擎和索引引擎,部分文本分析引擎。Lucene的目的是为软件开发人员提供一个简单易用的工具包,以方便的在目标系统中实现全文检索的功能。
2024-07-04 14:41:08
2313
原创 Redis
NoSQL,泛指非关系型的数据库,NoSQL即Not-Only SQL,它可以作为关系型数据库的良好补充。随着互联网web2.0网站的兴起,非关系型的数据库现在成了一个极其热门的新领域,非关系数据库产品的发展非常迅速。而传统的关系数据库在应付web2.0网站,特别是超大规模和高并发的SNS类型的web2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,例如:(1)High performance - 对数据库高并发读写的需求。
2024-03-22 16:54:50
1394
原创 HarmonyOS 应用开发案例
该组件多用于可视化等场景。TabBar在大部分的APP当中都能够使用到,不同的APP可能存在不一样的TabBar样式,Tab组件自带的TabBar属性对于部分效果无法满足,如页签中间显示一圈圆弧外轮廓等, 因此我们需要去自己定义一个TabBar页签来满足开发的需要。本示例提供组件实例在页面间共享的解决方案:通过Stack容器,下层放地图组件,上层放Navigation组件来管理页面,页面可以共享下层的地图组件,页面中需要显示地图的区域设置为透明,并参考触摸交互控制,设置事件透传及响应区域。
2024-03-21 08:53:53
2612
原创 乐优商城(九)数据同步RabbitMQ
消息队列,即MQ,Message Queue。消息队列是典型的:生产者、消费者模型。生产者不断向消息队列中生产消息,消费者不断的从队列中获取消息。因为消息的生产和消费都是异步的,而且只关心消息的发送和接收,没有业务逻辑的侵入,这样就实现了生产者和消费者的解耦。商品服务对商品上下架以后,无需去操作索引库或静态页面,只是发送一条消息,也不关心消息被谁接收。搜索服务和静态页面服务接收消息,分别去处理索引库和静态页面。如果以后有其它系统也依赖商品服务的数据,同样监听消息即可,商品服务无需任何代码修改。
2024-03-20 15:48:07
949
原创 乐优商城(九)数据同步
假如我在商品微服务中,修改了商品的数据,也就是 MySQL 中数据发生了改变。但搜索微服务查询到的数据还是原来的,商品详情微服务的生成的静态页面也没有发生改变,这样显然不对。我们需要实现数据的同步,让搜索微服务和商品详情微服务的商品也发生修改。在 leyou-item-service 中实现商品微服务发送消息。接下来,我们就改造项目,实现搜索微服务和商品详情微服务的数据同步。在 leyou-goods-web 中实现商品详情微服务接收消息。当商品微服务对商品进行增、删、改的操作时候,就发送一条消息。
2024-03-07 09:54:01
980
原创 乐优商城(八)商品详情
商品详情页需要展示商品的规格参数组,以及其下的规格参数。所以我们需要提供一个接口,通过 Spu 的 id 查询规格参数组,并将规格参数封装其中。现在,我们生成商品详情页后,将它先部署一份在 Nginx 中,再返回给客户端。在 leyou-goods-web 中编写 Controller,接收请求,并跳转到商品详情页。当我们点击某个商品图片时,应该携带该商品的 SpuId 跳转到商品详情页。当用户搜索到商品后,如果想要了解商品的更多信息,就需要进入商品详情页。
2024-03-07 09:43:40
1102
原创 乐优商城(七)搜索过滤
顶部导航要展示的内容跟用户选择的过滤条件有关,展开或收起的按钮是否显示也取决于用户选择的过滤条件的多少(如果很少,那么就没必要显示)。如果用户尚未选择商品分类,或者聚合得到的分类数大于 1,那么就没必要进行规格参数的聚合。因为不同分类的商品,其规格参数是不同的。虽然数据库中有所有该分类下的规格参数值,但是不能都用来给供用户选择,因为有些规格参数值并不在用户的搜索结果中。首先,我们要展示出的分类和品牌信息,肯定不是所用商品的分类和品牌,而是用户进行搜索后的商品的分类和品牌。
2024-02-19 16:46:23
780
原创 乐优商城(六)ElasticSearch搜索二
也就是说,每次页面创建完成,都会触发watch,然后就会去修改window.location路径,然后页面被刷新,再次触发created钩子,又触发watch,周而复始,无限循环。点击新品,应该按照商品创建时间排序,点击价格应该按照价格排序。索引库中的数据来自于数据库,我们不能直接去查询商品的数据库,因为真实开发中,每个微服务都是相互独立的,包括数据库也是一样。然而,这一切有一个前提,那就是当你第一次渲染时,对象中有哪些属性,Vue就只监视这些属性,后来添加的属性发生改变,是不会被监视到的。
2024-02-19 16:31:57
1711
6
原创 乐优商城(六)ElasticSearch搜索
用户访问我们的首页,一般都会直接搜索来寻找自己想要购买的商品。而商品的数量非常多,而且分类繁杂。如果能正确的显示出用户想要的商品,并进行合理的过滤,尽快促成交易,是搜索系统要研究的核心。面对这样复杂的搜索业务和数据量,使用传统数据库搜索就显得力不从心,一般我们都会使用全文检索技术,比如之前大家学习过的Solr。不过今天,我们要讲的是另一个全文检索技术:Elasticsearch。
2023-12-28 14:05:04
1155
原创 乐优商城(五)商品管理
live-server 是一款带有热加载功能的小型开发服务器。用它来展示你的 HTML / JavaScript / CSS,但不能用于部署最终的网站。
2023-12-26 15:07:36
1065
原创 乐优商城(四)商品规格管理
这张表似乎少了一些字段,比如商品描述,售后信息等,但这些数据都比较大,为了不影响查询效率我们做了表的垂直拆分,将 SPU 的详情放到了另一张表 tb_spu_detail。还是用上面举过的例子,“小米 10” 就是一个 SPU,它只对应 “小米” 这一个品牌,但小米品牌有多个 SPU,如:小米 9、小米 8 等。SKU 还应该有一个库存字段,但 SKU 表中的其他字段读的频率较高,而库存字段写的频率比较高,因此做了表的垂直拆分,使读写不会互相干扰。并且一个分类对应着多个规格组,一个规格组对应着一个分类。
2023-12-26 14:17:07
1254
原创 乐优商城(三)品牌管理
分布式文件系统(Distributed File System)是指文件系统管理的物理存储资源不一定直接连接在本地节点上,而是通过计算机网络与节点相连。传统文件系统管理的文件就存储在本机。分布式文件系统管理的文件存储在很多机器,这些机器通过网络连接,要被统一管理。无论是上传或者访问文件,都需要通过管理中心来访问FastDFS 是由淘宝的余庆先生所开发的一个轻量级、高性能的开源分布式文件系统。文件存储文件同步文件访问(上传、下载)存取负载均衡在线扩容适合有大容量存储需求的应用或系统。
2023-11-10 14:59:34
233
原创 ArkTS开发实践
ArkTS通过struct声明组件名,并通过@Component和@Entry装饰器,来构成一个自定义组件。使用@Entry和@Component装饰的自定义组件作为页面的入口,会在页面加载时首先进行渲染。@Entry@Component例如ToDoList组件对应如下整个代办页面。图1ToDoList待办列表使用@Component装饰的自定义组件,如ToDoItem这个自定义组件则对应如下内容,作为页面的组成部分。@Component图2ToDoItem。
2023-10-18 10:24:35
947
3
原创 TypeScript快速入门
ArkTS是HarmonyOS优选的主力应用开发语言。它在TypeScript(简称TS)的基础上,匹配ArkUI框架,扩展了声明式UI、状态管理等相应的能力,让开发者以更简洁、更自然的方式开发跨端应用。JavaScript是一种属于网络的高级脚本语言,已经被广泛用于Web应用开发,常用来为网页添加各式各样的动态功能,为用户提供更流畅美观的浏览效果。
2023-10-16 16:24:11
156
原创 鸿蒙初体验
在编辑器底部有一行工具栏,主要介绍常用信息栏,其中Run是项目运行时的信息栏,Problems是当前工程错误与提醒信息栏,Terminal是命令行终端,在这里执行命令行操作,PreviewerLog是预览器日志输出栏,Log是模拟器和真机运行时的日志输出栏。该标签标识ability图标,标签值为资源文件的索引。双击已安装的DevEco Studio快捷方式进入配置页面,IDE会进入配置向导,选择Agree,同意相应的条款,进入配置页。中间的是代码编辑区,你可以在这里修改你的代码,以及切换显示的文件。
2023-10-16 16:05:44
1779
原创 乐优商城(二)搭建后台前端
作为 Web 服务器:相比 Apache,Nginx 使用更少的资源,支持更多的并发连接,体现更高的效率,这点使 Nginx 尤其受到虚拟主机提供商的欢迎。作为负载均衡服务器:Nginx 既可以在内部直接支持 Rails 和 PHP,也可以支持作为 HTTP 代理服务器 对外进行服务。Nginx 用 C 编写, 不论是系统资源开销还是 CPU 使用效率都比 Perlbal 要好的多。
2023-10-11 13:45:54
416
原创 乐优商城(一)介绍和项目搭建
乐优商城是一个全品类的电商购物网站(B2C)用户可以在线购买商品、加入购物车、下单可以评论已购买商品管理员可以在后台管理商品的上下架、促销活动管理员可以监控商品销售状况客服可以在后台处理退款操作希望未来 3 到 5 年可以支持千万用户的使用。
2023-10-11 11:01:27
1330
原创 浅析-vue.js
前几天我们已经对后端的技术栈有了初步的了解、并且已经搭建了整个后端微服务的平台。接下来要做的事情就是功能开发了。但是没有前端页面,我们肯定无从下手,因此今天我们就要来了解一下前端的一些技术,完成前端页面搭建。先聊一下前端开发模式的发展。静态页面最初的网页以HTML为主,是纯静态的网页。网页是只读的,信息流只能从服务端到客户端单向流通。开发人员也只关心页面的样式和内容即可。异步刷新,操作DOM1995年,网景工程师Brendan Eich 花了10天时间设计了JavaScript语言.
2023-09-15 08:24:28
359
原创 浅析-ES6
来看下前端的发展历程:最初的网页以HTML为主,是纯静态的网页。网页是只读的,信息流只能从服务的到客户端单向流通。开发人员也只关心页面的样式和内容即可。web2.0时代:1995年,网景工程师Brendan Eich 花了10天时间设计了JavaScript语言。1996年,微软发布了JScript,其实是JavaScript的逆向工程实现。1997年,为了统一各种不同script脚本语言,ECMA(欧洲计算机制造商协会)以JavaScript为基础,制定了ECMAscript标准规范。
2023-09-13 08:31:49
220
原创 Spring Cloud 微服务2
Hystix,即熔断器。主页:https://githubHystix是Netflix开源的一个延迟和容错库,用于隔离访问远程服务、第三方库,防止出现级联失败。有道词典的英文解释:为什么叫伪装?Feign可以把Rest的请求进行隐藏,伪装成类似SpringMVC的Controller一样。你不用再自己拼接url,拼接参数等等操作,一切都交给Feign去做。项目主页:https://github.com/OpenFeign/feign。
2023-08-31 14:49:51
984
原创 Spring Cloud 微服务
HttpClient是Apache公司的产品,是Http Components下的一个组件。官网地址:http://hc.apache.org/index.html特点:基于标准、纯净的Java语言。实现了Http1.0和Http1.1以可扩展的面向对象的结构实现了Http全部的方法(GET, POST, PUT, DELETE, HEAD, OPTIONS, and TRACE)支持HTTPS协议。通过Http代理建立透明的连接。自动处理Set-Cookie中的Cookie。
2023-08-25 09:21:35
1163
视频播放器
2017-01-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人