- 博客(29)
- 收藏
- 关注
原创 IDEA的Debug技巧
(Shift + F8) :步出(Step out),退出方法,跟(force) step into 配合使用 , 从步入的方法内退出到方法调用处,此时方法已经执行完毕,只是还没有完成赋值。Debug计算器,这是一个非常强大的debug功能,通过这个组件,几乎可以完成调试过程中大部分的事情,包括:查看实时变量、实时变量赋值、执行各种程序操作(包括数据库操作)。需要注意的是异常断点无需在具体的代码上打断点的,而是在断点详情页中直接添加,后续在执行时,如果抛出我们监听的异常,则会自动暂停在抛出异常的地方。
2023-06-22 18:04:55
1218
原创 sql练习
先查出最高的薪资,再查出小于最高薪资的所有薪资中最高的薪资,查处的、这个薪资就是第二高的薪资。现有一张数据库表Employee,有两个字段id 、salary 查询薪资第二高的薪水。对查询结果进行去重排序,然后分页查询查第二个。
2023-05-29 17:02:47
47
原创 死信交换机
消息超时的两种方式是?给队列设置ttl属性,进入队列后超过ttl时间的消息变为死信给消息设置ttl属性,队列接收到消息超过ttl时间后变为死信如何实现发送一个消息20秒后消费者才收到消息?给消息的目标队列指定死信交换机将消费者监听的队列绑定到死信交换机发送消息时给消息设置超时时间为20秒TTL+死信交换机的弊端:如果有两个延迟消息,第一个消息延迟时间为两个小时,第二个为半个小时。由于队列先进先出,第二个消息会因为消息阻塞,无法被消费。解决方案:延迟交换机插件。
2023-05-14 21:45:39
109
原创 Maven基础
如上图所示就是Maven的模型,而我们先看紫色框框起来的部分,他就是用来完成标准化构建流程。如我们需要编译,Maven提供了一个编译插件供我们使用,我们需要打包,Maven就提供了一个打包插件提供我们使用等。上图中紫色框起来的部分,项目对象模型就是将我们自己抽象成一个对象模型,有自己专属的坐标,如下图所示是一个Maven项目:依赖管理模型则是使用坐标来描述当前项目依赖哪儿些第三方jar包,如下图所示上述Maven模型图中还有一部分是仓库。如何理解仓库呢?
2023-05-12 22:07:34
42
原创 Git工具
Git是一个分布式版本控制工具,主要用于管理开发过程中的源代码文件(Java类、xml文件、html页面等),在软件开发过程中被广泛使用。通常用来对软件开发过程中的源代码文件进行管理。commit:提交,将本地文件和版本信息保存到本地仓库push:推送,将本地仓库文件和版本信息上传到远程仓库pull:拉取,将远程仓库文件和版本信息下载到本地仓库。
2023-05-11 21:28:35
45
原创 Docker
为了避免这些重复劳动,人们就会将自己打包的应用镜像,例如Redis、MySQL镜像放到网络上,共享使用,就像GitHub的代码共享一样。呢,就是将这些文件中编写的程序、函数加载到内存中允许,形成进程,只不过要隔离起来。这里的mysql就是repository,5.7就是tag,合一起就是镜像名称,代表5.7版本的MySQL镜像。,就是把一个应用在硬盘上的文件、及其运行环境、部分系统函数库文件一起打包形成的文件包。:Docker将应用程序及其所需的依赖、函数库、环境、配置等文件打包在一起,称为镜像。
2023-05-10 22:48:36
136
1
原创 SQL基础
执行时机不一样:where 是分组之前进行限定,不满足where条件,则不参与分组,而having是分组之后对结果进行过滤。DML(Data Manipulation Language) 数据操作语言,用来对数据库中表的数据进行增删改。操作表也就是对表进行增(Create)删(Retrieve)改(Update)查(Delete)。为了避免重复创建数据库出现错误错误,在创建数据库的时候先做判断,如果不存在再创建。可判断的条件不一样:where 不能对聚合函数进行判断,having 可以。
2023-05-05 21:02:05
65
原创 MyBatis Plus 完成公共字段填充
MetaObjectHandler接口是mybatisPlus为我们提供的的一个扩展接口,我们可以利用这个接口在我们插入或者更新数据的时候,为一些字段指定默认值。实现这个需求的方法不止一种,在sql层面也可以做到,在建表的时候也可以指定默认值。1、编写MetaObjectHandler 实现类//字段为空,可以进行填充 setFieldValByName("created" , new Date() , metaObject);
2023-05-03 21:39:57
275
原创 AOP实现公共字段填充
我们都是通过编码操作数据库,当我们完成某些业务时,会向数据库插入一条数据,或者修改数据库时,会有一些公共字段,例如(新增)修改时间或(新增)修改人。如果每次都手动去设置这些值是非常麻烦的。Spring Aop思想恰好可以用来解决这个问题。
2023-05-03 21:28:39
413
1
原创 多线程之线程池
提到池,大家应该能想到的就是水池。水池就是一个容器,在该容器中存储了很多的水。那么什么是线程池呢?线程池也是可以看做成一个池子,在该池子中存储很多个线程。线程池存在的意义: 系统创建一个线程的成本是比较高的,因为它涉及到与操作系统交互,当程序中需要创建大量生存期很短暂的线程时,频繁的创建和销毁线程对系统的资源消耗有可能大于业务处理是对系 统资源的消耗,这样就有点"舍本逐末"了。针对这一种情况,为了提高性能,我们就可以采用线程池。
2023-05-02 23:51:07
50
原创 SpringBoot
1、SpringBoot是由Pivotal团队提供的全新框架,其设计目的是用来Spring应用的以及2、Spring程序缺点。
2023-05-01 00:29:51
39
原创 集成阿里云oss完成文件上传
对象存储服务(Object Storage Service,OSS)是一种海量安全低成本高可靠的云存储服务,适合存放任意类型的文件。容量和处理能力弹性扩展,多种存储类型供选择,全面优化存储成本。
2023-04-21 21:29:26
82
原创 过滤器与拦截器
Filter 表示过滤器,是 JavaWeb 三大组件(Servlet、Filter、Listener)之一。Filter的使用比较简单,继承Filter 接口,实现对应的init、doFilter以及destroy方法即可。1、init:在容器启动时调用初始化方法,只会初始化一次2、doFilter:每次请求都会调用doFilter方法,通过FilterChain 调用后续的方法3、destroy:当容器销毁时,执行destory方法,只会被调用一次。
2023-04-17 17:52:40
134
原创 MongoDB
MongoDB:是一个高效的非关系型数据库(不支持表关系:只能操作单表)MongoDB是一个基于分布式文件存储的数据库。由C++语言编写。旨在为WEB应用提供可扩展的高性能数据存储解决方案。MongoDB是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的,它支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类型。
2023-04-13 22:40:59
138
原创 消息可靠性
如何确保RabbitMQ消息的可靠性?开启生产者确认机制,确保生产者的消息能到达队列开启持久化功能,确保消息未消费前在队列中不会丢失开启消费者确认机制为auto,由spring确认消息处理成功后完成ack开启消费者失败重试机制,并设置MessageRecoverer,多次重试失败后将消息投递到异常交换机,交由人工处理。
2023-04-12 22:42:08
68
原创 微服务之Gateway网关
Spring Cloud Gateway 是 Spring Cloud 的一个全新项目,该项目是基于 Spring 5.0,Spring Boot 2.0 和 Project Reactor 等响应式编程和事件流技术开发的网关,它旨在为微服务架构提供一种简单有效的统一的 API 路由管理方式。Gateway网关是我们服务的守门神,所有微服务的统一入口。网关的核心功能特性:1、请求路由2、权限控制3、限流架构图:权限控制:网关作为微服务入口,需要校验用户是是否有请求资格,如果没有则进行拦截。路由和负载均衡:一
2023-04-09 23:44:25
352
原创 Nacos注册中心
Nacos是阿里巴巴的产品,现在是中的一个组件。相比Eureka功能更加丰富,在国内受欢迎程度较高。Nacos是SpringCloudAlibaba的组件,而SpringCloudAlibaba也遵循SpringCloud中定义的服务注册、服务发现规范。因此使用Nacos和使用Eureka对于微服务来说,并没有太大区别。主要差异在于:1、依赖不同2、服务地址不同。
2023-04-06 21:58:07
238
1
原创 微服务注册中心Eureka
1、新建order-service,在order-service的pom文件中,引入下面的eureka-client依赖。2、在order-service中,修改application.yml文件,添加服务名称、eureka地址。3、在user-service中,修改application.yml文件,添加服务名称、eureka地址。1、新建user-service,并将注册到eureka-server中去。新建一个父工程 cloud-demo,在cloud-demo下创建子模块。
2023-04-05 21:25:21
153
1
原创 Ribbon负载均衡
通过定义IRule实现可以修改负载均衡规则,有两种方式:@Beanuserservice: # 给某个微服务配置负载均衡规则,这里是userservice服务ribbon:NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule # 负载均衡规则注意,一般用默认的负载均衡规则,不做修改。
2023-04-05 21:21:27
168
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人