自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Centos 执行ip addr 时ens33显示ens33: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN group default q

解决完成之后,我们执行 systemctl restart network 可以正常重启,但是我们执行ip addr发现我们的ip地址更改了,之前是192.168.22.100 现在是192.168.218.110。GATEWAY=192.168.22.2" # 网关 需要和章节一中的第3小节中设置的网关ip一致。DNS1=192.168.22.2 # 这个必须设置 否则会导致能ping通外部IP,ping不通域名。(4) ip addr 发现变成我们想要的ip地址了。

2024-03-24 16:21:57 256

原创 关于对Oj系统的爬虫项目

有可视化界面功能系统。

2024-03-24 12:06:18 80

原创 关于序列化和反序列化

序列化:将数据结构或对象转换成二进制字节流的过程反序列化:将在序列化过程中所生成的二进制字节流转换成数据结构或者对象的过程1)transient修饰的变量不能被序列化;2)transient只作用于实现 Serializable 接口;3)transient只能用来修饰普通成员变量字段;

2024-03-23 15:12:42 935

原创 java中异常类

类继承。

2024-03-22 21:05:04 760

原创 关于hashcode和equals的几点说明

hashcode可以缩小使用equals的频率,对于去重功能的数据结构来说(hashset)。只有当hashcode相同,才进行equals比较。两个对象的hashcode相同,这两个对象可能不相等,出现hash碰撞的情景。值也要相等,因为equals可能你进行了重写,比较的是对象的值。方法判断两个对象是相等的,那这两个对象的。hashcode不相同肯定不是一个对象。值却不相等,所以要同时进行重写。方法判断是相等的两个对象,方法的话就可能会导致。

2024-03-22 14:22:19 158

原创 java中的字符串常量池(创建字符串时的执行流程)

(1)String声明为final,表示不能被继承。(2)String实现了serializable接口,表示支持序列化;实现了Comparable接口,表示可以做比较。(3)在JDK8及以前String内部定义了final char[] value用于存储数据,在JDK9改为byte[],节约了空间。(4)在JDK8中,字符串常量池属于方法区但存放在堆区,字符串常量池是不会存储相同内容的字符串的。

2024-03-22 12:47:14 881

原创 静态和非静态成员,以及静态和非静态方法

①。

2024-03-21 20:49:17 631

原创 关于java字节码文件加载过程中,各种变量和常量的存储位置

1、全局字符串常量池在每个 VM 中只有一份,存放的是字符串常量的引用值。2、class 常量池是在编译的时候每个 class 都有的,在编译阶段,存放各种字面量和符号引用。3、运行时常量池是在类加载完成之后,将每个class常量池中的符号引用值转存到运行时常量池中,也就是说,每个 class 都有一个运行时常量池,类在解析之后,将符号引用替换成直接引用,与全局常量池中的引用值保持一致。

2024-03-21 18:33:56 971

原创 vscode 引入外部依赖包

我要在vscode中写一些antlr代码生成的cpp代码,但是在引入头文件#include "antlr4-runtime.h"的时候,出现报错,显示没有这个头文件,显然这是我们没有导入相关的包,因此我首先尝试了将antlr4的依赖源码在visusal studio进行生成,然后产生了一个.lib文件,但是我在vs code中并没有找到可以将lib添加到环境中的设置,而在visual studio是可以这样做的。在命令面板中搜索 c/c++ :编辑配置(json)之后我们的头文件就不会报错了。

2024-03-01 14:21:57 965

原创 java注解

什么是注解(Annotation)?注解是放在Java源码的类、方法、字段、参数前的一种特殊“注释”。注释会被编译器直接忽略,注解则可以被编译器打包进入class文件,因此,注解是一种用作标注的“元数据”。从JVM的角度看,注解本身对代码逻辑没有任何影响,如何使用注解完全由工具决定。Java的注解可以分为三类:第一类是由编译器使用的注解,例如::让编译器检查该方法是否正确地实现了覆写;:告诉编译器忽略此处代码产生的警告。这类注解不会被编译进入文件,它们在编译后就被编译器扔掉了。第二类是由工具处理文件使用的注

