自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

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

原创 Day 28:Spring Security 与 OAuth 2.0

OAuth 2.0 认证服务器:Spring Security OAuth 提供了认证服务器的相关配置,帮助你搭建基于 OAuth 2.0 的认证与授权服务。授权码流程:通过授权码流程保护应用资源,并使 OAuth 客户端能够通过令牌获取访问权限。Spring Security 配置:通过类配置授权服务器,定义了TokenStore和来管理令牌和客户端。

2025-01-13 15:45:00 1618

原创 Day 27:分布式缓存与 Redis

理论掌握分布式缓存的作用与 Redis 的基本概念。缓存穿透、缓存雪崩、缓存击穿的解决方案。实践收获使用 Spring Boot 集成 Redis,实现数据的缓存。通过实现缓存的增删查操作。进一步扩展学习 Redis 的高级特性,如事务、Lua 脚本和分布式锁。在实际项目中结合 Redis 哨兵模式或集群部署,提升可用性和性能。

2025-01-09 10:15:00 878

原创 Day 26:消息队列与 RabbitMQ

理论掌握RabbitMQ 是一个功能强大的消息队列工具,支持多种消息传递模式。通过解耦、异步处理和流量削峰,提高了系统的扩展性和稳定性。实践收获使用 Spring Boot 快速集成 RabbitMQ,实现消息的发送和接收。学习了队列、交换机、绑定关系的配置和使用。进一步扩展探索其他消息传递模式,如Fanout和Topic。结合消息确认机制和重试策略,处理消费失败的场景。

2025-01-08 10:45:00 710

原创 Day 25:Spring Cloud Config 和 Spring Cloud Gateway

提供了一个集中的配置管理系统,支持从 Git 仓库或本地文件加载配置。客户端应用可以在启动时自动从配置服务器获取配置信息,支持动态配置更新。:是一个 API 网关,主要用于路由请求、负载均衡和权限控制等功能。通过配置文件可以定义路由规则,并且可以通过过滤器进行请求的预处理和后处理。实践操作配置 Spring Cloud Config Server,使用 Git 或本地文件作为配置源,客户端应用自动获取配置。

2025-01-07 11:15:00 1110

原创 Day 24:微服务架构与 Spring Cloud 入门

微服务架构:将应用拆分成多个独立的服务,每个服务专注于一项特定功能,通过轻量级通信机制进行互相调用。提供了一系列的组件,帮助开发者简化微服务架构的实现。Eureka提供了服务注册和发现,Ribbon提供了客户端负载均衡,Hystrix实现了断路器模式,确保服务的高可用性。实践操作:通过创建一个简单的 Eureka 服务注册中心,并使用 Ribbon 实现客户端负载均衡,可以轻松构建微服务架构。

2025-01-06 15:45:00 1215

原创 Day 23:接口文档与 Swagger

Swagger是一个强大的工具,用于生成 API 文档和测试 API,它简化了 API 文档的维护和接口测试过程。通过使用@Api和@ApiParam等注解,可以在代码中为每个接口提供详细的描述,并生成交互式文档。集成 Swagger 的步骤包括添加依赖、配置 Swagger 和启用 UI,帮助开发者轻松生成和查看接口文档,方便与前端团队协作。

2025-01-03 15:15:00 502

原创 Day 22:数据库与 Spring Data JPA

本文介绍了 Spring Data JPA 的基础知识和应用,通过 H2 数据库配置、实体类定义、Repository 使用和 RESTful 接口开发,展示了如何快速实现用户管理系统。通过 Spring Data JPA,开发者可以简化数据库操作,专注于业务逻辑开发。

2025-01-02 10:45:00 431

原创 Day 21:Spring MVC 与接口开发

