- 博客(232)
- 收藏
- 关注
原创 [尚庭公寓]01-项目概述
尚庭公寓是一个公寓租赁平台项目,包含移动端和后台管理系统其中移动端面向广大用户,提供找房、看房预约、租约管理等功能,后台管理系统面向管理员,提供公寓(房源)管理、租赁管理、用户管理等功能。下面分别介绍两端的具体业务功能移动端的线上体验地址为: http://39.99.159.121:8002其主要业务功能如下图所示各功能模块具体内容如下房源检索用户可以使用这个功能来搜索和检索符合其需求的房源。他们可以根据不同的条件,如地理位置、租金范围、支付方式等,快速找到适合的房源。看房预约管理。
2025-06-09 11:38:05
1522
原创 [Spring]-AOP
1、Spring会为每个被切面切入的组件创建代理对象(Spring CGLIB 创建的代理对象,无视接口)。3、目标方法执行时,会先去执行增强器链中拿到需要提前执行的通知方法去执行。2、代理对象中保存了切面类里面所有通知方法构成的增强器链。默认情况下, 切面方法的执行顺序受切面类的首字母排序影响。通过 JoinPoint 包装了当前目标方法的所有信息。通过 throwing 属性可以接收当前方法的异常信息。编码时介入: 包装真实对象,对外提供静态代理对象。运行时介入: 创建真实对象运行时代理对象。
2025-06-06 11:11:11
1091
原创 [HTML5]快速掌握canvas
canvas>是一个HTML元素,我们可以将它简单理解为一个画板,通过Canvas提供的绘制api我们就可以绘制出各种图形。canvas 是 html5 标准中提供的一个标签, 顾名思义是定义在浏览器上的画布。将一个canvas对象绘制到另一个canvas对象上 (离开用户可视范围内进行染)平移(translate)、旋转(rotate)、缩放(scale)语法: transform(a, b, c, d, e, f);canvas中的坐标系和html中的坐标系一样。画布的状态是可以保存和恢复的。
2025-06-02 13:52:29
1233
原创 [CSS3]响应式布局
复制技巧: 如果代码多, 拖拽复制就不方便, 左键点击开始位置, 按住shift再右键点击结束位置, 快速选择。bootStrap默认的导航条组件, 是屏幕小于768时才折叠为图标, 项目需求是小于992时就堆叠排列。使用bootstrap栅格系统布局时, 栅格盒子只做布局, 内容的排版或者盒子的间距全部交给子级盒子。响应式就是一套代码, 兼容大中小不同的屏幕, 即网页内容不变, 网页布局随屏幕切换而改变。体验一下: 引入框架, 通过类名, 就可以快速实现响应式布局, 非常方便。
2025-05-30 13:50:55
1623
原创 [CSS3]vw/vh移动适配
vw单位换算: 设计稿中的单位一定是px单位, 写代码要写vw单位, 怎么换算呢?新建index.html文件, 新建index.less文件。素材获取: 图片直接右键另存为, 字体图标的下载如下。目标: 能够使用vw单位设置网页元素的尺寸。
2025-05-28 10:53:38
835
原创 [CSS3]rem移动适配
什么是移动端适配?让页面的元素在屏幕尺寸变化时, 同比放大或缩小移动适配的方案rem:目前多数企业在用的解决方案vw/vh:未来的解决方案。
2025-05-26 10:48:05
1323
原创 [CSS3]Flex布局
新建orders.html作为页面, 引入字体图标文件, base.css用于清除默认样式。使用像素大厨, 打开移动端设计稿, 调整到2倍图模式, 用于测量尺寸。使用justify-content调节元素在主轴的对齐方式。使用align-items调节元素在侧轴的对齐方式。使用flex-direction改变元素排列方向。使用flex-wrap实现弹性盒子多行排列效果。能够使用Flex布局模型灵活、快速的开发网页。主体内容从上往下, 支付按钮固定在页面底部。使用flex属性修改弹性盒子伸缩比。
2025-05-24 10:51:44
1530
原创 [CSS3]百分比布局
设计师的设计图一般都是750px的图(也就是苹果6/7/8的物理分辨率), 称为二倍图。使用适口标签, 使移动端网页的宽度和设备宽度(逻辑分辨率)相同。默认情况下,手机网页的宽度固定是980, 和逻辑分辨率无关。屏幕尺寸: 指的是屏幕对角线的长度,一般用英寸来度量。随着技术发展,行业要求也越高,现在也要求高度自适应.默认情况下,PC网页的宽度和逻辑分辨率是相同的。制作网页参考物理分辨率还是逻辑分辨率?PC端网页和移动端网页的有什么不同?PC端主流设备的分辨率。移动端主流设备的分辨率。
2025-05-21 10:22:24
782
原创 [CSS3]属性增强2
过度效果与动画效果思考: 过渡可以实现什么效果?答: 实现2个状态间的变化过程动画效果: 实现多个状态间的变化过程,动画过程可控(重复播放、最终画面、是否暂停)动画的本质是快速切换大量图片时在人脑中形成的具有连续性的画面构成动画的最小单元: 帧或动画帧。
2025-05-19 10:12:26
1047
原创 [CSS3]属性增强1
使用字体图标可以实现简洁的图标效果, 字体图标展示的是图标, 本质是字体, 适合简单, 颜色单一的图标。如果图标库中找不到需要的图标. iconFont网站支持上传矢量图生成字体图标。语法: transform: translate(水平移动距离,垂直移动距离)示例: 使用translate快速实现绝对定位的元素居中效果。使用transform属性实现元素的位移、旋转、缩放等效果。使用transform复合属性实现多形态转换。使用rotate实现元素旋转效果。使用skew实现元素倾斜效果。
2025-05-16 14:07:26
1361
原创 [Spring]-组件的生命周期
理解后置处理器机制: 前面的周期都是本质都是通知, 处理机制本质是拦截, 可以直接修改bean。了解 InitializingBean接口 和 DisposableBean接口的 调用时机。了解 @PostConstruct 和 @PreDestroy 的执行时机。通过@Bean指定组件的生命周期。查看单元测试方法的结果。使用单元测试测试容器。
2025-05-14 14:05:01
583
原创 [Spring]-组件注入
最佳实践: 强烈建议组件注册的名字 和 组件注入的名字符合规范, 这样可以避免不必要的麻烦。如果容器中同一类型的bean存在多个, 如果注入失败, 可以使用以下注解解决。使用@QualiFier注解, 具名注入组件。使用@Primary注解 指定默认组件。使用@Value注解获取配置文件的数据。运行项目, 容器启动, 注册正常注册。使用原生spring的方式启动容器。了解 @Resource注解。通过setter方法注入组件。通过构造器注入bean。指定属性注入的数据源。
2025-05-12 10:43:33
496
原创 [Spring]-组件注册
默认情况下, 容器的组件都是单例模式, 并且是饿汉式单例, 使用@Lazy注解改为懒汉单例, 实现组件懒加载。单例模式下, 组件全局只会创建一个, 多次获取拿到是同一个, 单例组件在容器初始化的时候就会提前创建。对于一些常见的按需加载条件, spring官方已经提供了很多接口实现, 也就是衍生注解, 解放生产力。这些注解本质上是没有区别的, 都是注册组件而已, 只是分类使用提高代码可读性。第三方依赖的代码都是只读的, 不能通过添加注解的方式注册到容器。非单例模式下, 每次获取, 都会创建一个新的组件。
2025-05-10 10:59:30
1517
原创 [Spring]-认识Spring
Spring是一个 IOC(DI) 和 AOP 框架。官网: spring.io。Spring有很多优良特性。框架 framework。
2025-05-08 10:03:51
474
原创 [学成在线]23-面试题总结
maven依赖版本冲突一般是由于间接依赖导致一个jar包即有多个不同的版本,比如:A依赖了B的1.0版本,C依赖了B的2.0版本,项目依赖A和C从而间接依赖了B的1.0和2.0版本,此时B有两个版本引入到了项目中,当存在版本冲突时可能会出现 ClassNotFoundException、NoSuchMethodError等错误。3)唯一序列号,请求前生成唯一的序列号,携带序列号去请求,执行时在redis记录该序列号表示以该序列号的请求执行过了,如果相同的序列号再次来执行说明是重复执行。
2025-05-05 13:56:51
1477
原创 [学成在线]22-自动部署项目
在pom.xml添加docker-maven-plugin插件实现将springboot工程创建镜像,此pom.xml添加docker-maven-plugin插件用于生成镜像。分别修改system-api、content-api、media-api、gateway、auth、checkcode服务的pom.xml文件。将此目录的内容拷贝到虚拟机的/data/soft/nginx/xuecheng_portal_static/dist。将本机的nginx服务停掉,访问www.51xuecheng.cn。
2025-05-02 10:56:07
1684
原创 [学成在线]21-人工部署项目
DevOps兴起于2009年,近年来由于云计算、互联网的发展,促进了DevOps的基础设施及工具链的发展,涌现了一大批优秀的工具,这些工具包括开发、测试、运维的各各领域,例如:GitHub、Docker、Jenkins、Hudson、K8S、Ant/Maven/Gradle、Selenium、QUnit、JMeter等。所以,在整体生命周期中比较核心的两个阶段是:开发阶段、维护阶段,开发阶段的成果是软件开发完成并成功上线,运维阶段则负责对软件进行维护和升级,而运维阶段通常在一个软件的生命周期中占比最多。
2025-04-30 10:15:49
1107
原创 [学成在线]20-在线学习
在视频点播页面需要查询课程信息,课程上线后也需要访问/api/content/course/whole/{courseId}课程预览时请求获取课程的接口为:/open/content/course/whole/{courseId}下边实现/api/content/course/whole/{courseId} 获取课程发布信息接口。登录网站,点击“我的学习”进入个人中心,查看我的课程表中课程是否是当前用户所选课程。没有选课的免费课程、收费课程各一门,其中收费课程具有试学课程。
2025-04-28 10:10:02
811
原创 [学成在线]19-支付通知
订单服务完成支付后将支付结果发给每一个与订单服务对接的微服务,订单服务将消息发给交换机,由交换机广播消息,每个订阅消息的微服务都可以接收到支付结果.订单服务通过消息队列将支付结果发给学习中心服务,消息队列采用发布订阅模式。订单服务作为通用服务在订单支付成功后需要将支付结果异步通知给其它微服务。学习资源服务:对收费的学习资料需要购买后下载,与订单服务对接完成支付。学习中心服务:对收费课程选课需要支付,与订单服务对接完成支付。2、支付完成点击“支付完成”,观察订单服务控制台是否发送消息。
2025-04-25 10:39:34
1114
原创 [学成在线]18-支付宝支付
支付完成后第三方支付系统会主动通知支付结果,要实现主动通知需要在请求支付系统下单时传入NotifyUrl,这里有两个url:NotifyUrl和ReturnUrl,ReturnUrl是支付完成后支付系统携带支付结果重定向到ReturnUrl地址,NotifyUrl是支付完成后支付系统在后台定时去通知,使用NotifyUrl比使用ReturnUrl有保证。具体的使用方法是在调用下单接口的 API 中传入的异步通知地址 notify_url,通过 POST 请求的形式将支付结果作为参数通知到商户系统。
2025-04-23 10:18:09
1689
原创 [学成在线]17-添加选课
本模块实现了学生选课、下单支付、学习的整体流程。网站的课程有免费和收费两种,对于免费课程学生选课后可直接学习,对于收费课程学生需要下单且支付成功方可选课、学习。选课:是将课程加入我的课程表的过程。我的课程表:记录我在网站学习的课程,我的课程表中有免费课程和收费课程两种,对于免费课程可直接添加到我的课程表,对于收费课程需要下单、支付成功后自动加入我的课程表。
2025-04-21 10:44:35
985
原创 [学成在线]16-用户授权
本项目是基于角色分配权限,如果要删除用户的权限可以给用户换角色,那么新角色下的权限就是用户的权限;如果不换用户的角色可以删除角色下的权限即删除角色权限关系表相应记录,这样操作是将角色下的权限删除,属于该角色的用户都将删除此权限。一个例子:用户A和用户B都是教学机构,他们都拥有“我的课程”权限,但是两个用户所查询到的数据是不一样的。细粒度授权涉及到不同的业务逻辑,通常在service层实现,根据不同的用户进行校验,根据不同的参数查询不同的数据或操作不同的数据。
2025-04-19 05:19:05
938
原创 [学成在线]15-微信扫码登录
前端引入微信官方提供的JS, 生成登录二维码用户扫码授权后, 微信会重定向到我们的URL(前端指定), 携带授权码我们拿到授权码, 调用微信服务申请令牌信息使用令牌获取用户信息拿到用户信息后, 我们把用户信息写入我们的数据库, 完成用户注册用户注册成功后, 我们返回一个重定向地址, 首页URL+用户名+登录类型(wx),前端拿到重定向地址, 进行重定向, 完成自动登录。
2025-04-17 10:07:05
1288
原创 [学成在线]14-用户认证
数据库中的密码加过密的,用户输入的密码是明文,我们需要修改密码格式器PasswordEncoder,原来使用的是NoOpPasswordEncoder,它是通过明文方式比较密码,现在我们修改为BCryptPasswordEncoder,它是将用户输入的密码编码为BCrypt格式与数据库中的密码进行比对。在认证阶段DaoAuthenticationProvider会调用UserDetailService查询用户的信息,这里是可以获取到齐全的用户信息的。这个key和图片一同返回给页面。
2025-04-14 10:14:31
981
原创 [学成在线]13-Spring Security入门
扫码登录的好处是用户不用输入账号和密码,操作简便,另外一个好处就是有利于用户信息的共享,互联网的优势就是资源共享,用户也是一种资源,对于一个新网站如果让用户去注册是很困难的,如果提供了微信扫码登录将省去用户注册的成本,是一种非常有效的推广手段。)方法,设置到其中。令牌采用JWT格式即可解决上边的问题,用户认证通过后会得到一个JWT令牌,JWT令牌中已经包括了用户相关的信息,客户端只需要携带JWT访问资源服务,资源服务根据事先约定的算法自行完成令牌校验,无需每次都请求认证服务完成授权。
2025-04-10 09:52:18
943
原创 [学成在线]12-课程搜索
搜索功能是一个系统的重要功能,是信息查询的方式。课程搜索是课程展示的渠道,用户通过课程搜索找到课程信息,进一步去查看课程的详细信息,进行选课、支付、学习。本项目的课程搜索支持全文检索技术,什么是全文检索?
2025-04-07 09:51:44
1337
原创 [学成在线]11-课程发布
现在的需求是课程发布操作后将数据写入数据库、redis、elasticsearch、MinIO四个地方,这四个地方已经不限制在一个数据库内,是由四个分散的服务去提供,与这四个服务去通信需要网络通信,而网络存在不可到达性,这种分布式系统环境下,通过与不同的服务进行网络通信去完成事务称之为。拿课程发布任务举例,执行课程发布任务是要向redis、索引库等同步数据,其它任务的执行逻辑是不同的,所以执行任务在sdk中不用实现任务逻辑,只需要提供一个抽象方法由具体的执行任务方去实现。
2025-04-04 15:46:02
1393
原创 [学成在线]10-课程审核
5、课程审核过后不管状态是通过还是不通过,教学机构可以再次修改课程并提交审核,此时课程状态为”已提交“。提交课程审核,将课程信息汇总后写入课程预发布表,课程预发布表记录了教学机构在某个时间点要发布的课程信息。课程审核后更新课程基本信息表的审核状态、课程预发布表的审核状态,并将审核结果写入课程审核记录。此时课程的审核状态为”已提交“。1、查询课程基本信息、课程营销信息、课程计划信息等课程相关信息,整合为课程预发布信息。6、课程审核通过,教学机构人员可以发布课程,发布成功后课程的发布状态为”已发布“。
2025-04-02 17:06:00
673
原创 [学成在线]09-课程预览
课程信息编辑完毕即可发布课程,发布课程相当于一个确认操作,课程发布后学习者在网站可以搜索到课程,然后查看课程的详细信息,进一步选课、支付、在线学习。下边是课程编辑与发布的整体流程:为了课程内容没有违规信息、课程内容安排合理,在课程发布之前运营方会进行课程审核,审核通过后课程方可发布。作为课程制作方即教学机构,在课程发布前通过课程预览功能可以看到课程发布后的效果,哪里的课程信息存在问题方便查看,及时修改。下图是课程预览的效果图,也是课程正式发布后的课程详情界面:
2025-03-31 11:03:21
1113
原创 [学成在线]08-课程绑定媒资
根据业务流程,用户进入课程计划列表,首先确定向哪个课程计划添加视频,点击”添加视频“后用户选择视频,选择视频,点击提交,前端以json格式请求以下参数: 提交媒资文件id、文件名称、教学计划id。
2025-03-28 10:31:48
573
原创 [学成在线]07-视频转码
XXL-JOB是一个轻量级分布式任务调度平台,其核心设计目标是开发迅速、学习简单、轻量级、易扩展。现已开放源代码并接入多家公司线上产品线,开箱即用。官网:https://www.xuxueli.com/xxl-job/文档:https://www.xuxueli.com/xxl-job/#%E3%80%8A%E5%88%86%E5%B8%83%E5%BC%8F%E4%BB%BB%E5%8A%A1%E8%B0%83%E5%BA%A6%E5%B9%B3%E5%8F%B0XXL-JOB%E3%80%8B。
2025-03-26 10:01:04
1035
原创 [学成在线]06-视频分片上传
需求背景通常视频文件都比较大,所以对于媒资系统上传文件的需求要满足大文件的上传要求。http协议本身对上传文件大小没有限制,但是客户的网络环境质量、电脑硬件环境等参差不齐,如果一个大文件快上传完了网断了没有上传完成,需要客户重新上传,用户体验非常差,所以对于大文件上传的要求最基本的是断点续传。什么是断点续传。
2025-03-24 09:50:11
1391
原创 [学成在线]05-分布式文件系统
要理解分布式文件系统首先了解什么是文件系统。文件系统是负责管理和存储文件的系统软件,操作系统通过文件系统提供的接口去存取文件,用户通过操作系统访问磁盘上的文件。下图指示了文件系统所处的位置:常见的文件系统:FAT16/FAT32、NTFS、HFS、UFS、APFS、XFS、Ext4等。现在有个问题,一此短视频平台拥有大量的视频、图片,这些视频文件、图片文件该如何存储呢?如何存储可以满足互联网上海量用户的浏览。今天讲的分布式文件系统就是海量用户查阅海量文件的方案。
2025-03-14 10:42:45
1031
原创 [学成在线]04-课程计划管理
响应结果需要自定义模型类/*** @description 课程计划树型结构dto*/@Data@ToString//课程计划关联的媒资信息//子结点/*** @description 课程计划管理接口*/@Api(value = "课程计划管理接口",tags = "课程计划管理接口")@ApiOperation("查询课程计划树形结构")
2025-03-12 14:44:18
969
原创 [学成在线]03-课程内容管理2
前端请求后端接口传输参数,是在controller中校验还是在Service中校验?答案是都需要校验,只是分工不同。Contoller中校验请求参数的合法性,包括:必填项校验,数据格式校验,比如:是否是符合一定的日期格式,等。Service中要校验的是业务规则相关的内容,比如:课程已经审核通过所以提交失败。Service中根据业务规则去校验不方便写成通用代码,Controller中则可以将校验的代码写成通用代码。
2025-03-10 14:48:42
1182
原创 [学成在线]02-课程内容管理1
1.课程列表添加课程选择录播, 填写课程信息填写课程计划信息填写师资信息课程信息填写完毕, 先进行提交审核, 审核通过后可以发布课程内容管理模块的基础表涉及9张,如下:使用 PowerDesigner打开课程资料下的"数据库\模型\学成在线项目.sws”教学机构人员点击课程管理首先进入课程查询界面在课程进行列表查询页面输入查询条件查询课程信息当不输入查询条件时输入全部课程信息。输入查询条件查询符合条件的课程信息。约束:本教学机构查询本机构的课程信息。数据模型。
2025-03-07 10:01:22
1618
原创 [学成在线]01-项目环境搭建
适学人群需要提高项目开发经验, 并且具备Java web、MySQL、Mybatis、SpringBoot、SpringCloud 基础课程亮点业务流程完整、详细,深入讲解课程发布业务、视频处理业务、选课学习业务、订单支付业务、认证授权等业务流程。课程涵盖项目需求分析、设计、编码、调试、测试整个开发过程技术先进,当前热门的Spring Cloud Alibaba微服务技术栈,采用Nginx、MQ、Redis、Elasticsearch、MinIO、XXL-Job等中间件技术。
2025-03-05 11:08:39
870
原创 [Java基础]日志技术
日志就是程序运行的详细记录希望系统能记住某些数据是被谁操作的,比如被谁删除了?想分析用户浏览系统的具体情况,以便挖掘用户的具体喜好?当系统在开发中或者上线后出现了bug,崩溃了,该通过什么去分析、定位bug?程序中的日志,通常就是一个文件,里面记录的是程序运行过程中的各种信息输出语句日志会展示在控制台不能更方便的将日志记录到其他的位置(文件,数据库)想取消日志,需要修改源代码才可以完成日志技术可以将系统执行的信息,方便的记录到指定的位置(控制台、文件中、数据库中)
2025-03-03 11:44:27
980
原创 [Java基础]注解技术
注解就是Java代码里的特殊标记,比如: @Override、@Test等。作用是让其他程序根据注解信息来决定怎么执行该程序注解可以用在类上、构造器上、方法上、成员变量上、参数上、等位置处。自定义注解的语法@MyBook(name = "赵丽丽", age = 20, address = {"北京", "上海"})@MyValue("delete") // 完整写法: @MyValue(value="delete")
2025-02-28 14:59:48
479
原创 [Java基础]反射技术
需求: 对于任意一个对象,该框架都可以把对象的字段名和对应的值,保存到文件中去。反射就是拿到类文件, 然后操作类的成分(成员变量, 方法, 构造器等)反射第一步: 加载类,获取类的字节码 (Class对象)通过加载类文件, 获取类的成分信息, 操作他们。获取类的构造器: Constructor对象。Class提供了从类中获取成员方法的API。Class提供了从类中获取成员变量的方法。Class提供了从类中获取构造器的方法。获取类的成员方法: Method对象。获取类的成员变量: Field对象。
2025-02-26 09:27:14
466
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人