2024-02-29 14:17:21 655

原创 Java反射机制底层原理

这篇文章我是参考了然后我在这里做一下总结,因为原文章真的很好,我才疏学浅没什么进行补充,只能做出自己的总结并且写一下自己对这个的理解。

2024-02-28 23:59:16 808

原创 java中链式队列和顺序队列

Queue接口继承自Collection接口,提供了一组用于操作队列的方法,而Deque接口则继承自Queue接口,提供了额外的双端队列操作方法。总结: 无论是链式队列还是顺序队列,它们都实现了Queue接口,因此可以使用相同的方法来进行入队和出队操作。而当我们需要在队列两端进行操作(既能在队列头部添加和移除元素,又能在队列尾部添加和移除元素)时,可以选择使用Deque接口。因此,可以使用LinkedList实现链式队列(Queue)和双端队列(Deque),根据需要选择适当的方法来操作队列中的元素。

2024-02-27 10:48:45 729

原创 java中容器继承体系

打开接口源码,能够看到接口是继承了接口。 以下是接口源码及注释Iterable接口定义了三个方法,其中两个提供了默认实现,只有iterator()是要求实现类必须实现的方法。那么当某个类实现了Iterable接口就可以使用foreach进行迭代。同时Iterable中又封装了Iterator接口,那么这个类也可以使用Iterator迭代器。因而有三种方式可以迭代Iterable实现类的对象:1、for-each循环2、获取实现类对象的迭代器(Iterator)3、调用的方法通过上面我们可以看到,在it

2024-02-27 10:21:58 823

原创 关于Arrays类中asList(T... a)泛型参数辨析

T>类型,也就是说我们传递什么T最后返回的List中元素类型就是什么T类型,比如我们传递一个Integer 那么List中元素就是Integer,我们传递一个int [] 那么我们list中元素就是int[],有的同志就要问了,为什么传递过去的事int [] 泛型T不会识别为int ,刚才我们说了泛型只能是引用类型,但是我们int是基本类型,不会识别为引用类型,所以我们参数接收的时候直接就将int [] 识别成了引用类型,所以我们返回的结果List<int[]>就是这种类型的。我们继续扒一下源码。

2024-02-24 13:27:31 1259

原创 Java中继承静态属性,方法,和非静态属性和方法的继承区别

/结果同上,输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以被继承。//输出的结果都是父类中的非静态属性、静态属性和静态方法,推出静态属性和静态方法可以被继承。如果B中有这个方法,那么访问的是B中的方法,如果B中没有这个方法,访问的是从A中继承的这个方法。如果B中有这个方法,那么访问的是B中的方法,如果B中没有这个方法,访问的是从A中继承的这个方法。(1)当我们父类A中和子类B中有相同的静态属性,或者非静态属性名称的的时候,如果我们这样调用。

2024-02-23 22:47:52 958

原创 电脑连接网络正常,但是浏览器部分页面加载缓慢

2: 代开设置,进入网络和Internet,进入网络共享中心,进入更改适配器设置,选择本地网络,右键属性,勾选internet协议版本4 点击属性,然后勾选使用下面的DNS服务地址,地址我们可以填写114.114.114.114 或者223.5.5.5 或者223.6.6.6。网络连接正常,可以观看视频,但是浏览器访问网址有时候能够加载出来,有时候就加载不出来,出现拒绝访问。1: 打开命令行窗口,输入命令 ipconfig/flushdns 如果不好使使用方案2。

2024-02-19 23:49:27 145

原创 双亲委派模式

一个类加载器收到类加载的请求时,它不会马上加载该类,而是把这个请求委托给父加载器去完成,每一个层次的类加载器都是如此,因此所有的类加载请求都必须。使用双亲委派模型来组织类加载器之间的关系,一个显而易见的好处就是Java中的类随着它的加载器一起具备了一种带有优先级的层次关系。类,最终都是委派到启动类加载器进行加载,所以可以保证。当中,无论哪一层的类加载器需要加载。类在程序的各种类加载器环境中是。

