自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(54)
  • 收藏
  • 关注

原创 java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.con

java.lang.IllegalStateException: Failed to load ApplicationContext at org.springframework.test.context.cache.DefaultCacheAwareContextLoaderDelegate.loadContext(DefaultCacheAwareContextLoaderDelegate.java:132) at org.springframework.test.context.supp

2025-03-26 23:56:39 605

原创 20.课程发布(分布式事务(CAP理论))

为了提高网站的速度需要将课程信息进行缓存,缓存信息放在redis中,将课程索引信息插入到es的索引中,通过es来进行搜索,这样可以减少访问已发布的课程时,MySQL数据库的压力。同时,课程预览的时候通过freeMarker用tomcat进行渲染,但是tomcat的性能很差,所以课程正式发布之后就不再使用tomcat,而是生成html静态页面放在nginx中,通过nginx来进行处理(生成html页面之后放在minio分布式文件系统中)。要满足可用性,那么数据还没同步过来,还是老的数据,就无法满足一致性。

2025-03-26 16:05:55 466

原创 19.课程发布-freeMarker

使用Nginx的时候,记得清除浏览器资源,负责修改了静态页面的数据之后,也可能一直没刷新,使用的历史数据。应该也可以有自动刷新的办法,此处目前尚未解决。重启nginx,cmd进入nginx的目录,然后nginx.exe -s reload。有一天,服务器放在公网了,就要进行域名的注册,然后告诉供应商域名对应的服务器ip是多少。部署Nginx:代理服务器,所有的请求都通过nginx进行代理,转发到后台的服务器上。模板引擎技术:Freemarker,可以在服务端生成网页来返回给浏览器。

2025-03-21 15:11:33 148

原创 Centos时间同步

