- 博客(109)
- 收藏
- 关注
原创 JVM虚拟机入门到实战(10月25更新)
JVMjava字节码文件写好的java文件先由javac编译为class文件,但class文件上的指令是无法直接在计算机中运行的,这是就要把class文件交由java虚拟机(JVM)解释,即转换为机器码,最后在计算机中运行文件。
2025-10-21 21:25:21
746
原创 Linux第二弹
无论是Windows、MacOs、Linux均采用多用户的管理模式进行权限管理。root用户拥有最大的系统操作权限,而普通用户在许多地方的权限是受限的。在前面,我们接触过su命令切换到root账户,su命令就是用于账户切换的系统命令,其来源英文单词:SwitchUser。语法: su [-] [用户名]在我们得知root密码的时候,可以通过su命令切换到root得到最大权限但是我们不建议长期使用root用户,避免带来系统损坏。我们可以使用sudo命令,为普通的命令授权,临时以root身份执行。
2025-10-21 21:24:20
893
原创 SpringAI+DeepSeek大模型应用开发
要定义会话存储方式,可以去实现ChatMemory接口,然后重写对应方法去实现。SpringAI也提供了一个默认的实现InMemoryChatMemory(最新1.0.3版本已经换成MessageWindowChatMemory了),但这个是存储在内存中的,服务器重启记忆就没了。
2025-10-18 16:33:08
890
原创 Redis从入门到实战
Redis是一个key-value的数据库,key一般是String类型,不过value的类型多种多样:Redis为了方便我们学习,将操作不同数据类型的命令也做了分组,在官网RedisTemplate可以接收任意0bject作为值写入Redis,只不过写入前会把0bject序列化为字节形式,默认是采用JDK序列化,得到的结果是这样的:可读性差内存占用较大我们可以自定义RedisTemplate的序列化方式,代码如下:@Bean//创建RedisTemplate对象//设置连接工厂。
2025-08-02 14:39:18
1021
原创 微服务快速入门
Component@Override// 1.获取Request// 2.判断是否不需要拦截// 无需拦截,直接放行// 3.获取请求头中的tokenif (!// 4.校验并解析tokentry {// 如果无效,拦截// TODO 5.如果有效,传递用户信息// 6.放行@Overridereturn 0;
2025-07-29 19:31:18
850
原创 Docker
当我们利用Docker安装应用时,Docker会自动搜索并下载应用。镜像不仅包含应用本身,还包含应用运行所需要的环境、配置、系统函数库。Docker会在运行镜像时创建一个隔离环境,称为。: 存储和管理镜像的平台,Docker官方维护了一个公共仓库:Docker Hub。这是用docker安装MySQL的命令镜像命名规范。
2025-07-28 09:12:57
1003
原创 Linux
vi\vim是visualinterface的简称,是Linux中最经典的文本编辑器同图形化界面中的 文本编辑器一样,vi是命令行下对文本文件进行编辑的绝佳选择。vim 是 vi 的加强版本,兼容 vi 的所有指令,不仅能编辑文本,而且还具有 shell 程序编辑的功能,可以不同颜色的字体来辨别语法的正确性,极大方便了程序的设计和编辑性。三种工作模式命令模式(Command mode):命令模式下,所敲的按键编辑器都理解为命令,以命令驱动执行不同的功能。此模型下,不能自由进行文本编辑。
2025-07-23 20:29:14
880
原创 MyBatisPlus
更新id为1、2、4的三条数据的balance减少200,之前写的这种方式把sql语句中的其中一部分写在了业务层。@Test可以改用利用MyBatisBlus的Wrapper来构建复杂的Where条件,然后自己定义SQL语句中剩下的部分。基于Wrapper构建where条件@Test在mapper方法参数中用Param注解声明wrapper变量名称,必须是ew自定义SQL,并使用wrapper条件。
2025-07-22 20:58:47
939
原创 Git
Git 是一个分布式版本控制工具,通常用来对软件开发过程中的源代码文件进行管理。commit: 提交, 将本地文件和版本信息保存到本地仓库。push: 推送, 将本地仓库文件和版本信息上传到远程仓库。pull: 拉取, 将远程仓库文件和版本信息下载到本地仓库。当安装Git后首先要做到事情是设置用户名称和email地址, 这是非常重要的, 因为每次Git提交都会使用该用户的信息。
2025-07-18 15:38:28
947
原创 MYSQL-进阶-锁
在数据库中,除传统的计算资源(CPU、RAM、I/0)的争用以外,数据也是一种供许多用户共享的资源。如何保证数据并发访问的一致性、有效性是所有数据库必须解决的一个问题,锁冲突也是影响数据库并发访问性能的一个重要因素。从这个角度来说,锁对数据库而言显得尤其重要,也更加复杂。
2025-07-17 20:24:07
969
原创 进阶-索引
索引(index)是帮助MySQL高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据, 这样就可以在这些数据结构上实现高级查找算法,这种数据结构就是索引。
2025-07-17 11:27:17
886
原创 SQL性能分析
表示SELECT的类型, 常见的取值有SIMPLE(简单表, 即不适用表连接或者子连接), PRIMARY(著查询, 即外层的查询), UNION(UNION中的第二个或者后面的查询语句), SUBQUERY(SELECT/WHERE之后包含了子查询)等。表示连接类型, 性能由好到差的连接类型为NULL, system, const, eq_ref, ref, range, index, all.MYSQL认为必须要执行查询的行数, 在innodb引擎的表中, 是一个估计值, 可能并不总是准确的。
2025-07-16 16:15:08
430
原创 注解和反射
自定义注解: 自己定义的注解.public @interface 注解名称 {public 属性类型 属性名() default 默认值;特殊属性名: value如果注解中只有一个value属性, 使用注解时, value名称可以不写!!注解的原理注解本质是一个接口, java中所有注解都是继承了Annotation接口的.@注解(...): 其实就是一个实现类对象, 实现了该注解以及Annotation接口.元注解指的是: 修饰注解的注解常用的两个注解@Target和@Retention。
2025-07-15 20:55:36
983
原创 多线程&JUC
核心线程不会被销毁,创建后会一直存在。如果核心线程被全部占用,新任务就在阻塞队列里等待,当阻塞队列也被占满,并且此时又来了新任务,这是就会创建临时线程去执行新来的任务(这里临时线程执行的任务不是阻塞队列里面的任务,阻塞队列里的任务最后执行),临时线程空闲一定时间(空闲时间自己设置)就会被销毁。如果来的任务数大于正式线程数+临时线程数+排队数,多余的任务就会被拒绝。/** (核心线程数量,最大线程数量,空闲线程最大存活时间,任务队列,创建线程工程,任务的拒绝策略)* 参数一:核心线程数量 不能小于0。
2025-07-15 10:01:40
918
原创 集合类
CopyOnWrite一般就是写时复制:当要对某个对象进行修改时,先对该对象进行复制一份,在副本上进行修改,修改完毕后再将原来的对象指向副本完成更新,因此要注意当对象较大时会耗费较大的空间。栈(stack)又名堆栈,它是一种运算受限的线性表,限定仅在表尾进行插入和删除操作的线性表其是先进后出栈的尾部(即最后进入栈的那一段)被叫做。在程序运行时,每进行一个函数运算就把数据入栈,在下一个函数需要这个数据时出栈,这时获取的数据就是最新的。)的嵌套有效性,左括号入栈,右括号与栈顶匹配,最终栈空则有效。
2025-07-12 14:18:14
686
原创 泛型的使用
泛型:是一种把明确类型的工作推迟到创建对象或者调用方法的时候才去明确的特殊的类型。也就是说在泛型使用过程中,操作的数据类型被指定为一个参数,而这种参数类型可以用在类、方法和接口中,分别被称为 泛型类泛型方法泛型接口。泛型的作用是指定所操作数据为某一特定类型的参数为什么要有泛型:如在ArraryList中可以存放任意类型的数据,但如果我同时在其中添加String类型和int类型起就会报错,这时候就要用泛型在创建ArraryList时指定存放数据的类型,从而防止上述情况的发生。
2025-07-12 14:17:56
336
原创 Java异常
在Java中,将程序执行过程中发生的不正常的行为称为。最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。例如要打开一个不存在文件时,一个异常就发生了,这些异常在编译时不能被简单地忽略。运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。常见的异常有:算数异常。
2025-07-12 14:17:37
1120
原创 自定义认证
可以在配置类里面对默认登陆界面需要的用户名和密码进行修改自定义登陆界面上面最后写的认证成功后的页面跳转不适用于前后端分离的风格, 要适用于前后端分离, 需要给前端返回一个 JSON 通知登录成功还是失败与否。这个时候可以通过自定义AuthenticationSucccessHandler 实现。
2025-05-27 16:22:32
348
原创 默认登陆界面的生成
3. 抛出 AccessDeniedException 的异常会被 ExceptionTranslationFilter 捕获,这个 Filter 中会调用 LoginUrlAuthenticationEntryPoint#commence 方法给客户端返回 302,要求客户端进行重定向到 /ogin 页面。5. /login 请求会再次被拦截器中 DefaultLoginPageGeneratingFilter 拦截到,并在拦截器中返回生成登录页面。4. 客户端发送 /login 请求。
2025-05-24 09:02:32
233
原创 环境搭建
运行时会给你跳转到一个登录界面使用用户名user 密码为控制台上输出的password就可以登陆并跳转到hello界面。一个简单的请求在加入spring security之前的样子, 在浏览器中输入地址就可以直接访问。导入spring security依赖之后所有的接口都会受到保护, 需要你进行登录才能正常访问。
2025-05-21 21:44:32
197
原创 spring security整体架构
在<spring security>的架构设计中,认证<Authentucation>和授权<Authorization>是分开的, 无论使用什么样的认证方式. 都不会影响授权, 这两个是独立的存在, 这种独立带来的好处之一, 就是可以非常方便的整合一些外部的解决方案.
2025-05-21 21:14:53
804
原创 SpringBootAdmin:全方位监控与管理SpringBoot应用
要把服务端和客户端都定义成web程序并且端口不能冲突。客户端要向服务端开放想要被监控的属性。
2025-05-17 20:10:36
449
原创 消息的简介
同步消息 :发送消息后必须得到对方回复才能进行接下来的操作的消息异步消息(用的较多) :发送后不用收到回复,可以直接向后进行的消息企业中广泛运用的三种异步消息传递技术
2025-05-17 10:50:28
169
原创 定时任务技术
定时任务用spring boot内部的功能完成。再进行配置(单独用config进行配置)然后创建定时任务内容。最后在启动类启动就行。
2025-05-17 09:23:50
305
原创 缓存的相关内容
这个在配置文件中写单位默认是分钟,如图是每一分钟对你进行的操作进行数据统计。在Java里我们用对象传递数据但redis不能接受对象所以要进行序列化。
2025-05-15 17:56:16
719
原创 redis
在idea中对redis添加的字段会经过序列化导致idea无法查询redis中添加的字段,redis中无法查询idea中添加的字段。redis使用前要先声明一下要操作哪种数据存储类型。
2025-05-12 08:58:04
701
原创 热部署相关
ture为开启热部署false为关闭如果直接在application.yml里写可能会被其他优先级更高的配置文件给顶掉可以在启动类里设置优先级最高不会被顶掉。
2025-05-07 21:00:09
219
原创 配置文件的四级分类
config目录下的application.yml配置文件优先级高于外面的,并且config目录下的application.yml配置文件会对外面的配置文件进行覆盖并合并. 这两个配置文件同时存在,最后配置文件的内容是
2025-04-26 15:26:19
168
原创 JdbcTemplate基本使用
它是spring框架中提供的一个对象,是对原始繁琐的JdbcAPI对象的简单封装。spring框架为我们提供了很多的操作模板类。例如:操作关系型数据的JdbcTemplate和MbernateTemplate,操作nosql数据库的RedisTemplate,操作消息队列的JmsTemplate等等。
2025-04-09 23:30:15
375
1
原创 SpringMVC的请求-文件上传
3. 表单的enctype属性是多部分表单形式,及enctype=“multipart/form-data”用数组装多个文件, 用for循环获取文件名并保存。1. 表单项type=“file”2. 表单的提交方式是post。
2025-04-09 21:07:37
506
原创 SpringMvc的请求-获得请求参数
/①@Override//将日期字符串转换为日期对象 然后返回try {//②-- 声明转换器--><list></list></bean></beans>//③-- mvc的注解驱动-->
2025-04-09 20:21:34
464
原创 SpringMVC的数据响应
Web基础阶段,客户端访问服务器端,如果想直接回写字符串作为响应体返回的话,只需要使用response.getWriter0).print(“hello world”)即可,那么在Controller中想直接回写字符串该怎样呢?在方法上添加@ResponseBody就可以返回json格式的字符串,但是这样配置比较麻烦,配置的代码比较多因此,我们可以使用mvc的注解驱动代替上述配置,据,此时不需要视图跳转,业务方法返回值为void。回写json格式字符串。
2025-04-07 22:01:05
278
原创 Spring MVC
SpringMVC已经成为目前最主流的MVC框架之一,并且随着Spring3.0的发布,全面超越Struts2,成为最优秀的 MVC框架。它通过一套注解,让一个简单的Java 类成为处理请求的控制器,而无须实现任何接口。②配置SpringMVC核心控制器DispathcerServlet。⑤配置SpringMVC核心文件spring-mvc.xml。④使用注解配置Controller类中业务方法的映射地址。的后续产品,已经融合在SpringWeb Flow中。的请求驱动类型的轻量级。⑥客户端发起请求测试。
2025-04-01 20:18:58
291
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