2023-10-31 16:42:16 148

原创 关于Spring和SpringBoot中对配置文件的读取

具体流程见网址我这里只做一下总结和自己的理解:(1)通过getConfigLocations方法, 从web.xml文件中读取配置文件地址,如果web.xml中读取不到,则使用默认地址,默认地址为 /WEB-INF/applicationContext.xml(2) 读取我们刚才找到的xml文件,并通过函数doLoadBeanDefinitions()对配置文件进行解析,主要工作就是将读取的配置文件转化成Beans即BeanDefinition对象。

2023-10-30 20:07:00 379

原创 SpringBoot相比于Spring的优点(自动配置和依赖管理)

如果我们使用SpringBoot导入的依赖不是起步依赖,那么我们就退化成Spring使用注解方式整合Druid了如下(1)导入坐标(2)注册bean到ioc容器/*** 配置 Druid 数据源。(Spring Boot 会在 IoC 容器自动读取类型为 DataSource 的对象。故这个 bean 注入后,即与Spring Boot整合好了)* @return DruidDataSource 数据源*/@Bean。

2023-10-30 18:01:00 364 2

原创 关于c++中和java中 集合添加元素的区别

注意看这两个一个是c++实现,我们发现c++中向result中添加vector对象之后,即使改变vector也不会对result中元素产生影响。对象的副本添加进去。对象的引用添加进去。在C++中,当你将一个。中时,实际上是将对该。

2023-10-27 17:28:05 165

原创 String 地址引用问题

记住一点:栈区存引用和基本类型,不能存对象,而堆区存对象。==是比较地址,equals()比较对象内容。

2023-10-27 17:09:27 193

原创 java中的数据源

Java中的数据源就是连接到数据库的一条路径,数据源中并无真正的数据,它仅仅记录的是你连接到哪个数据库,以及如何连接。DataSource的创建可以有不同的实现。在系统初始化的时候,将数据库连接对象(Connection) 存储在内存中,当用户需要访问数据库时候,并不是建立一个新的连接,而是从连接池中取出一个已经建立好的空闲连接对象。以后编写操作数据库的代码只需要面向JDBC(接口),操作哪儿个关系型数据库就需要导入该数据库的驱动包,如需要操作MySQL数据库,就需要再项目中导入MySQL数据库的驱动包。

2023-10-25 19:54:04 210

原创 关于多态问题,中编译看左边运行看右边

/运行看右边:最终执行结果以子类的实现为准,此处输出 only eat meat。//父类引用(Animal) 指向 子类对象(Dog)//创建父亲类的对象进行测试 这并不是多态,多态原则是编译看左边运行看右边。public void eat() //多态前提二:必须包括方法重写。//编译看左边:想要保存成功,必须 使用 左边 也就是父类提供的功能!System.out.println("子类中的静态方法");编译看左,运行看右的理解_编译看左边运行看右边的原理-CSDN博客。

2023-09-20 16:33:39 209

原创 为什么父工程中不能指定spring-boot-starter-parent

parent>

2023-09-05 16:00:41 97

原创 maven项目继承依赖中包版本的说明

需要注意的是,Spring Boot默认情况下,会扫描启动类所在包及其子包中的组件。SpringBoot应用启动时,默认会自动扫描与启动类在同个包以及子包下的Bean,那么我们依赖的service工程只要我们的文件所在包的位置正确,并且使用了@Srvice类似的注解,那么就会被我们的spring扫描到。从图中可以看出来我们的api项目依赖了service项目,但是对于service中依赖的包我们没有的当然就是依赖这个项目中的包了,但是有的根据就近原则直接依赖我们api中的jar包。

2023-09-05 14:14:54 230

原创 dependencies与dependencyManagement的区别

参考连接。

2023-09-04 16:21:00 54

原创 Java项目中jar war pom包的区别

