自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 微服务入门学习笔记(黑马商城)

自定义过滤器有两种GatewayFilterFactory和GlobalFilter,前者可以设置单个服务过滤,也可以设置全局过滤,后者创建完后自动生效全局过滤实现更加简单。这样就实现了网关登录校验并且将用户信息传递给其他服务,但其他服务互相调用时还是不会传递用户信息。所以我们需要在服务之间发送http请求是带上用户信息的请求头。登录校验过滤器实现:将过滤校验所需的配置类和工具类转移到网关。创建网关模块,引入springcloud的网关依赖。配置网关转跳路由和过滤器,我的网关端口为8090。

2024-04-29 11:19:26 776

原创 Oracle安装(Windows19c)

官网点击后需要登录、注册后登录即可下载。

2024-04-16 10:00:00 359

原创 枚举、策略模式、工厂设计、模板设计使代码更加优雅

以上的业务逻辑outLetter是没有返回值的,现在我提升一下需求,tag为0,1,2时我需要输出对应字母,而tag为3,4时我要获取到对应字母。这样的需求根据现在的代码只能在总接口加一个返回值String类型的getLetter方法,但是这样所有的实现类都需要实现这个方法,那么每个实现类里都要有个空的方法,显然这么做是不合理的,这时候我们就需要使用。我们在调用时注入多个Service,通过filter找出需要的实现类,这样拓展时只需要新建一个实现类,继承策略方法总接口就可以了。

2024-04-15 09:00:00 563

原创 记录linux从0部署java项目(宝塔)

运行安装脚本安装完成后访问内网面板地址,填写用户名密码。在软件商店中安装nginx、mysql、redis开放3306和6379端口(为了本地测试连接)

2024-04-08 14:17:44 1153

原创 线程池的七个参数

如果任务数大于核心线程数和阻塞队列的容量,线程池会创建临时线程(临时线程数等于最大线程数-核心线程数数量)来处理多出来的任务。如果临时线程没有任务了则会进入空闲状态,等到空闲时间到则会销毁该临时线程。如果任务数大于最大线程数和阻塞队列容量则会触发拒绝策略,拒绝多余的任务。如果任务数大于核心线程数则会将任务存储放到阻塞队列中。线程池接收任务时,优先会使用核心线程来处理任务。

2024-04-02 13:07:29 273

原创 Java多线程三种实现方式

输出结果:线程1输出内容线程2输出内容线程1输出内容线程2输出内容线程2输出内容线程2输出内容线程2输出内容线程2输出内容线程2输出内容线程1输出内容线程2输出内容线程1输出内容线程1输出内容线程1输出内容线程1输出内容线程2输出内容线程2输出内容线程1输出内容线程1输出内容线程1输出内容最简单的实现多线程的方法,但拓展性差,Java中只能继承一个父类,也就意味着不能继承其他类了。

2024-03-30 20:07:34 382

原创 记录微信小程序云开发的增删改查

app.js云环境ID位于。

2024-03-26 14:41:51 302

原创 IO流详解

需要注意的时字符流读取数据会将读取到的二进制码转变成十进制,我们把(char)强转删除就能看到。输出结果: [97, -27, -107, -118, -24, -65, -103]在执行read方法时会从目标文件中试图获取8KB的数据,然后从缓冲区中读取数据。idea默认使用的时Unicode的utf-8编码格式,中文字符占3个字节。除了缓冲区写满,调用flush和close方法也会将缓冲区的数据写入目标文件。第二次读取三分之一的“啊”和三分之二的“这”第三次读取剩下的三分之一的“这”

2024-03-22 17:24:15 499

原创 利用File类实现文件和文件夹大小计算

返回值: 135126。

2024-03-21 16:58:42 340

原创 Stream流

结果:a b c d e f。

2024-03-18 09:00:00 535

原创 TreeMap底层原理

TreeMap特点:添加的键是可排序、不重复、无索引的TreeMap主要的数据结构实现。

2024-03-17 09:00:00 813

原创 Java的集合Collection和Map

java中的集合分为两大家族,单列集合和双列集合,分别是Collection和Map。LinkedHashSet:特点:有序、不重复、无索引(数组+双向链表+红黑树)HashSet特点:无序、不重复、无索引(数组+链表+红黑树)LinkedList特点:有序、可重复、有索引(双向链表)TreeMap特点:添加的键是可排序、不重复、无索引的。ArrayList特点:有序、可重复、有索引(数组)TreeSet特点:可排序、不重复、无索引(红黑树)HashMap特点:添加的键是无序、不重复、无索引的。

2024-03-16 13:24:57 418 1

原创 解决部署至服务器后获取时间不正确的问题

好好好date: cannot set date: Operation not permitted说我没有权限,我是root进入的linux但docker里的系统怎么拿权限啊?然后为了下次部署方便再dockerfile中加上ENV TZ=Asia/Shanghai,完美!我第一时间反应就是服务器的时间没设对,打开服务器date一下这里过了几分钟。哦哦哦哦哦哦哦我是docker部署的我得去docker容器里看。然后我改容器内时间总可以了吧。先解决眼前的问题我直接。这是我现在本地的时间。

2024-03-13 09:00:00 453

原创 HashMap底层原理

hashMap是一个无序,不重复,无索引的双列集合,通过hashCode方法和equals方法保证键唯一hashMap主要依靠数组、链表、红黑树的数据结构实现,当发生哈希 碰撞时新加的元素会接在原来数组的元素后面形成一个链表,当链表长度大于等于8数组长度大于等于64时会将链表转化成红黑树来增加查询效率。注:哈希碰撞即在不同对象不同属性的情况下计算出的哈希值相同(概率很小)