一、安装NTP服务systemctlenabled此外,如果系统中安装了chrony服务,它可能会与ntp服务冲突,导致ntp服务开机自启失败。可以执行查看chrony服务状态,若处于运行状态,执行停止该服务,并执行禁止其开机自启7。[root@从你执行的命令和得到的输出结果来看,你已经成功停止并禁用了chronyd服务。这条信息表明系统已经移除了chronyd服务在目录下的符号链接,也就意味着chronyd服务不会在开机时自动启动了。接下来你可以继续按照之前的步骤操作,确保ntpd。

2025-03-12 14:01:11 1174

原创 19 中间件XXL-JOB

等待。

2025-03-06 00:20:22 73

原创 18.分布式任务调度

设置一个特定的时间,执行某一个任务,这就是分布式任务调度。

2025-03-06 00:12:12 228

原创 16.上传视频-断点续传

采用方式:使用io流上传数据的过程。通过流进行网络传输。使用断点续传,就可以在网络中断的时候从断点处继续下载。一般采用分块上传的方式,如果网络断掉,可以从当前块所在位置重新上传,也可以从当前点所在位置重新上传。分块的方式稍微会更简单一点。总结:Minio 要求分片上传的最小单位为 5MB,但支持上传大于 5MB 的文件(通过分片合并实现)。

2025-03-05 16:45:18 198

原创 13.媒资服务

媒资服务的作用,就是做了一个统一的文件管理系统。

2025-03-03 09:55:58 67

原创 15.@Transaction注解成功的条件

③要想使得调用的方法成为一个代理对象,就将这个方法注入到service中。①添加@Transactional注解。

2025-03-03 09:55:12 375

原创 minio服务器访问图片,一直是图裂

多次排查后发现原因,前端的url后面加了注释,造成了url路径后面有空格,所以访问图片失败。②minio在nacos的配置等等完全正确,图片地址已存入数据库,为什么访问图片还是图裂呢?①配置了正确的跨域请求。

2025-02-28 01:14:58 250

原创 14.学成在线开发小结

1.统计两张表的数据,表1和表2是一对多的关系,如果既要统计表1又要统计表2的数据,要分开进行统计,否则表1一条数据在表2中可能有多条数据对应,导致表1的数据被多次统计。2.nacos配置文件的数据读取不到可能原因有:①bootstrap.yaml文件配置错误(容易发现)。②没有在使用的配置类中添加@Bean等注解将其注入为一个容器。

2025-02-17 23:48:00 210

原创 13.minio使用注意事项 io.minio.errors.InvalidResponseException: Non-XML response from server.

②注意使用的虚拟机网络是否正确,最好直接使用net--host。③注意虚拟机和Windows系统的时间差异不要过大。①注意挂载的端口号是否正确。

2025-01-17 22:15:10 549

原创 Maven项目Java文件夹灰色,bootstrap.yaml为红色

右键改变资源类型为正确的即可。

2025-01-15 14:27:24 112

原创 11.配置文件的优先级

在启动参数中配置是优先级最高的方式。如果有nacos配置,nacos配置优先。如果需要以本地的优先,需要添加配置。初步原因是有一个文件没删除。

2025-01-13 21:30:42 236

原创 Nacos

例如,在开发环境中,你可以使用。①bootstrap.yml或(bootstrap.properties)优先加载,这个文件用于应用程序的引导阶段,通常包含一些系统级别的配置参数,这些参数一般是不变的。补充:在对应 nacos 的使用还是需要配置在 bootstrap 配置文件中,需要在启动时读取 nacos 配置文件,从而获取 nacos 配置中心的配置文件。①在微服务项目中,没有配置中心的情况下,前端对接时,需要写入每个微服务对应的端口号,工作成本很高,有了配置中心就可以进行统一管理。

2025-01-10 17:49:15 713

原创 2025.01.09工作总结

④添加课程章节功能,没有关联的子章节id,使用inner join会导致大章节数据丢失,应该使用Left join查询出左表大章节全部的数据。③feign的底层技术是使用的http,而dubbo的底层技术使用的rpc。如果远程接口调用比较频繁,建议使用dubbo。⑤将微服务注册到nacos上面的时候,以命名空间id为准,最好命名空间名称和命名空间id一致,避免出错。①maven报找不到符号异常,可能是jdk和依赖版本不兼容导致的。②项目上线后会使用域名,www.

2025-01-10 00:35:05 90

原创 Redis

Redis的哨兵和主从模式基本已经可以实现高可用和读写分离,但是在这种模式下每台Redis服务器都存储相同的数据,浪费内存空间,所以Redis加入了Cluster集群模式,实现了Redis的分布式存储,也就是说Redis节点上存储不同的内容。丰富的数据类型 Redis不仅仅支持简单的key-value类型的数据,还支持五种基本数据类型String,list,set,SortedSet,hash等。Redis被广泛应用在缓存方向,与传统数据库不同的是redis的数据是存在于内存中的,因此读写速度非常快。

2025-01-08 21:51:33 330

原创 10.JSR303校验

②@Validated注解针对不同的需求提供了分组校验的方法。①针对不同的需求,定义多个模型类,使用自己的校验规则。

2025-01-06 00:33:57 191

原创 10.全局异常处理

通过aop的机制把我们的注解增强,通过注解@ControllerAdvice写一个增强类,把我们遇到的异常信息捕获。通常和@ExceptionHandler结合使用,来处理SpringMvc的异常信息。使用try-catch会造成项目冗余,所以我们进行全局异常统一处理。②自定义异常类型,继承RuntimeException运行时异常。①异常信息规范化,和前端约定好返回的异常信息模型。③自定义全局异常处理器,处理自定义异常和系统异常。实际形目中不会返回500,而是会自定义一场相应状态码。

2025-01-05 18:09:23 147

原创 9.课程分类查询

JSON数据中,[]在Java里面就是一个list集合。

2025-01-05 17:00:18 201

原创 Redis

总结:redis是一个性能极高的内存数据库,支持丰富的数据结构,提供持久化,事务等功能,非常适合缓存,消息队列等场景,被广泛应用于各种大型系统中。pfmerge newKey key1 key2 ...:合并key1和key2中的元素,并且剔除其中重复的元素,产生新的集合newKey。用户在线状态跟踪:每个用户可以用一个位来表示其在线或离线状态,位图的偏移量可以对应用户ID,便于高效地检索和更新用户的在线状态。活跃用户计数:在社交网络或在线社区中估计活跃用户的数量,帮助评估平台的活跃程度和用户参与度。

2025-01-05 16:59:40 796

原创 mybatis分页插件的原理

首先将分页参数放到ThreadLocal中,拦截执行的sql,根据数据库类型添加对应的分页语句重写sql,例如:(select * from table where a )转换为(select count(*) from table where a limit,)计算出了total总条数,pageNum当前第几页、pageSize每页大小和当前页的数据,是否为首页,是否为尾页,总页数等。ThreadLocal是现成的本地数据,继续执行的时候就可以非常方便的取出线程的本地数据。

2025-01-05 16:58:49 233

原创 8.解决跨域问题的三种方案

开启域名,单点登录后,就使用最上面的接口了。

2024-12-09 23:38:44 276

原创 7.学成在线项目前后端联调

2024-12-09 22:56:55 137

原创 SpringCloud

Zuul是基于servlet实现的,是阻塞式编程,gateway是基于Spring5中的WebFlux,属于响应式编程,具备更好的性能。Ribbon默认采用的是懒加载,即第一次访问时才会去创建LoadBanlanceClient,请求时间会很长,而饥饿加载则会在项目启动时创建,减少第一次访问的耗时,饥饿加载可以通过yml配置的方式启动加载。因为我们在使用restTemplate进行远程调用,请求服务的时候,我们的url是写死的。缺点:高度耦合,扩展性差,适合小型项目,例如学生管理系统。

2024-12-09 00:49:13 468

原创 项目面试题

如果需要Controller返回jsp或者html页面,就不能使用@RestController,因为其只能返回Json、xml数据。

2024-12-09 00:49:07 126

原创 学成在线项目-持久层Dao开发

为了避免在表中进行修改,定义一个字典表。使用http client进行测试。

2024-12-09 00:48:53 171

原创 Whitelabel Error Page-405

出现这个原因,是因为我使用了@PostMapping注解。

2024-12-07 01:33:16 275

原创 Springboot

Springboot默认支持内容协商机制,但Springboot默认只支持返回Json格式的数据,要返回xml格式的数据,需要导入jackson-dataformat-xml让Springboot支持返回xml数据。如果我们的Java服务同时为安卓手机和浏览器同时提供服务,浏览器期望接收的是JSON格式,安卓手机期望接收的是xml格式,我们不需要写两个方法,Springboot的内容协商机制可以解决这个问题。还可以使用配置请求参数的方式来实现内容协商机制,也就是请求参数值不同,返回不同的数据。

2024-12-05 21:53:08 378

原创 git分支-分布式版本控制工具

Head指向谁,谁就是当前分支。

2024-12-05 00:26:18 92

原创 5.内容管理模块-课程查询

搞清楚一个项目的业务流程最直接的手段,就是找一个账号登录进去,操作一遍。

2024-12-05 00:25:56 167

原创 4.学成在线开发常见知识

Maven中,通过compile将Java文件编译成.class文件,使用clean清理掉.class文件。target目录存放生成的.class文件以及相关配置文件。package打包生成的文件也会存放在本地仓库中,install打好的包上传到本地仓库,deploy打包并上传到远程仓库。

2024-12-05 00:19:02 145

原创 SpringMVC

HandlerExecutionChain:处理器执行链,包含两部分内容,Handler和HandlerInterceptor,系统会有一个默认的HandlerInterceptor,如果有额外的拦截处理,可以添加拦截器进行设置。DispatcherServlet:前端控制器,负责调度其他组件的执行,可以降低不同组件之间的耦合,是SpringMVC中的核心模块。HandlerInterceptor:处理器拦截器,是一个接口,如果我们需要进行一些拦截处理,可以通过实现这个接口完成。

2024-12-04 17:22:11 697

原创 spring

spring即指spring framework,也就是spring框架,它是一个分层的面向切面的Java应用程序的一站式解决框架,是spring技术栈的核心和基础,是为了解决企业级应用开发的复杂性而创建的。④一站式:在IOC和AOP的基础上,spring可以整合各种企业级应用的开源框架和优秀的第三方库,同时spring旗下的项目已经覆盖了广泛的领域,spring framework能解决很多方面的功能性需求。IOC容器管理的对象即为spring bean,它和关键字new创建的对象没有任何区别。

2024-12-03 18:03:12 596

原创 创建线程的四种方式

线程是操作系统的概念,操作系统内核实现了线程这样的机制,并对用户层提供一些API供用户使用(例如Linux系统的Pthread库)。线程调度是随机的,随机调度使得一个程序在多线程环境下,执行顺序存在很多的变数,我们需要保证在任意执行顺序下,代码都能正确的执行得到预期的结果。⑧join():a线程调用b线程的join方法,a线程会进入阻塞状态,直到b线程执行完毕,a线程才结束阻塞状态。⑦yeild():直接使用,不需要被某个类使用,作用是释放当前CPU的执行权,重新抢夺当前CPU的执行权。

2024-12-02 16:46:49 452

原创 ①MySQL三大范式

确保数据表的每个字段具有原子性,也就是说数据库中每个表的字段的值为不可拆分的最小数据单元。第二范式是在第一范式的基础上,确保了数据表中除了主键之外每个字段都必须依赖主键。规范数据库表的设计,设计出简洁、优雅的数据库表结构。这是数据库内部的存储表示。在 MySQL 数据库中,

2024-11-16 20:17:01 268

原创 Failed to configure a DataSource: ‘url‘ attribute is not specified and no embedded datasource could

通过看报错得知,是item-service服务的url没有提供,将通过负载均衡去寻找一个。此处可以看到我们是在nacos控制台进行了配置,然而。nacos控制台空空如也,找到了报错原因。nacos配置成功后,启动成功。

2024-10-30 17:48:21 251

原创 java.util.concurrent.TimeoutException: Waited 3000 milliseconds (plus 15 milliseconds, 331700 nanose

就是端口号忘了改,修改端口号之后启动成功。

2024-10-28 17:49:30 568

原创 电脑声音时大时小解决办法

5.重启电脑即可,我的电脑是Windows11系统。4.找到通信栏,选择不执行任何操作。

2024-10-28 16:51:24 606

原创 java.lang.ClassNotFoundException: /port=8090

启动Sentinel并配置端口号报错。原因是不能通过右键通过powershell窗口来执行这个命令,而应该通过cmd窗口来执行这个命令。

2024-10-28 16:27:24 226

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除