war包是我们在java web阶段使用的,这时候我们可以使用tomcat插件就能够运行我们的javaweb项目,或者我们可以将war包放在我们的tomcat的webapp目录下,启动 tomcat就会自动将war包进行解压,然后运行。我们的springboot项目一般都是用的jar包,这也是默认的方式,我们使用jar包之后我们就能够在到dependency中进行依赖,因为只有jar包才可以进行依赖。1、pom:用在父级工程或聚合工程中,用来做jar包的版本控制,必须指明这个聚合工程的打包方式为pom。

2023-09-04 15:35:28 1468

原创 使用rabbitmq进行支付之后的消息通知

订单服务完成支付后将支付结果发给每一个与订单服务对接的微服务,订单服务将消息发给交换机,由交换机广播消息,每个订阅消息的微服务都可以接收到支付结果.微服务收到支付结果根据订单的类型去更新自己的业务数据。

2023-09-02 16:05:14 1337

原创 spring中LocalDateTime 转成字符串的时候注意事项

这是我们controller中的方法,是基于restfu风格的接口,是基于http请求,当mapper层调用方法相应结果其实是一个json字符串 但是我们spring可以自动为我们进行封装成对象,这时候我们的localdatetime这个字段封装的时候要指定格式要不然会出错误,对于我们的http请求我们在base工程中进行配置日期格式,这样其他工程也会进行依赖。@ApiOperation("查询课程发布信息")* 服务端返回给客户端内容。* 客户端传入服务端数据。

2023-08-29 11:13:18 406

原创 RBAC实现授权

使用这个注解的原理是什么呢,当我们携带令牌访问微服务的上面资源的时候,我们springscruty就会比较我们令牌中的授权信息和我们注解中的授权信息是否一样,如果不一样那么就会报错。优点:系统设计时定义好查询工资的权限标识,即使查询工资所需要的角色变化为总经理和部门经理也不需要修改授权代码,系统可扩展性强。这个注解使用条件就是我们的微服务·必须使用springscruty 也就是要引入相关的坐标。当需要修改角色的权限时就需要修改授权的相关代码,系统可扩展性差。这个主要就是通过下面注解来实现的。

2023-08-28 16:21:13 102

原创 微信登录的流程

log.debug("微信扫码回调,code:{},state:{}",code,state);当然是微信的impl。log.info("调用微信接口申请access_token: 返回值:{}", result);log.info("调用微信接口申请access_token: 返回值:{}", result);log.info("调用微信接口申请access_token, url:{}", wxUrl);log.info("调用微信接口申请access_token, url:{}", wxUrl);

2023-08-28 12:24:04 165

原创 关于feign传参以及方法名称的理解

还有一件事就是我们方法名称是可以自己定义的,不用非得和我们微服务调用端一样。

2023-08-26 17:07:45 225

原创 验证码服务(使用提供好的项目)

6、验证码服务根据key从缓存取出正确的验证码和用户输入的验证码进行比对,如果相同则校验通过,否则不通过。3、给生成的验证码分配一个key,将key和验证码一同存入缓存。这个key和图片一同返回给页面。1、先生成一个指定位数的验证码,根据需要可能是数字、数字字母组合或文字。5、认证服务拿key和输入的验证码请求验证码服务去校验。4、用户输入验证码,连同key一同提交至认证服务。2、根据生成的验证码生成一个图片并返回给页面。具体项目在我的资料当中。

2023-08-26 15:49:14 101

原创 网关认证的技术方案

这是最开始的技术方案,我们通过认证为服务获取令牌然后使用令牌访问微服务,微服务解析令牌即可。但是缺点就是每个微服务都要做同样的操作就要配置同样的东西,因此需要改进。这就是改进的方案,就是使用gateway网关进行认证,微服务校验权限合法性。这样总结下来,网关的作用就是:认证,校验jwt令牌合法性;维护一份白名单用户。我们认证授权使用springsecurity 和oauth2技术尽心实现具体实现流程见第五章文档,这里就是记录一下我们的技术方案。具体实现流程见第五章文档。

2023-08-25 11:32:35 1040

原创 es和数据库同步方案

