自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 用户模块设计

客户端和服务器之间进行数据传输遵循的是HTTP协议 , 此协议属于无状态协议(一次请求对应一次响应 , 响应完之后链接就会断开) 服务器是无法跟踪客户端的请求 , 通过Cookie服务器可以给客户端添加一个标识 , 当客户端再次发出请求时会带着这个Cookie这样服务器就能识别此客户端了, 但是由于Cookie是保存在客户端的存在被篡改的风险 , Session的出现解决了此问题。​ 我们在访问后端的指定页面时,要判断用户是否登陆了,假如用户没有登陆不让直接访问后端页面,此时要跳转登陆页面,提示先登陆。

2024-12-29 21:57:38 464

原创 整合Lombok基础组件

​ Lombok是一个编译阶段工具,可以基于 Lombok 中提供的 API,在程序编译时自动织入一些方法(例如Setters & Getters、hashCode() & equals()、toString() ),我们写的 Java 程序可以在编译时,通过 Lombok自动将这些方法添加到 .class 文件中 , 这样可以更好避免冗余和样板式代码的编写,让编写的类更加简洁,提高开发效率,其应用步骤如下:第一步:idea中安装lombok插件 :如果插件市场直接安装不了 , 需要手动下载,下载地址:ht

2024-12-29 21:56:05 460

原创 SpringMVC

DispatcherServlet , HandlerMapping , Controller , ViewResolver等组件作用 , 并描述SpringMVC运行流程Spring Web依赖及Thymeleaf依赖作用@Controller , @RequestMapping , @ResponseBody等注解如何使用及作用。

2024-12-22 22:15:33 970

原创 Java日志记录几种实现方案

Spring AOP优点: 侵入性低,代码可重复性强问题以及解决方案:切面中可能会报错,报错会影响业务代码的正常执行,解决方法是使用 try catch 捕获异常。日志记录会影响业务代码执行效率,可以使用消息队列异步执行日志操作事件监听 + 异步优点: 解耦业务逻辑和日志记录,提升代码的内聚性。缺点以及解决方案:AOP 存在的问题,事件监听同样存在,报错和耗时都会影响业务代码。报错可以使用异常捕获,延迟问题可以使用异步方式解决,而异步另起线程也顺便解决了报错影响业务代码的问题。

2024-12-15 22:52:12 939

原创 Redis进阶

正常业务下,一个请求查询到数据后,我们可以将这个数据保存在Redis之后的请求都可以直接从Redis查询,就不需要再连接数据库了如果一个请求查询的数据,数据库中没有会发生什么事情?它会先查询Redis,Redis没有会查询数据库,数据库也没有这就是缓存穿透因为数据库中没有数据,所以Redis也无法保存数据,如果这个请求反复出现,就会反复连接数据库,严重的导致数据库性能降低甚至宕机。

2024-11-25 09:22:02 861

原创 Spring Cloud Ribbon 实现“负载均衡”的详细配置说明

Ribbon 是什么?1.Spring Cloud Ribbon 是基于Netflix Ribbon 实现的一套客户端,负载均衡的工具2.Ribbon 主要功能是提供客户端负载均衡算法和服务调用3.Ribbon 客户端组件提供一系列完善的配置项如“连接超时,重试”4.Ribbon 会基于某种规则(如简单轮询,随机连接等)去连接指定服务5.程序员很容易是由 Ribbon 的负载均衡算法实现负载均衡6.一句话: Ribbon: 负载均衡 + RestTemplate 调用。

2024-11-17 21:22:49 723

原创 Linux 的文件和目录结构

Linux的目录结构是树状结构,最顶级的目录为根目录"/"。/ 就相当于 Windows 中的 "我的电脑""/root": 该目录为系统管理员,也称作超级权限者的用户主目录。"/home": 存放普通用户的主目录,在 Linux 中每个用户都有一个自己的目录,一般该目录名是以用户的账号命名的。"/etc": 所有的系统管理所需要的配置文件和子目录。"/usr": 这是一个非常重要的目录,用户的很多应用程序和文件都放在这个目录下,类似与 windows 下的 program files 目录。

2024-11-08 23:45:00 1189 1

原创 Vmware与Linux

虚拟机(Virtual Machine)指通过软件模拟的具有完整硬件系统功能的、运行在一个完全隔离环境中的完整计算机系统。在实体计算机中能够完成的工作在虚拟机中都能够实现。在计算机中创建虚拟机时,需要将实体机的部分硬盘和内存容量作为虚拟机的硬盘和内存容量。每个虚拟机都有独立的 CMOS、硬盘和操作系统,可以像使用实体机一样对虚拟机进行操作。

2024-11-03 18:43:52 1003 1

原创 JDBCTemplate的CRUD操作

queryForList():查询结果将结果集封装为list集合注意:将每一条记录封装为一个Map集合,再将Map集合装载到List集合中①**类中的方法**

2024-10-20 19:09:30 591

原创 SQL增删改操作-1

