自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Lombok

• 使用`@Data`注解可以同时生成`@Getter`、`@Setter`、`@ToString`、`@EqualsAndHashCode`和`@NoArgsConstructor`的功能,适用于简单的数据类。• 使用`@EqualsAndHashCode`注解可以自动生成`equals`和`hashCode`方法,确保对象的正确比较和哈希行为。• `@Value`:生成不可变类,所有字段为`final`,并生成`@Getter`和`@EqualsAndHashCode`。2.自动生成构造函数。

2025-01-24 14:14:48 338

原创 Mybatis

MyBatis 是一个开源的、基于 Java 的持久层框架,它简化了数据库操作,使得开发者可以更方便地将数据库操作与业务逻辑分离,同时支持定制化 SQL 查询。

2025-01-24 10:07:21 523

原创 docker认识

Docker 是一个开源的应用容器引擎,它利用 Linux 内核的 cgroups 和 namespace 技术,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app)。Docker 容器可以被创建、启动、停止、删除等,就像虚拟机一样,但它比虚拟机更轻量级、更快速。

2025-01-14 17:56:08 913

原创 WEB开发中的请求方式

在Spring框架中,你可以通过`@RequestMapping`或`@PostMapping`, `@GetMapping`, `@PutMapping`, `@DeleteMapping`, `@PatchMapping`, `@HeadMapping`, `@OptionsMapping`, `@ConnectMapping`注解来指定处理特定请求方式的方法。在Web开发中,"请求方式"(Request Method)指的是客户端与服务器之间进行通信时,客户端请求服务器执行某种操作的方式。

2024-12-29 21:52:15 365

原创 validated验证数据

在这个例子中,`@Validated` 注解告诉Spring在调用`createUser`方法之前对`User`对象进行验证。在Spring MVC中,如果验证失败,你可以通过`@ExceptionHandler`方法来处理`MethodArgumentNotValidException`,这是一个包含验证错误信息的异常。在Spring中,`validated` 这个词可能出现在注解中,如`@Validated`,它用于指示Spring应该在调用方法之前对方法的参数进行验证。

2024-12-29 21:50:28 372

原创 ThreadLocal隔离线程

它主要用于那些需要在线程之间隔离数据的场景。此外,使用 `ThreadLocal` 时,应该小心内存泄漏的风险,确保在适当的时候调用 `remove()` 方法来清理不再使用的线程局部变量。:`ThreadLocal` 可以用于在线程的不同部分之间传递数据,例如在 Web 应用程序中,可以将用户会话信息存储在 `ThreadLocal` 中,以便在整个请求处理过程中使用。:`ThreadLocal` 允许每个线程拥有自己的变量副本,这意味着每个线程都可以独立地改变自己的副本,而不会影响其他线程。

2024-12-29 20:57:45 479

原创 Mapper层

例如,在MyBatis中,你可能会有一个`UserMapper`接口,它包含了`selectUserById`、`insertUser`等方法,这些方法对应于数据库中的SQL操作。3. MyBatis:MyBatis是一个流行的Java持久层框架,它提供了简单而强大的方法来处理数据库中的数据。5. Spring Data MyBatis:Spring Data MyBatis是Spring框架与MyBatis的结合,它提供了Spring风格的数据访问抽象,同时利用MyBatis的强大功能。

2024-12-29 20:22:46 510

原创 Object类

在泛型编程中,`Object`类型也经常被用作通配符的边界,例如`List<Object>`表示一个可以包含任何类型对象的列表。2. `hashCode()`:返回对象的哈希码值,支持哈希表(如`java.util.HashMap`)的实现。7. `finalize()`:垃圾收集器在回收对象之前调用的方法,允许对象在被回收前执行清理操作。6. `notify()`, `notifyAll()`, 和 `wait()`:与对象的监视器有关的方法,用于线程同步。在Java中,`Object` 类型是。

2024-12-29 20:21:28 254

原创 mvc模式

是应用程序的中介者,接收用户的输入并调用模型和视图去完成用户的需求。控制器接收用户的输入并决定调用哪个模型对象和哪个视图对象。它起到了转发的作用,将用户输入转换为模型数据,并将模型状态的更改反馈给视图。:是应用程序的用户界面。它负责展示数据(即模型)给用户,并收集用户的输入。- 可重用性:模型和视图可以独立于控制器存在,这使得它们可以在不同的应用程序中重用。- 可维护性:由于组件之间的耦合度较低,修改一个组件对其他组件的影响较小。- 分离关注点:不同的组件负责不同的任务,这使得开发和维护变得更加容易。

