- 博客(31)
- 收藏
- 关注
原创 springboot
创建数据源提供监控信息展示的html页面提供监控信息的JSON API<servlet></servlet>StatFilter用于统计监控信息;如SQL监控、URI监控需要给数据源中配置如下属性;可以允许多个filter,多个用,分割;如:别名Filter类名defaultstatmergeStatencodinglog4jlog4j2slf4j慢SQL记录配置</bean>使用 slowSqlMillis 定义慢SQL的时长。
2025-03-15 17:43:07
786
原创 SpringMvc
SpringMVC是Spring的一个后续产品,是Spring的一个子项目SpringMVC 是 Spring 为表述层开发提供的一整套完备的解决方案。在表述层框架历经 Strust、WebWork、Strust2 等诸多产品的历代更迭之后,目前业界普遍选择了 SpringMVC 作为 Java EE 项目表述层开发的首选方案。注:三层架构分为表述层(或表示层)、业务逻辑层、数据访问层,表述层表示前台页面和后台servlet。
2025-03-15 17:42:36
625
原创 Spring
(1)根据指定装配规则(属性名称或者属性类型),Spring 自动将匹配的属性值进行注入1、事务添加到 JavaEE 三层结构里面 Service 层(业务逻辑层)2、在 Spring 进行事务管理操作(1)有两种方式:编程式事务管理和声明式事务管理(使用)3、声明式事务管理(1)基于注解方式(使用)(2)基于 xml 配置文件方式4、在 Spring 进行声明式事务管理,底层使用 AOP 原理5、Spring 事务管理 API。
2025-03-15 17:41:38
604
原创 数据结构介绍
栈是限定仅在表尾进行插入或删除操作的线性表。表尾端称为栈顶;表头端称为栈底;不含元素的空表称为空栈。栈又称为后进先出的线性表。队列只允许在表 的一端进行插入,而在另一端删除元素。允许插入的一端称为队尾;允许 删除的一端则称为队头。头指针始终指向队列头元素,而尾指针始终指向队列尾元素的下一个位置队列是一种先进先出的线性表。串(string)(或字符串)是由零个或多个字符组成的有限序列串的顺序存储算法描述当中所用到的顺序存储的字符串都是从下标为1的数组分量开始存储的, 下标为0的分量闲置不用。
2025-03-15 17:40:47
839
原创 git技巧
commit:提交 本地文件和版本信息---------->本地仓库push:推送 本地仓库文件和版本信息---------->远程仓库pull:拉取 远程仓库文件和版本信息---------->本地仓库。
2025-03-15 17:39:35
249
原创 maven工程
如今我们构建一个项目需要用到很多第三方的类库,如写一个使用Spring的Web项目就需要引入大量的jar包。一个项目Jar包的数量之多往往让我们瞠目结舌,并且Jar包之间的关系错综复杂,一个Jar包往往又会引用其他Jar包,缺少任何一个Jar包都会导致项目编译失败。以往开发项目时,程序员往往需要花较多的精力在引用Jar包搭建项目环境上,而这一项工作尤为艰难,少一个Jar包、多一个Jar包往往会报一些让人摸不着头脑的异常。
2025-03-15 17:37:36
694
原创 Nginx
Nginx是-款轻量级的Web服务器/反向代理服务器及电子邮件(IMAP/POP3) 代理服务器。其特点是占有内存少,并发能力强,事实上nginx的并发能力在同类型的网页服务器中表现较好。能支持高达50000个并发连接数的响应。中国大陆使用nginx的网站有:百度、京东、新浪、网易、腾讯、淘宝等。
2025-03-15 17:37:11
799
原创 redis
keys是模糊查询,会给服务器带来负担,redis是单线程的,在搜索的这段时间内,会进行阻塞,在集群的时候,可以在从服务器使用,不能再主结点使用ttl的时候,返回的是-1,则表明永久有效缓存雪崩是指在同一时段大量的缓存key同时失效或者Redis服务宕机,导致大量请求到数据库,带来巨大压力。乐观锁也会访问数据库,会给数据库造成压力。
2025-03-13 13:35:03
939
原创 Docker
镜像是将应用程序及其需要的系统函数库、环境、配置、依赖打包而成。我们以MySQL为例,来看看镜像的组成结构:简单来说,镜像就是在系统函数库、运行环境基础上,添加应用程序文件、配置文件、依赖文件等组合,然后编写好启动脚本打包在一起形成的文件。我们要构建镜像,其实就是实现上述打包的过程。
2025-03-06 14:12:00
864
原创 elasticsearch
索引库操作有哪些?创建索引库:PUT /索引库名查询索引库:GET /索引库名删除索引库:DELETE /索引库名添加字段:PUT /索引库名/_mapping文档操作有哪些?创建文档:POST /{索引库名}/_doc/文档id { json文档 }查询文档:GET /{索引库名}/_doc/文档id删除文档:DELETE /{索引库名}/_doc/文档id修改文档:全量修改:PUT /{索引库名}/_doc/文档id { json文档 }
2025-03-06 14:10:31
1018
原创 Eureka注册中心
改order-service服务中的cn.itcast.order.service包下的OrderService类中的queryOrderById方法。修改访问的url路径,用服务名代替ip、端口spring会自动帮助我们从eureka-server端,根据userservice这个服务名称,获取实例列表,而后完成负载均衡。
2025-03-06 14:05:22
967
原创 Feign远程调用
使用Feign的步骤:① 引入依赖② 添加@EnableFeignClients注解③ 编写FeignClient接口④ 使用FeignClient中定义的方法代替RestTemplateFeign可以支持很多的自定义配置类型作用说明修改日志级别包含四种不同的级别:NONE、BASIC、HEADERS、FULL响应结果的解析器http远程调用的结果做解析,例如解析json字符串为java对象请求参数编码将请求参数编码,便于通过http请求发送支持的注解格式。
2025-03-06 14:04:18
770
原创 Gateway服务网关
过滤器的作用是什么?① 对路由的请求或响应做加工处理,比如添加请求头② 配置在路由下的过滤器只对当前路由的请求生效defaultFilters的作用是什么?① 对所有路由都生效的过滤器需求:定义全局过滤器,拦截请求,判断请求的参数是否满足下面条件:参数中是否有authorization,authorization参数值是否为admin如果同时满足则放行,否则拦截@Order(-1)@Component@Override// 1.获取请求参数。
2025-03-06 14:00:36
825
原创 RabbitMQ
消息可靠发送消息可靠投递死信队列来保障消息至少被消费一次以及未被正确处理的消息不会被丢弃。另外,通过 RabbitMQ 集群的特性,可以很好的解决单点故障问题,不会因为单个节点挂掉导致延时队列不可用或者消息丢失。当然,延时队列还有很多其它选择,比如利用 Java 的 DelayQueue,利用 Redis 的 zset,利用 Quartz 或者利用 kafka 的时间轮,这些方式各有特点,看需要适用的场景。
2025-03-02 21:12:59
530
原创 Ribbon负载均衡
LoadBalanced注解就是一个标记,表示我们RestTemplete发起的请求要被Ribbon拦截和处理了有人帮我们根据service名称,获取到了服务实例的ip和端口。它就是,这个类会在对RestTemplate的请求进行拦截,然后从Eureka根据服务id获取服务列表,随后利用负载均衡算法得到真实的服务地址信息,替换服务id。拦截我们的RestTemplate请求http://userservice/user/1。
2025-03-02 21:10:39
883
原创 Sentinel
默认情况下,发生限流、降级、授权拦截时,都会抛出异常到调用方。异常结果都是flow limmiting(限流)。这样不够友好,无法得知是限流还是降级还是授权拦截。异常类型/*** 处理请求被限流、降级、授权拦截时抛出的异常:BlockException*/HttpServletRequest request:request对象HttpServletResponse response:response对象BlockException e:被sentinel拦截时抛出的异常异常说明限流异常。
2025-03-02 21:09:36
619
原创 分布式事务
XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。分布式事务执行过程中,依次执行各参与者的正向操作,如果所有正向操作均执行成功,那么分布式事务提交。对于已经空回滚的业务,之前被阻塞的try操作恢复,继续执行try,就永远不可能confirm或cancel ,事务一直处于中间状态,这就是业务悬挂。
2025-03-02 21:08:34
1002
原创 微服务技术栈
单体架构:简单方便,高度耦合,扩展性差,适合小型项目。例如:学生管理系统分布式架构:松耦合,扩展性好,但架构复杂,难度大。适合大型互联网项目,例如:京东、淘宝微服务:一种良好的分布式架构方案①优点:拆分粒度更小、服务更独立、耦合度更低②缺点:架构非常复杂,运维、监控、部署难度提高SpringCloud是微服务架构的一站式解决方案,集成了各种优秀微服务功能组件。
2025-03-02 21:07:33
644
原创 RabbitMQ资源
最近这一段时间在学习RabbitMQ,在跟着尚硅谷学习的时候,他自动就下载了RabbitMQ,我愣住了。这个问题现在还是没找到,它的内容大概意思就是说我的镜像出毛病了,真是离谱了。很离谱的是,我按照尚硅谷的视频在Linux里面敲命令,运行。于是我就弃用了yum命令来安装socat,使用了rpm命令。最后成了,linux安装上了RabbitMQ。于是,我在网上找到了资源,里面是rpm包。它会给我报错,具体内容是。
2025-03-02 21:04:21
156
原创 Redis资源
前一段时间学习了Redis,看的是黑马的课,有一说一,讲得真的很棒,其实我的博客里面的Redis就是跟着他的笔记写的,也有我自己的理解。链接在这里,其实我是想全发下来,但是阿里云盘说太多了,不能一起发,于是我放在了百度网盘。但是我觉得吧,每个人的理解还是多多少少有点偏差,于是我就把他们提供的资料发上来了。注意:里面没有入门篇的。客户端连接工具真的好用。
2025-03-02 21:03:50
97
原创 记笔记利器
我之前把笔记记在印象笔记里面,后来好像看不了了,我也不知道为啥,就离谱。平时在写博客的时候其实我都是先把它写在typora上面的,自己方便看。不知道为啥我用不惯语雀啥的。
2025-03-02 21:03:18
81
原创 git push报Tmed out
把圈出来的地方随便在改成其他的,最后在选这个就可以了,我上面就把这个改成了ssh-git,选择ssh-git后,然后就成功了。我需要把一个项目推送到GitHub上面,也按照之前的做法做过了。使用git真的让人蒙圈,比如我一直不理解为什么总是会出现。一切都正常,但就是在最后的push总是说失败,提示超时。t,选择ssh-git后,然后就成功了。它这里的Name是随便定义都行的。
2025-03-02 20:57:11
148
原创 Postman 请求JSON格式,后台@RequestBody实体类接收不到数据
最近遇见了一个很小很小的细节问题,但是比较让人很容易忽略与破防。
2025-03-02 20:54:20
212
原创 RabbitMQ中的小细节
在看尚硅谷的课的时候,那个老师直接就把防火墙给关了,这个是极其不理智的行为,我们应该做的就是打开相对应的端口,而不是直接关防火墙。这个就是需要开放另外一个端口了,是开放5672端口,这是因为 Java 客户端需要连接的是 AMQP 协议的通信端口。但是这还不够,老师在进行java连接的时候他做测试就能成功,但是我们会报一个连接超时。报错TimeoutException。打开RabbitMQ的管理界面端口。这样就不会有异常了,直接就能运行了。
2025-03-02 20:53:43
153
原创 redis报错之Injection of resource dependencies failed
由于在使用Spring框架集成Redis时,Spring容器中存在多个类型为RedisTemplate的Bean,但是需要注入的Bean类型是StringRedisTemplate。显式地声明需要注入的Bean类型为StringRedisTemplate,或者删除其他类型为RedisTemplate的Bean,只保留StringRedisTemplate类型的Bean。在跟着黑马学redis,最初的时候,进行登录校验的功能需要用到拦截器。在拦截器配置类里面,因为这个类是Spring管理的,可以直接注入。
2025-03-02 20:53:13
303
原创 Windows添加路由
前一阵子去参加比赛,为了保障比赛的公平性与考验,比赛方使用的是局域网,之前从来都没有感觉到有啥不同,不就是网吗,好像我想太狭窄了。假设自己的网关是192.168.47.100,要访问的朋友的是192.168.47.111,ping不通,需要添加路由。也就是说我俩在局域网里面是互相访问不到对方的,ping不通,需要添加路由(我之前没有学过计算机网络,不太明白)在实验室我跟昊桑连的同一个WiFi,前后端对接没问题,但是在比赛的时候对接不上,最后得知是。加上-p就是永久的了,关机下次重启也没事。
2025-03-02 20:52:39
182
原创 前后端分离,SpringBoot拦截器中,获取的请求头token为NULL问题解决
当发生跨域请求时,浏览器会自动发起一个预检请求(OPTIONS请求),询问服务器是否允许实际请求(例如GET、POST)的发起。预检请求中携带了一些预检信息(Preflight Information),用于告知服务器实际请求的详细信息,例如请求的方法、请求头、请求体等等。在OPTIONS请求中,不会有请求头的参数,所以在拦截器上获取请求头为null,更别说request.getHeader(“Token”)了,我们的第一次请求不能通过,就不会获取第二次的请求GET/POSt…请求体:例如发送的数据内容。
2025-03-02 20:51:47
287
原创 finalshell提示java.net.ConnectException: Connection timed out: connect
java.net.ConnectException: Connection timed out: connect
2023-03-16 19:39:48
5022
4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人