但是由于idea担心我们删除整张表的操作太过于危险,会有提示,点击Execute执行即可。③将name为关羽的记录的name属性修改为张飞,age属性修改为18。②删除age小于30的记录,也就是删除年龄小于30岁的记录。①将name为刘备的记录的age属性,修改为88。②将age为5的记录的name属性,修改为黎明。①删除name为张飞的记录。

2024-10-13 18:07:07 1091 1

原创 Caffeine本地缓存应用实践

​ Caffeine是一种高性能的缓存库,内部使用ConcurrentHashMap实现,是基于Java 8的最佳缓存框架。基于 Google 的 Guava Cache,Caffeine 提供一个性能卓越的本地缓存实现 , 也是 SpringBoot 内置的本地缓存实现。

2024-09-27 00:00:00 441

原创 Spring AOP异步操作实现

​ 对于@Async注解默认会基于 ThreadPoolTaskExecutor 对象获取工作线程,然后调用由 @Async 描述的方法,让方法运行于另一个工作线程,以实现异步操作。@Slf4j@Setter@Configuration //此注解描述的类为一个配置类,需要交给Spring管理//读取Spring配置文件中以spring.async.task为前缀的数据,并通过set方法注入给属性@Override//自定义拒绝处理策略@Override。

2024-09-22 22:57:15 667

原创 Nginx配置文件详解(续)

由于server_name指令支持使用通配符和正则表达式两种配置名称的方式,因此在包含有多个虚拟主机的配置文件中,可能会出现一个名称被多个虚拟主机的server_name匹配成功。在server全局块中,最常见的两个配置项是本虚拟主机的监听配置和本虚拟主机的名称或IP配置。在前面提到过,每一个http块都可以包含多个server块,而每个server块就相当于一台虚拟主机,它内部可有多台主机联合提供服务,一起对外提供在逻辑上关系密切的一组服务(或网站)。server块和“虚拟主机”的概念有密切联系。

2024-09-15 12:11:27 1007

原创 Nginx配置文件详解

Nginx的主配置文件是nginx.conf,这个配置文件一共由三部分组成,分别为。在http块中,又包含http全局块、多个server块。每个server块中,可以包含server全局块和多个location块。在同一配置块中嵌套的配置块,各个之间不存在次序关系。配置文件支持大量可配置的指令,绝大多数指令不是特定属于某一个块的。同一个指令放在不同层级的块中,其作用域也不同,一般情况下,高一级块中的指令可以作用于自身所在的块和此块包含的所有低层级块。

2024-09-08 14:30:48 929

原创 AOP用户行为日志记录

​ 我们希望用户在系统中的行为有一个具体的日志记录,但又不能直接去修改目标方法的代码,所以本次基于AOP技术进行用户行为日志的获取和记录。例如,记录谁在什么时间、执行了什么操作、访问了什么方法、传递了什么参数、耗时是多少,操作状态如何?AOP切入点及通知的使用方式切入点表达式的不同以及如何选用?用户行为日志记录通过什么方式以及什么操作完成的?

2024-08-25 20:01:53 1008

原创 Spring AOP应用

说明 : @RequiredLog 为我们自己定义的注解 , 当我们使用 @RequiredLog 注解修饰业务层方法时 , 系统底层会在执行此方法时进行日志扩展操作。正常时 : @Around –> @Before –> @AfterReturning –> @After –> @Around。异常时 : @Around –> @Before –> @AfterThrowing –> @After –> @Around。@annotaion表达式应用于方法级别,实现细粒度的切入点表达式定义,案例分析。

2024-08-25 20:00:17 909

原创 SpringMVC

这样可以更好提高程序的可维护性和可扩展性,**例如生活中的楼宇设计,生日蛋糕设计,企业的组织架构设计等。​ 在大型软件系统设计时,业务一般会相对复杂,假如所有业务实现的代码都纠缠在一起,会出现逻辑不清晰、可读性差,维护困难,改动一处就牵一发而动全身等问题。​ 在上图中,Servlet充当MVC中的Controller,负责调用model处理业务,负责转换或重定向某个页面,在页面上呈现数据。作用:统一处理请求和响应,整个流程控制的中心,由它调用其它组件处理用户的请求。- 负责获取请求,处理请求,响应结果。

2024-08-19 09:26:10 748

原创 整合 Knif4j 应用完成 API 操作实践和切面应用

@Around注解用于描述切面中方法,这样的方法会被认为是一个环绕通知(核心业务方法执行之前和之后要执行的一个动作),@Aournd注解内部value属性的值为一个切入点表达式或者是切入点表达式的一个引用(这个引用为一个@PointCut注解描述的方法的方法名)。- @Pointcut注解用于描述切面中的方法,并定义切面中的切入点(基于特定表达式的方式进行描述),在本案例中切入点表达式用的是bean表达式,这个表达式以bean开头,bean括号中的内容为一个Spring管理的某个bean对象的名字。

2024-08-11 19:47:43 369

空空如也

空空如也

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

TA关注的人

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