2024-03-12 13:48:58 1069 1

原创 Mysql中时间类型查询处理记录

格式:SELECT DATE_SUB(date,INTERVAL expr unit)需求说明:需要查询下次检查时间为今天或者明天的设备。

2024-03-11 15:30:19 378

原创 Mybatis在 mapper 中如何传递多个参数(三种方法)

mapper中的方法。

2024-03-06 22:20:03 545 1

原创 Map集合的遍历方法

用keySet()方法将双列集合的key变成一个单列集合遍历key集合获取value当然除了增强for还可以使用迭代器或者forEach。

2024-03-05 16:06:28 244

原创 LinkedList底层原理

LinkedList是一个双向列表实现的单列集合。有序,可重复、有索引。

2024-03-04 21:23:02 350 1

原创 ArrayList底层原理

当我们在new一个ArrayList如果是空参时底层会创建一个名字为elementData长度为0的数组。

2024-03-04 16:03:38 713 1

原创 数组和链表的区别

数组所记录的数据存在于一个内存中,当我们需要查询数组中的一个数据时,只需要拿到数组的地址值,再通过索引就可以找到对应数据,所以数组的查询效率高。但当我们要新增或者删除一个数组元素时,就需要改动被删或增元素后的所有元素的索引值,所以数组增删效率低。

2024-03-04 15:06:29 198 1

原创 Ruoyi-vue-plus5.0登录流程详解

这里我们可以看到对encrypt-key这个密匙是进行了两次加密,一次Base64一次RSA加密后续后端也会解密两次。我们看到这个类中有多个实现类对应着每个授权类型。根据传入的授权类型获取容器中对应的bean对象来区分调用哪一个实现类中的login方法。这个拦截器会拦截除登录相关接口的所以请求,处理检查是否有token外,还会校验请求。先获取header中的密匙解密两次后解密请求体中的参数。一个客户端可以有多种授权类型,只要满足其中一个即可。这里的配置对应拦截器中的参数。这里两个文件对应两种环境。

2024-03-02 15:55:13 928

原创 Java中的Switch

输出内容为“这是一”不写default程序不会报错当a!=1且a!=2时不做任何处理删除了case 1 的break如果a=1程序不会再case1 中跳出会继续执行所以输出内容是“这是一 这是二”

2024-03-01 10:02:44 172 1

原创 Java通过反射获取类的构造方法、属性、成员方法

【代码】Java通过反射获取类的构造方法。

2024-02-29 20:53:11 157

原创 Java手动实现代理Proxy

【代码】Java手动实现代理Proxy。

2024-02-29 19:32:13 116

原创 Mybatis通常一个 Xml 映射文件,都会写一个 Dao 接口与之对应,请问,这个 Dao 接口的工作原理是什么?Dao 接口里的方法,参数不同时,方法能重载吗?

接口的全限名,就是映射文件中的 namespace 的值;接口的方法名,就是映射文件中 Mapper 的 Statement 的 id 值;Mapper 接口的工作原理是 JDK 动态代理,Mybatis 运行时会使用 JDK。动态代理为 Mapper 接口生成代理对象 proxy,代理对象会拦截接口方法,转而。Mapper 接口里的方法,是不能重载的,因为是使用 全限名+方法名 的保存和寻。Mapper 接口是没有实现类的,当调用接口方法时,接口全限名+方法名拼接字符。参数,就是传递给 sql 的参数。

2024-02-29 16:20:03 208

原创 Mybatis模糊查询怎么写?

【代码】Mybatis模糊查询怎么写?

2024-02-29 15:54:07 72

原创 Mybatis中${}和#{}的区别

会将 sql 中的#{}替换为?号,调用 PreparedStatement 的 set 方法来赋值,可以有效的防止 SQL 注入,提高系统安全性。${}使用Statement对象,使用的字符串连接方式, 有sql注入的风险。

2024-02-29 15:30:23 135

原创 springboot出现org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)原因总结

新人在使用mybatis时一定总是出现:org.apache.ibatis.binding.BindingException: Invalid bound statement (not found)的错误吧。首先出现这条报错的原因是因为程序在运行中需要执行mapper中的方法但找不到对应的xml文件或者xml中没有此方法。解决方案:在application.yml文件中加入。以上两种问题只需要将文件名或者方法名对上即可。我们发现编译后target里压根没有xml。

2024-02-29 15:12:55 652

原创 Java中基础数据类型和引用数据类型的区别

1、基本数据类型:有且只有整数、浮点、布尔、字符类型在java中由int、double、boolean、char表示。2、引用数据类型:除了以上数据类型都是引用数据类型。

2024-02-28 21:33:13 180 1

原创 Java中int类型和Integer的区别

new Integer()出的对象其地址不同所以直接使用“==”返回一定时false,而直接赋值在-128到127之间时java通过缓存获取数据其地址相同所以“==”返回true,而越过-128到127这个范围赋值,其与直接new Integer()无异,地址终究不相同所以时false。

2024-02-28 17:46:49 320

原创 面向对象和面向过程的区别

面向过程:是分析解决问题的步骤,然后用函数把这些步骤一步一步地实现,然后在使用的时候一一调用则可。性能较高,所以单片机、嵌入式开发等一般采用面向过程开发面向对象:是把构成问题的事务分解成各个对象,而建立对象的目的也不是为了完成一个个步骤,而是为了描述某个事物在解决整个问题的过程中所发生的行为。面向对象有封装、继承、多态的特性,所以易维护、易复用、易扩展。可以设计出低耦合的系统。 但是性能上来说,比面向过程要低。

2024-02-28 15:54:34 321

空空如也

空空如也

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

TA关注的人

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