Spring MVC 是 Java Web 开发的核心框架,提供了灵活的注解支持和高效的请求处理能力。本文介绍了 Spring MVC 的工作流程和常用注解,如 @RestController 和 @RequestMapping,并通过用户管理 API 的实践操作,展示了如何开发 RESTful 接口。通过本文的学习,读者能够熟练掌握 Spring MVC 的基础知识,并在项目中快速实现接口开发。

2024-12-31 10:15:00 438

原创 Day 20:日志管理与 Logback

日志是 Java 开发中不可或缺的一部分,用于调试、监控和优化系统性能。本文深入介绍了 Logback 日志框架的理论知识和实践操作,包括日志级别、配置文件的编写、日志输出格式及文件分割策略。在实践部分,通过 Spring Boot 项目示例,展示了如何配置 Logback 记录日志并按日期分割文件。学习本篇内容后,开发者能够高效地管理项目日志,为系统运行的稳定性和可维护性提供保障。

2024-12-30 19:15:00 693

原创 Day 19:Spring Boot 入门

Spring Boot 是一个简化 Spring 应用开发的框架,通过自动配置、嵌入式服务器和 Starter 模块,显著提升了开发效率。本文介绍了 Spring Boot 的核心概念和注解,详细展示了通过 Spring Initializr 创建项目的过程,并实现了一个简单的 RESTful API。通过本次学习,开发者能够快速上手 Spring Boot,为构建现代化微服务架构打下基础。

2024-12-27 15:15:00 185

原创 Day 18:单元测试与 JUnit

本篇文章介绍了单元测试的核心概念及其在 Java 开发中的应用。单元测试是验证代码功能正确性的关键工具,能够提高代码质量并支持快速重构。文章详细讲解了 JUnit 的核心注解(如 @Test、@Before、@After)和常用断言方法(如 assertEquals、assertThrows),并通过一个字符串工具类的测试实例展示了如何编写和运行单元测试。

2024-12-26 10:45:00 292

原创 Day 17:MyBatis 框架基础

MyBatis 是一个高效的持久层框架,通过 XML 或注解管理 SQL,简化数据库操作。核心内容包括 mybatis-config.xml 配置文件的使用、Mapper 文件定义以及动态 SQL(如 和 )的应用。在实践中,使用 MyBatis 实现了一个学生成绩管理系统,支持按条件查询学生信息。

2024-12-25 14:15:00 138

原创 Day 16:数据库操作与 JDBC

通过本节学习,你将能够熟练使用 JDBC 操作数据库,为后续学习 ORM 框架(如 Hibernate 或 MyBatis)奠定基础。

2024-12-24 10:45:00 286

原创 Day 15:Spring 框架基础

通过本节学习,你将掌握 Spring 的核心概念,并能基于注解实现依赖注入。这是理解 Spring 框架的基础,为后续学习 Spring MVC 和 Spring Boot 奠定了良好基础。

2024-12-23 15:45:00 497

原创 Day 14:注解与自定义注解

自定义注解可以帮助开发者在代码中增加元数据,并通过反射进行解析,实现特定功能。

2024-12-20 14:15:00 418

原创 Day 13:Java 泛型与反射

泛型使得 Java 类、接口或方法能够操作指定类型的数据,而不必在编译时指定具体的类型。例如,

2024-12-19 10:00:00 330

原创 Day 12:HTTP 编程与 RESTful API

是 Java 提供的用于发送 HTTP 请求的原生类。通过它可以进行 HTTP 请求和响应处理,支持 GET、POST、PUT、DELETE 等常见 HTTP 方法。更简洁、更强大的 API 和功能。它们通常支持连接池、异步请求、自动重定向、自动处理 cookies 等功能。我们将使用公开的天气 API 进行查询,解析返回的 JSON 数据并展示天气信息。是流行的第三方库,提供了比。

2024-12-18 10:45:00 400

原创 Day 11:网络编程基础

客户端代码:发送消息并接收服务端响应。服务端代码:接收客户端消息并响应。

2024-12-17 20:00:00 152

原创 每日小知识

