- 博客(37)
- 收藏
- 关注
原创 RBAC——基于角色的访问控制
在现代信息系统中,随着功能的扩展和用户数量的增加,权限管理变得越来越复杂。传统的基于用户的权限管理方式难以应对大规模系统的需求,因此引入了基于角色的访问控制(Role-Based Access Control,RBAC)模型。RBAC通过角色来分配权限,简化了权限管理复杂度,提升了系统的安全性。
2024-11-21 22:18:21
1320
原创 SpringBoot常用注解总结
今天我们来深入探讨Spring Boot中的常用注解,这些注解是简化配置、自动装配组件和实现声明式服务的关键。无论你是初学者还是有经验的开发者,掌握这些注解都将大大提高你的开发效率。本文将详细介绍每个注解的作用及其用法,并给出实际应用示例。
2024-10-27 13:15:53
4041
1
原创 安装Vue CLI的详细指南
通过以上步骤,你已经成功安装了Vue CLI并创建了一个新的Vue项目。Vue CLI提供了丰富的功能和插件,可以帮助你更高效地开发Vue应用。希望这篇博客对你有所帮助!Vue CLI 现已处于维护模式!现在官方推荐使用create-vue来创建基于Vite的新项目。
2024-10-26 14:02:52
1828
原创 Maven 介绍与核心概念解析
Maven,作为一个广泛应用于 Java 平台的,其强大功能和易用性使得它在开发社区中备受青睐。pom.xml、Maven 坐标和 Maven 依赖,帮助读者更好地理解和使用 Maven。
2024-10-24 20:41:07
664
原创 拦截器Interceptor
在Spring Boot中,拦截器是一种中间件,用于在请求到达控制器之前或之后执行一些通用的功能。比如:我们可以通过拦截器来拦截前端发起的请求,将登录校验的逻辑全部编写在拦截器当中。在校验的过程当中,如发现用户登录了(携带JWT令牌且是合法令牌),就可以直接放行,去访问spring当中的资源。如果校验时发现并没有登录或是非法令牌,就可以直接给前端响应未登录的错误信息。它基于Spring MVC框架中的接口实现。通过创建一个自定义的拦截器类并实现该接口,可以定义拦截器要执行的逻辑和行为。
2024-09-18 22:12:47
1084
原创 Filter过滤器
过滤器(Filter)用于根据预定义的条件对输入数据进行筛选,只保留满足条件的数据项。这个过程类似于在现实生活中使用筛子筛选谷物,去除杂质,留下纯净的部分。在计算机科学中,过滤器通常接收一个数据集作为输入,并返回一个新的数据集,其中包含原始数据集中符合特定标准的元素。是 JavaWeb三大组件(Servlet、Filter、Listener)之一。
2024-09-13 13:56:59
1696
原创 JWT令牌——详解
在当今的Web开发中,安全认证和授权变得尤为重要。JWT(JSON Web Tokens)是一种开放标准(RFC 7519),它定义了一种简洁、紧凑且自包含的方式,用于在各方之间安全地传输信息。这种信息可以被验证和信任,但不需要依赖服务器来解析。
2024-09-11 14:38:12
2622
原创 深入理解Java中的clone对象
在实际编程过程中,我们常常遇到这种情况:有一个对象 A,需要一个和 A 完全相同新对象 B,并且此后对 B 任何改动都不会影响到 A 中的值,也就是说,A 与 B 是两个独立的对象,但 B 的初始值是由 A 对象确定的。在 Java 语言中,用简单的赋值语句是不能满足这种需求的。要满足这种需求虽然有很多途径,但实现 clone()方法是其中最简单,也是最高效的手段。
2024-09-10 22:57:23
1726
原创 Maven高级——详解
Maven利用其强大的依赖管理系统和标准化的项目结构,大大简化了项目的构建和管理过程。由于其高度的可扩展性,它不仅适用于Java项目,还能用于管理各种其他语言编写的项目,如C#、Ruby和Scala等。在Maven的帮助下,开发者可以专注于业务逻辑的实现,而不是频繁处理依赖和配置问题
2024-07-25 16:30:00
810
1
原创 SpringBoot原理——面试高频
自动配置是Spring Boot根据添加的依赖和应用程序的实际配置,自动为你配置Spring应用程序的行为,简单来说,它减少了你需要手动编写的配置量,让你可以更专注于业务逻辑的开发。当Spring容器启动后,一些配置类、bean对象就自动存入到了IOC容器中,不需要手动去声明,从而简化了开发,省去繁琐的配置操作。
2024-07-24 12:15:00
733
原创 Spring Bean介绍
上述所说的(spring项目启动时,会把其中的bean都创建好)还会受到作用域延迟初始化的影响,这里主要针对于默认的单例非延迟加载的bean而言。
2024-07-23 16:15:00
762
原创 idea中如何创建yml、yaml、properties配置文件
我们一直使用springboot项目创建完毕后自带的application.properties进行属性的配置,那其实呢,在springboot项目当中是支持多种配置方式的,除了支持properties配置文件以外,还支持另外一种类型的配置文件,就是我们接下来要讲解的yml格式的配置文件。yml 格式的配置文件,后缀名有两种:yml(推荐)、yaml。properties、yml、yaml三种文件都能被项目识别,当它们之间配置文件发生冲突时,其优先级是:properties > yml > yaml。
2024-07-22 19:30:00
4393
原创 Spring AOP详解
AOP英文全称:Aspect Oriented Programming(面向切面编程、面向方面编程),其实说白了,面向切面编程就是面向特定方法编程。使用场景(记录操作日志、权限控制、事务管理)。AOP的优势:减少重复代码、提高开发效率、维护方便、代码无侵入。案例某部分功能运行较慢,定位执行耗时较长的业务方法,此时需要统计每一个业务的执行耗时。我们可以在方法开始前,获取方法开始时间,方法结束后获取结束时间,由此计算执行耗时。这个思路是正确的,但是过于繁琐。动态代理是面向切面编程最主流的实现。
2024-07-21 11:45:00
1633
原创 Postman安装使用教程(详解)
Postman是一个流行的API开发工具,它提供了友好的用户界面用于发送HTTP请求、查看响应以及管理API接口。不仅如此,Postman还可以帮助开发者创建、测试、发布、监控和记录API,是前后端开发者不可或缺的助手。
2024-07-17 16:29:27
10848
原创 Java基础知识——继承
继承是面向对象编程(OOP)的四大基本原则之一,它允许我们创建一个新类,继承并扩展现有类的属性和方法。继承是一种机制,通过这种机制,一个类可以基于另一个已存在的类来定义。已存在的类称为“父类”或“超类”,而新创建的类则称为“子类”。子类自动继承父类的属性和方法,同时还可以定义自己的新属性和方法。现实生活中也存在继承:波斯猫和巴里猫属于猫科,沙皮狗和斑点狗属于犬科。猫科动物和犬科动物又是属于动物类。继承需要符合的关系是:is-a,父类更通用,子类更具体。
2024-07-16 14:04:56
814
原创 Mybatis——动态SQL
动态SQL是mybatis的强大特性之一,它可以让我们在xml映射文件内,以标签的形式编写动态SQL,完成逻辑判断和动态拼接SQL的功能,mybatis提供了9种动态SQL标签(trim、where、set、foreach、if、choose、when、otherwise、bind)。随着用户的输入或外部条件的变化而变化的SQL语句,我们就称之为动态SQL。如果你使用jdbc或者其他类似的框架,你应该能够理解不同条件拼接的SQL语句有多痛苦,如不能忘记添加必要的空格,还要注意去掉列表最后一个列名的逗号等。
2024-07-13 12:45:33
827
原创 MyBatis入门程序详解
MyBatis是一个基于Java的持久层框架,它内部封装了JDBC操作,使得开发人员可以更专注于SQL语句本身而非繁琐的JDBC操作细节。在MyBatis中,SQL语句可以被配置在XML文件中,或者通过注解方式进行。这种分离使得SQL语句更加模块化和可重用。MyBatis还支持动态SQL,允许开发者根据不同情况构建复杂的SQL语句,而无需编写大量的Java代码。
2024-07-05 23:51:55
1274
原创 SpringBoot控制反转和依赖注入
控制反转:Inversion of Control,简称IOC。对象创建控制权由程序自身转移到外部(Spring容器)。依赖注入:Dependency injection,简称DI。容器为应用程序提供运行时,所依赖的资源。 Bean对象:IOC 容器中创建、管理的对象
2024-06-25 15:37:53
1116
1
原创 SpringBoot三层架构
controler:控制层,接收前端发送的请求,对请求进行处理,并响应数据。service:业务逻辑层,处理具体的业务逻辑。dao:数据访问层(data access Object(持久层)),是负责数据访问操作,包括增、删、改、查。
2024-06-17 22:37:31
2725
3
原创 SpringBoot请求响应
在原始的web程序中,获取请求参数,需要通过HttpServletRequest对象手动获取。:这是一个公共方法,返回类型为String。它接收一个类型的参数,用于获取HTTP请求的信息。:从HTTP请求中获取名为"name"的参数值,并将其赋值给变量name。:将字符串类型的ageStr转换为整数类型,并赋值给变量age。
2024-06-16 15:47:13
670
2
原创 Apache Tomcat介绍
在Java Web开发领域,Apache Tomcat是一个不可或缺的核心组件。作为一个轻量级的开源Web应用服务器,Tomcat提供了一种简单而高效的方式来部署和管理Java Servlet和JavaServer Pages (JSP)应用程序。
2024-06-14 19:16:38
830
原创 JavaScrip轮播图
JS轮播图的实现核心是使用JavaScript来控制图片的切换和显示,配合HTML和CSS完成布局和样式设置。通过定时器实现图片的自动切换。
2024-06-07 21:07:53
1161
原创 Java设计模式——建造者模式
建造者模式是一种强大的工具,可以帮助我们更好地组织和管理复杂对象的创建过程。通过将对象的构建过程与其表示分离,我们可以更灵活地控制对象的创建,并提高代码的可读性和可维护性。
2024-06-03 19:09:04
1832
原创 设计模式——单例模式
有些对象天生就是独一无二的。它们代表了一个系统中的某个核心组件,比如配置管理器、连接池或是日志记录器。这些对象通常包含有状态信息,对于整个系统来说,它们的状态必须保持一致。为了确保这种独特性和一致性,我们需要一个特殊的设计模式——单例模式(Singleton Pattern)。简单来说,一个班级只有一个班主任。单例模式是一种强大的设计模式,它确保了系统中某些关键组件的唯一性和一致性。然而,它也带来了一些挑战,尤其是在多线程环境和测试中。
2024-05-23 14:08:32
545
1
原创 设计模式——桥接模式
桥接模式(Bridge Pattern)是一种结构型设计模式,用于将抽象部分与实现部分分离,使它们可以独立地变化。它通过提供一个桥接结构,将抽象部分与实现部分解耦,这样两者的变化不会相互影响,从而应对多层继承结构带来的问题。假设你正在设计一个游戏,游戏中有不同类型的角色和武器。如果不使用桥接模式,你可能会为每种角色和武器的组合创建一个子类,这样会导致大量的子类产生。但是,如果使用桥接模式,你可以将角色和武器分离开来,使得它们可以独立地进行扩展。
2024-05-21 23:58:35
744
原创 设计模式——适配器模式
适配器模式(Adapter Pattern)是作为两个不兼容的接口之间的桥梁。这种类型的设计模式属于结构型模式,它结合了两个独立接口的功能。将一个类的接口转换成客户希望的另外一个接口。适配器模式使得原本由于接口不兼容而不能一起工作的那些类可以一起工作。在生活中我们也接触过,美国电器 110V,中国 220V,就要有一个适配器将 110V 转化为 220V。适配器模式是一种非常实用的设计模式,它允许我们将现有的接口转换为客户端期望的接口。这种模式在整合第三方库、封装遗留代码、实现兼容层等方面非常有用。
2024-05-21 23:28:33
831
原创 设计模式——生成器模式
生成器模式的主要目标是将对象的创建过程与其表示分离,以便相同的创建过程可以创建不同的表示。将一个复杂的构建与其表示相分离,使得同样的构建过程可以创建不同的表示。这有助于提高系统的灵活性和可重用性。简单来说,去肯德基汉堡、可乐、薯条、炸鸡翅等是不变的,而其组合是经常变化的,生成出所谓的"套餐"。在实际软件工程中,生成器模式适用于那些创建过程复杂、步骤固定且需要灵活控制的产品。在决定是否使用生成器模式时,应当考虑其带来的灵活性和封装性是否值得增加的复杂性。
2024-05-20 23:34:43
1056
1
原创 简单工厂模式、工厂模式与抽象工厂模式详解
设计模式是一套被反复使用、多数人认可的、经过分类编目的、代码设计经验的总结。它们为软件设计提供了一定的指导和最佳实践。特别是在创建对象时,简单工厂、工厂模式和抽象工厂模式这三种创建型模式经常被提及和应用。简单工厂模式是一种创建型设计模式,它通过一个单一的工厂类来负责创建一系列相关的对象。这个工厂类根据传入的参数来决定实例化哪一个具体类的实例。客户端在使用时不需要知道具体的类名,只需要提供必要的信息给工厂。工厂模式属于创建型模式,它在创建对象时提供了一种封装机制,将实际创建对象的代码与使用代码分离。
2024-05-18 00:10:54
2398
原创 设计模式——命令模式
在软件设计的世界里,我们经常需要在不同的对象之间传递操作请求。如果这些请求的发送者和接收者之间的耦合度太高,系统的可维护性和扩展性就会受到影响。这时候,命令模式(Command Pattern)就派上了用场。命令模式是一种行为设计模式,它将一个请求封装为一个对象,从而使你可用不同的请求对客户进行参数化;对请求排队或记录请求日志,以及支持可撤销的操作。Command)命令模式提供了一种将请求封装成对象的方法,使得你可以用不同的请求、队列或者日志请求来参数化其他对象。它还支持撤销操作。
2024-05-15 18:23:23
858
原创 设计模式——策略模式
策略模式(Strategy Pattern)是一种行为设计模式,它定义了一系列算法,并将每个算法封装在一个具有共同接口的独立类中,使得它们可以相互替换。策略模式让算法的变化独立于使用算法的客户。这种模式在很多场景下都非常实用,例如在不同的情况下需要执行不同的业务逻辑时,或者需要动态地改变对象的行为时。诸葛亮的锦囊妙计,每一个锦囊就是一个策略。旅行的出游方式,选择骑自行车、坐汽车,每一种旅行方式都是一个策略。
2024-05-15 11:25:51
564
原创 图的遍历(深度优先和广度优先)
相比于树结构的遍历,图的遍历要复杂得多,因为图中的任何一个节点都可能与其它所有节点相邻接。这就意味着,在访问了某个节点之后,可能会顺着某条路径再次返回到这个节点。为了防止对节点进行重复访问,在图的遍历过程中需要记录下已经访问过的节点。深度优先搜索(DFS)和广度优先搜索(BFS)是两种基本的图遍历方法。DFS更适合深入挖掘问题的解决方案,而BFS则适用于逐层分析问题,寻找最短路径或按层次顺序进行操作。
2024-05-09 11:45:55
2549
原创 UML类图
UML类图展示了系统中的类及其相互关系。一个"类"代表了一组具有相同属性和行为的对象。类图不仅显示了类的结构和名称,还展示了类之间的关系,如继承、关联、依赖和聚合。
2024-05-06 12:16:50
802
原创 时间复杂度和空间复杂度
算法是一组用于处理数据和解决程序问题的方法。尽管不同的算法可能最终得出相同的结果,但在执行过程中所消耗的资源和时间可能会有很大差异。通常,我们从两个维度来评估不同算法的优劣:时间维度和空间维度。时间维度:这个维度关注的是执行某个算法所需的时间。我们通常使用“时间复杂度”这一概念来描述算法的时间效率。空间维度:这个维度关注的是执行某个算法所需的内存空间。我们通常使用“空间复杂度”这一概念来描述算法的空间效率。接下来,我将介绍我对“时间复杂度”和“空间复杂度”的理解。
2024-05-04 12:43:05
657
1
原创 Java判断回文数
给你一个整数 x ,如果 x 是一个回文整数,返回 true;否则,返回 false。回文数是指正序(从左向右)和倒序(从右向左)读都是一样的整数。例如,121 是回文,而 123 不是。
2023-11-04 15:11:25
994
1
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人