Canal基于mysql的binlog技术实现数据同步,什么是binlog,它是一个文件,二进制格式,记录了对数据库更新的SQL语句,向数据库写数据的同时向binlog文件里记录对应的sql语句。通过向索引中添加课程信息最终实现了课程的搜索,我们发现课程信息是先保存在关系数据库中,而后再写入索引,这个过程是将关系数据中的数据同步到elasticsearch索引中的过程,可以简单成为索引同步。1、针对实时性非常高的场景需要满足数据的及时同步,可以同步调用,或使用Canal去实现。

2023-08-23 19:50:23 1007

原创 关于springboot项目测试文件的目录结构 启动类要不要有

我在开发微服务项目的时候,有时候有些微服务是不需要启动类和配置文件的(如xuechengService),这时候我们还需要在测试方法中进行测试,这时候我们可以将启动类放在测试类中,注意放在测试类中包的位置,一定要使其能够扫描到我们上面的各种注解,这样我们才能够在测试方法中·注入相关的bean。注意最终执行时候我们测试中的文件目录和上面的文件目录是一体的。才能找到service中的feignclient包中的类注册成bean·这样feign才能正常使用。

2023-08-19 22:29:22 277

原创 关于service实现中方法是抛出异常还是进行处理

但是这个try cache也是有说头的,如果我们方法的返回值是void 那么我们出错了我们的调用方是不知道的,我们需要使用异常告诉调用方到底是什么问题,因此需要抛,但是如果我们有返回值,我们不需要抛出异常,我们调用法拿到方法的返回值之后,验证这个值,如果有问题就解决或者抛出异常。下面是我通过视频了解到的浅显的东西,不一定正确的,我没有经过严格的查询,纯属记录,但是应该是有一定道理的。//参数1:模板,参数2:数据模型。//将静态化内容输出到文件中。//指定模板文件名称。//上传静态文件到minio。

2023-08-19 15:59:52 328

原创 熔断降级的理解和基于feign的熔断降级

在微服务保护中我们使用sentinel进行了熔断降级,熔断降级时为了防止雪崩效应,什么是雪崩效应,因为微服务是一层调用一层的,如果下面某一个微服务宕机了,就会导致全部的微服务宕机,这就是雪崩效应。我们这里使用的是feign的熔断降级,但是据说现在已经很少人用了,用sentinel的比较多如何解决由于微服务异常引起的雪崩效应呢?可以采用熔断、降级的方法去解决。熔断降级的相同点都是为了解决微服务系统崩溃的问题,但它们是两个不同的技术手段,两者又存在联系。

2023-08-19 15:46:34 154

原创 页面静态化的应用

课程预览功能通过模板引擎技术在页面模板中填充数据,生成html页面,这个过程是当客户端请求服务器时服务器才开始渲染生成html页面,最后响应给浏览器,服务端渲染的并发能力是有限的。页面静态化则强调将生成html页面的过程提前,提前使用模板引擎技术生成html页面,当客户端请求时直接请求html页面,由于是静态页面可以使用nginx、apache等高性能的web服务器,并发性能高。

2023-08-19 10:53:01 83

原创 任务执行要考虑的约束和细节

基于以上分析,在执行器接收调度请求去执行视频处理任务时要实现视频处理的幂等性,要有办法去判断该视频是否处理完成,如果正在处理中或处理完则不再处理。做不到,因为可能我们的某一个或者几个执行器宕机了,然后其他执行器进行重新编号拿取任务可能就变化了,拿到了之前处理过的任务(具体实现见·我们的视频处理博客),这时候我们需要保证任务处理的幂等性才能真正意义上实现不重复执行任务。覆盖之前调度:调度请求进入单机执行器后,发现执行器存在运行的调度任务,将会终止运行中的调度任务并清空队列,然后运行本地调度任务;

2023-08-18 11:22:41 224

关于对Oj系统的爬虫项目,毕业设计

关于对Oj系统的爬虫项目,毕业设计

2024-03-24

任务调度中消息处理的解决办法

消息处理sdk

2023-08-18

空空如也

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

TA关注的人

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