提交任务给线程池可以使用execute()方法或submit()方法,其中execute()方法用于提交不需要返回结果的任务,submit()方法用于提交需要返回结果的任务。线程池是Java中用来管理并发执行的线程的工具类,它能够在需要时重用线程,避免了频繁创建和销毁线程的开销,提高了程序的性能。线程池的生命周期包括:创建、运行、关闭。线程池的核心参数包括核心线程数、最大线程数、任务队列、线程空闲时间等。线程池会根据任务的数量和线程池的参数来确定是创建新线程、重用已有的线程,还是将任务放入队列中等待执行。

2024-12-12 15:52:58 257

原创 Day 10:线程池与并发工具类

本篇内容围绕 Java 线程池与并发工具类 的使用展开,重点介绍了线程池的好处与常见使用场景,深入讲解了 CountDownLatch 和 Callable/Future 并发工具类的应用,并结合实际案例展示了线程池的优势和工具类的使用方法。

2024-12-12 15:44:01 337

原创 每日小知识

步骤2:创建 Swagger 配置类 在 Spring Boot 应用程序的源代码中创建一个 Swagger 配置类,用于配置 Swagger 的基本设置和 API 文档的详细信息。步骤4:使用 Swagger 注解 在控制器类的每个方法上使用 Swagger 注解,以描述 API 的操作和参数信息。以上就是在 Spring Boot 应用程序中接入 Kni4j(Swagger)的基本概念和使用方式的介绍和示例代码。步骤3:启用 Swagger 修改主应用程序类,使用。注解启用 Swagger。

2024-12-11 10:05:56 227

原创 Day 9:多线程基础

本文系统讲解了 Java 多线程基础知识,包括线程的创建方式(继承 Thread 类与实现 Runnable 接口)及其优劣对比,常见线程方法如 start()、sleep() 和 join() 的使用,并介绍了线程的生命周期管理。通过实现一个数字与字母交替打印的实战案例,重点展示了如何使用 synchronized 和 wait()/notify() 实现多线程协作,为开发高效并发程序奠定了基础。文章内容理论与实践结合,适用于 Java 初学者和并发编程入门者。

2024-12-10 17:12:57 336

原创 每日小知识

Spring Boot支持多种类型的配置文件,包括.properties文件、.yaml文件、.yml文件等。.yaml/.yml文件:这是一种基于缩进的配置文件格式,采用类似于Python的语法结构,通过缩进来表示层级关系。不同的配置文件有一些区别,主要体现在语法上和文件格式上。以上是Spring Boot配置文件不同之处和优先级的简要介绍,具体情况还可以根据具体的应用场景来进行定制和调整。.properties文件:这是一种基于键值对的配置文件格式,使用等号(=)或冒号(:)将键和值分隔。

2024-12-10 14:24:46 253

原创 Day 8:序列化与反序列化

本文重点介绍了 Java 中序列化与反序列化的概念、用途及其在实际开发中的应用。通过实现代码,详细阐述了如何使用 Serializable 接口和 ObjectOutputStream/ObjectInputStream 进行对象的存储和恢复。讨论了 transient 关键字在敏感数据保护中的作用,以及 serialVersionUID 用于版本控制的必要性。同时,通过示例展示了序列化多个对象的实现方式,帮助开发者掌握序列化的核心知识和实践技巧,为处理复杂数据存储和传输问题提供了可靠的解决方案。

2024-12-09 10:48:23 351

原创 每日小知识

Kafka是一个分布式流平台,具有高性能、高可靠性和可扩展性的特点。它主要用于处理实时的数据流,将数据以高吞吐量的方式进行发布和订阅。总之,Kafka是一个可靠、高性能和可扩展的分布式流平台,适用于处理实时的大数据流。它的设计目标是提供低延迟、高吞吐量和持久性的消息传递服务。

2024-12-06 17:48:11 235

原创 Day 7:文件与 IO 操作