2024-12-29 19:55:31 238

原创 JWT的简单概念

Header部分描述了JWT的元数据,定义了生成签名的算法以及Token的类型。Payload部分用来存放实际需要传递的数据,包含声明(Claims),如`sub`(subject,主题)、`jti`(JWT ID)。为了确保JWT的安全性,建议采取使用HTTPS、选择强大的签名算法、控制JWT的有效期和处理令牌的存储和传输等措施。JWT定义了一种紧凑且自包含的方式,用于在网络应用环境间以JSON对象安全地传输信息,这些信息可以被验证和信任,因为它是数字签名的。JWT由三部分组成,分别是。

2024-12-28 20:12:27 404

原创 在编程语言中,`void` 关键字通常有几种用途

在C和C++中,`void` 指针(`void*`)是一种特殊的指针类型,它可以指向任何类型的数据。这种类型的指针在进行类型转换时非常有用,因为它可以被转换为任何其他类型的指针。在C、C++、Java等语言中,如果一个函数不返回任何值,那么它的返回类型会被声明为 `void`。在某些情况下,`void` 也可以用于函数参数列表,表示该函数不接受任何参数。这在C++中更为常见,而在C语言中,空的参数列表被写作 `()`。:在C和C++中,`void` 也可以作为一个空语句使用,表示一个空的操作。

2024-12-28 20:10:34 430

原创 【无标题】

Navicat 是一个数据库管理和开发工具,它支持多种数据库系统,如 MySQL、PostgreSQL、SQLite、Oracle 和 SQL Server 等。

2024-12-26 00:14:44 288

原创 如何修改数据库密码

修改数据库密码是一个敏感操作,需要谨慎处理。

2024-12-26 00:07:44 446

原创 软件开发项目的文档文件

这些文档文件通常以`.md`(Markdown)、`.txt`(纯文本)、`.docx`(Word文档)等格式存在。文档文件在软件开发项目中扮演着至关重要的角色,它们帮助团队成员、用户和未来的维护者理解项目的结构、功能和使用方法。通常是一个项目的主文档,提供项目的基本信息,如项目名称、简介、安装指南、如何运行、如何贡献等。为开发者提供如何开发、构建和测试项目的指导,包括代码规范、架构设计、开发环境设置等。如果项目提供API接口,API文档会详细描述接口的使用方法、参数、返回值和示例代码。

2024-12-25 21:24:39 237

原创 编程中用到的项目文件