本文介绍了 Java 文件与 IO 操作的核心内容,包括 File 类的常用方法(如文件创建、属性获取等)、字节流与字符流的使用场景及其区别,并通过示例代码展示了 FileInputStream、FileOutputStream、BufferedReader 和 BufferedWriter 的具体用法。最后,通过实现一个文件复制程序,演示了如何高效地进行文件读写操作。这些内容在日常开发中非常实用,特别是在处理文件操作和优化数据流时。

2024-12-06 11:04:28 162

原创 每日小知识

确保分支稳定并测试通过:在合并分支之前,应该确保分支上的代码功能完整并通过了测试,以避免将未完成或有问题的代码合并到主分支中。以上是 Git 的基本概念和使用方式的简要介绍,Git 还有更多的功能和命令,可以根据实际需要进行学习和使用。提交变更:如果一切正常,将合并后的代码提交到主分支,使用git push命令将代码推送到远程仓库。如果合并后的代码导致主分支出现问题,应该及时回滚或修复,以避免影响其他开发人员的工作。合并分支后,应该及时清理和删除不再需要的分支,以保持代码仓库的整洁。

2024-12-05 16:37:28 528

原创 Day 6:Java 时间与日期 API

本文介绍了 Java 新版时间与日期 API,包括核心类 LocalDate、LocalTime 和 LocalDateTime 的使用,详细讲解了日期格式化工具 DateTimeFormatter 以及时间的加减与比较操作。通过与旧版 Date 和 Calendar 的对比,突出新版 API 的直观性与安全性。最后,通过实现一个生日提醒功能,将理论知识应用于实践,展示了如何计算距离下次生日的天数。这些内容帮助开发者在实际工作中高效处理日期和时间相关问题。

2024-12-05 10:48:55 216

原创 每日小知识

总之,Docker提供了一种轻量级、灵活和可移植的容器化解决方案,可以大大简化应用程序的开发、部署和管理过程。这意味着开发者可以在自己的开发机上构建和测试应用程序,然后将其部署到生产服务器上,无需考虑环境的差异。打包和部署应用程序:开发人员可以将应用程序和其依赖项打包到Docker镜像中,并将其部署到任何支持Docker的环境中,无需担心环境差异和依赖项的问题。灵活性:Docker可以让开发者将应用程序和其依赖项打包到一个容器中,确保应用程序在任何环境中都能一致运行,无需担心环境差异导致的问题。

2024-12-04 17:30:08 230

原创 Day 5:字符串操作

本文介绍了 Java 中字符串操作的核心知识,包括 String 的不可变性、常量池机制,以及 StringBuilder 与 StringBuffer 的区别。同时,涵盖了字符串的常用操作方法和实际应用,配以完整代码示例,帮助开发者高效解决字符统计、字符串反转和替换问题。

2024-12-04 15:04:33 357

原创 每日小知识

总的来说,使用RESTful API构建web应用程序需要定义资源、URI和操作,并根据HTTP方法处理请求,发送响应。测试和文档化API:通过测试工具(如Postman)来测试API的各个端点和功能,并编写API文档,方便其他开发者使用。选择合适的HTTP方法:根据要进行的操作选择适当的HTTP方法,如GET、POST、PUT、DELETE等。处理请求和响应:根据请求的HTTP方法和URI,执行相应的操作,并返回适当的响应。设计API资源:明确需要提供的资源和它们的标识符,以及对资源的操作。

2024-12-03 18:12:15 210

原创 Day 4:异常处理

本文介绍了 Java 异常处理机制,包括异常的分类(检查异常、运行时异常、自定义异常)及其应用场景,重点讲解了 try-catch-finally 和 throws 的使用方法。通过代码实践,展示了文件操作、业务逻辑校验等典型场景下的异常处理方式,为编写健壮的 Java 应用奠定基础。

2024-12-03 11:06:19 344

原创 Day 3:Java 集合框架(高级集合)

本文探讨了 Java 高级集合(HashSet、TreeSet 和 ConcurrentHashMap)的特性、适用场景及性能优化建议。通过示例代码展示其用法,并对不同集合在单线程和多线程环境下的性能进行了比较分析,选择合适的集合提供了实践指导。

2024-12-02 14:59:14 298

原创 Dify接入Geek-AI步骤

本文详细分析了在项目中接入 Dify 和 Geek AI 的实现过程,涵盖了从 API Key 管理、消息发送到响应处理及数据存储的全流程。通过设计灵活的请求路由和高效的错误处理机制,确保系统在处理不同模型的请求时保持稳定性和可扩展性。文中实现思路仅为众多方法中的一种,代码实现可能存在不够规范或有待优化之处。希望本文能为您提供一定的参考价值,恳请各位读者多多指正,共同探讨和进步。

2024-12-02 10:20:38 1633

原创 Day 2:Java 集合框架(List 和 Map)

本文重点讲解了 Java 中 List 和 Map 的基本操作及其在实际开发中的应用。通过详细对比 ArrayList 和 LinkedList 的特点,介绍了适合不同场景的集合选择。同时,展示了多种循环遍历方法,以及 HashMap 的键值对操作,帮助开发者在日常工作中高效地处理数据。

2024-11-28 16:22:58 425

原创 Day 1:面向对象复习强化

本文详细介绍了Java中 this 和 super 关键字的概念及其用法。this 用于引用当前对象,常用于访问当前类的成员变量、调用本类的方法或构造方法。super 用于引用父类对象,主要用于访问父类的成员变量、调用父类的方法或构造方法。通过示例代码,展示了这两个关键字在实际开发中如何帮助实现继承、多态以及代码复用。总结部分对二者的区别与应用场景进行了概括。

2024-11-27 15:56:40 332

原创 Dify 本地部署指南

本指南介绍了 Dify 的本地部署流程,包括克隆代码、配置环境变量、启动中间件服务(PostgresSQL、Redis、Weaviate)和选择后端与前端的启动方式(源码或 Docker)。完成部署后,后端 API 服务将运行在 http://localhost:5001,前端界面可通过 http://localhost:3000 访问,为用户提供完整的应用支持。

2024-11-07 17:39:38 5734 1

原创 若依框架(前后端分离)增加手机号验证码登录

本文介绍了如何在若依框架的前后端分离版本中实现短信验证码登录功能,详细描述了后端生成验证码、发送短信、验证验证码的代码实现,以及前端如何配合完成登录操作。这为项目增加了更安全的登录方式,适用于需要提升用户认证安全性的系统。

2024-09-01 15:02:31 1839

原创 若依框架(前后端分离)集成腾讯云COS指南

这篇文章详细介绍了如何在若依框架中集成腾讯云COS(Cloud Object Storage)服务,以实现文件的持久化存储和访问。文章通过步骤化的指引,帮助开发者在若依框架中引入腾讯云COS依赖、配置COS参数、编写配置类和工具类、以及修改前后端的图片上传方法。整个流程包括引入COS依赖、在配置文件中设置COS的必要参数、编写配置类和工具类进行文件上传操作,最后在前后端分别调整上传方法以适配腾讯云COS。

2024-08-12 10:00:00 1176

原创 分布式事务问题

在分布式系统中,系统间的网络不能100%保证健康,一定会有故障的时候,而服务有必须对外保证服务。因此Partition Tolerance不可避免。当节点接收到新的数据变更时,就会出现问题了:如果此时要保证一致性,就必须等待网络恢复,完成数据同步后,整个集群才对外提供服务,服务处于阻塞状态,不可用。如果此时要保证可用性,就不能等待网络恢复,那node01、node02与node03之间就会出现数据不一致。也就是说,在P一定会出现的情况下,A和C之间只能实现一个。

2024-01-06 10:15:00 1012

空空如也

空空如也

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

TA关注的人

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