package.json` (Node.js), `pom.xml` (Maven), `build.gradle` (Gradle):用于管理项目依赖。`.xml`, `.json`, `.yaml`, `.ini`:用于存储配置信息,如数据库连接信息、API密钥等。`.java`, `.py`, `.cs`, `.js`:根据所使用的编程语言,源代码文件有不同的扩展名。`.png`, `.jpg`, `.gif`, `.mp3`, `.mp4`:用于项目中的图像和声音文件。

2024-12-25 21:21:39 412

原创 Controller层:用于处理用户输入、进行数据处理以及向用户展示数据

在这个例子中,`UserController`是Controller层的一个类,它有一个方法`listUsers`,当用户访问`/user`路径时被调用。在Java的Spring框架中,Controller层通常由带有`@Controller`注解的类组成,这些类的方法对应于Web应用程序的不同路由。:在Web应用程序中,Controller层负责路由,即根据用户的请求URL来决定调用哪个Controller方法。Controller层从Model层获取数据,Model层通常与数据库交互以检索或存储数据。

2024-12-24 13:42:35 502

原创 泛型类型的主要特点和用途

8. 类型擦除:Java泛型使用类型擦除来实现,这意味着泛型类型在运行时会被擦除,转换为原始类型。10. 上下界:你可以为类型参数指定上界(`extends`)或下界(`super`),以限制类型参数的范围。3. 提高代码复用性:泛型允许你编写可以处理不同类型的数据的类和方法,而不需要为每种类型编写单独的代码。4. 实现参数化类型:泛型允许你定义一个类型参数,然后在创建类的实例或调用方法时指定具体的类型。在这个例子中,`T`是一个类型参数,它可以在创建`Box`类的实例时被指定。

2024-12-24 13:37:25 227

原创 Java中的impl使用及含义(二)

在这个例子中,`CreditCardPayment`和`PayPalPayment`都是`Payment`接口的不同实现,它们都实现了`processPayment`方法,但具体的支付逻辑不同。在单元测试中,`impl`层的实现可以被Mock对象替换,这样可以测试接口的行为而不需要实际的实现。- 访问修饰符:接口中的方法默认是`public`的,因此在实现类中也必须使用`public`修饰符。在这个例子中,`Dog`类实现了`Animal`接口,并提供了`makeSound`方法的具体实现。

2024-12-24 11:09:31 822

原创 Java中impl的作用篇(一)

在Java开发中,`impl`通常用于存放接口的实现类,有助于代码的组织和分层。例如,在MVC架构中,`impl`层通常位于Controller层的Service下,用来存放接口的具体实现。:假设有一个`UserService`接口,定义了一个`getUserInfo`方法,可以通过创建一个具体的实现类`UserServiceImpl`来实现这个接口。总结来说,`impl`在Java中表示接口的具体实现,它帮助开发者实现接口定义的方法,同时保持代码的清晰和可维护性。一个类可以实现多个接口,使用逗号分隔。

2024-12-24 11:04:51 286

原创 如何为数据库设置字符集和排序规则以支持多语言字符

对于 `utf8mb4` 字符集,常用的排序规则有 `utf8mb4_unicode_ci`(不区分大小写)和 `utf8mb4_general_ci`。设置数据库的字符集和排序规则是一个重要的步骤,尤其是当你需要确保数据库能够正确处理多语言字符,包括中文。1. 确定需求:首先,确定你的应用程序需要支持的语言和字符。10. 测试:在应用更改后,进行测试以确保字符集和排序规则的设置不会影响数据的存储和检索。通过这些步骤,你可以确保数据库的字符集和排序规则正确设置,以支持你的应用程序的多语言需求。

2024-12-24 10:24:40 506

原创 Spring MVC核心组件:DispatcherServlet详解作用解释

对于匹配 DispatcherServlet 的请求,DispatcherServlet 开始处理这个请求,包括请求的解析与封装、处理器映射、执行拦截器、调用处理器、视图解析等步骤。:DispatcherServlet 会加载 Spring 的配置文件,这个配置文件中定义了各种 Spring 组件,如视图解析器、处理器映射器、处理器适配器等,这些组件对于后续的请求处理至关重要。:DispatcherServlet 根据请求的 URL 和配置信息将请求分发给相应的处理器。

2024-12-23 00:02:59 468

原创 Java注解的基础知识

除了内置注解,开发者也可以创建自定义注解。自定义注解通过使用`@interface`关键字定义。在这个栗子中,`MyAnnotation`是一个自定义注解,它有三个元素:`value`、`number`和`flag`,每个元素都有一个默认值。

2024-12-22 16:52:20 370

原创 try-with-resources自动管理资源关闭

在Java 7 及更高版本中语句被引入,用于自动管理资源,确保每个资源在语句结束时被正确关闭。这种语句特别适用于需要手动关闭的资源,如文件流、Socket 连接、数据库连接等。

2024-12-22 16:45:28 479

原创 Java常用的快捷输入语句和快捷键

在Java编程中,利用IDE(如IntelliJ IDEA或Eclipse)可以大大提高编码效率,通过快捷输入语句和代码模板来减少重复性代码的编写。

2024-12-22 16:37:30 507

原创 构造函数的意义及栗子

构造函数是类的一个特殊方法,用于在创建类的新对象(实例)时初始化对象。它具有与类相同的名称,并且没有返回类型,甚至在某些语言中(如Java和C#)明确声明为 `void`。构造函数的主要目的是设置新创建的对象的初始状态。

2024-12-22 15:45:45 437

原创 this关键字的常见用法

在编程语言中,`this` 关键字通常用于引用当前对象的实例。它允许你访问当前对象的属性和方法。

2024-12-22 15:34:37 228

原创 掌握IOC容器:Spring框架的核心概念

IOC(Inversion of Control,控制反转)容器是一种设计模式,用于实现对象之间的解耦。在传统的编程模式中,一个对象(我们称之为A)需要创建或管理另一个对象(我们称之为B)的实例。而在IOC模式中,对象A不需要知道对象B的创建过程,对象B的创建和生命周期管理由IOC容器负责。

2024-12-22 15:21:23 311

原创 基于典型的Spring Boot和MyBatis应用程序开发流程的解释版本

这个流程是基于Spring Boot和MyBatis框架的特点以及软件开发的最佳实践设计的,旨在提高开发效率、保证代码质量、并易于后期维护。

2024-12-21 23:19:32 1467

原创 基于典型的Spring Boot和MyBatis应用程序开发流程

在主应用程序类上使用`@SpringBootApplication`注解,它是`@Configuration`, `@EnableAutoConfiguration`, 和 `@ComponentScan`的组合。创建主类`SpringMybatisApplication`,使用`@SpringBootApplication`注解,并包含`main`方法来启动Spring Boot应用程序。在`mapper`包中创建Mapper接口,如`UserMapper`,定义CRUD操作的方法签名。

2024-12-21 23:11:22 362

原创 Java:大小写敏感,检查错误的时候可以关注下这个问题

Java 是一种大小写敏感(case-sensitive)的编程语言,这意味着在 Java 程序中,变量名、类名、方法名以及其他标识符的大小写都必须完全匹配。这种特性对于 Java 程序的正确编译和运行至关重要。

2024-12-21 21:52:42 399

原创 Mapper 的一些关键点,和栗子

Mapper 是 MyBatis 中用于定义 SQL 语句和数据操作的接口,通过 Java 接口定义了对数据库的操作,可以将数据操作从具体的实现中解耦,提高代码的可维护性和可扩展性。Mapper 提供了一种映射机制,允许开发者在 XML 文件或接口的注解中定义 SQL 语句,然后通过接口方法直接调用这些 SQL 语句。这样,Java 代码就与 SQL 语句解耦了,提高了代码的可维护性和可读性。假设我们有一个用户表users// 根据用户ID查询用户信息// 插入一个新用户// 更新用户信息。

2024-12-21 20:52:52 1817

原创 IDEA中常用的注解及其含义

2. 配置依赖注入:在 Spring 框架中,`@Autowired` 用于自动装配 Bean,`@Component` 用于声明一个类是一个 Spring 管理的组件。在 IDEA 中,当你看到带`@`的注解时,IDE 通常会提供一些辅助功能,如代码补全、快速导航到注解的定义、显示注解的文档等。7. API 文档:如 `@Deprecated` 表示一个 API 已经过时,`@param`、`@return` 用于生成文档。4. 处理异常:`@Throws` 注解用于声明一个方法可能抛出的异常。

2024-12-21 00:22:57 230

原创 怎么获取QQ邮箱授权码?

在安全设置页面中,找到“POP3/IMAP/SMTP/Exchange/CardDAV/CalDAV服务”部分,确保该开关处于打开状态,以便开启SMTP服务。在开启SMTP服务后,你将看到一个名为“授权码”的链接。打开浏览器,访问QQ邮箱官网或使用QQ邮箱客户端,输入你的QQ号码和密码进行登录。在设置页面中,点击“账户”选项,然后在下拉菜单中找到“安全设置”并点击进入。更改QQ密码以及独立密码会触发授权码过期,需要重新获取新的授权码登录。如果你忘记了授权码,可以通过上述步骤重新生成一个新的授权码。

2024-12-20 22:52:20 1414

原创 Spring Boot应用程序分层架构详解:Controller、POJO、Service、Utils层的作用

作用: 控制层负责处理客户端的请求(如HTTP请求),并将其转发到相应的服务层进行业务处理。作用: 这个类通常用于配置Spring Boot应用程序的各种设置,如数据库连接、Bean的配置、Spring MVC的配置等。作用: 工具层包含应用程序中通用的辅助类和方法,这些类和方法可以在应用程序的多个部分中使用,如邮件发送、文件处理、加密解密等。例如,服务层可能会调用工具层中的邮件发送工具类来发送通知邮件。联系: 控制器层通常调用服务层的方法来执行业务逻辑,并使用实体类(POJOs)作为参数和返回类型。

2024-12-20 16:11:33 375

原创 Exception in thread “main“ java.lang.NoClassDefFoundError: org/slf4j/impl/StaticLoggerBinder

1. 错误发生在应用程序启动阶段,当Spring Boot尝试初始化日志系统时2. 具体是在LogbackLoggingSystem类中试图获取logger上下文时抛出的3. 这表明项目中已经有了SLF4J API,但缺少具体实现解决方案应该是添加logback-classic依赖,因为Spring Boot默认使用Logback作为日志实现。修改加上了这个依赖结果就是又出现了这一堆的bug。

2024-12-20 13:17:19 1409

空空如也

空空如也

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

TA关注的人

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