- 博客(70)
- 资源 (1)
- 收藏
- 关注
原创 Spring Boot 集成 JdbcTemplate(盘它!)
SpringBoot 整合 JdbcTemplate,看完还不会你别来打我。
2024-08-24 19:14:27 1951 1
原创 【已解决】java.lang.IllegalArgumentException: Name for argument of type [java.lang.Integer] not specified
java.lang.IllegalArgumentException: Name for argument of type [java.lang.Integer] not specified, and parameter name information not available via reflection.
2024-06-05 14:05:40 1187
原创 (2)探索 Spring AI - 实现聊天对话
Spring AI BOM 声明了特定版本的 Spring AI 所使用的所有依赖关系的推荐版本。相反,使用的 BOM 版本将决定所使用的依赖版本。流式聊天功能使得我们的应用能够提供更加动态和互动的用户体验,就像在使用 ChatGPT 时所体验到的那样。TIP:上面的 OpenAI API Key 我配置到了本地环境变量中,这也是一种推荐的做法来保证 API Key 不会泄漏。集成到 Spring Boot 应用中后,框架自动配置了一组 AI 客户端,使我们能够轻松地在应用中加入智能对话等功能。
2024-05-01 18:07:58 1424
原创 (1)探索 SpringAI - 基本概述
翻译:系统正确解释外部数据的能力,从这些数据中学习的能力,以及通过灵活的适应利用这些学习来实现特定目标和任务的能力。人工智能的发展经过了几个重要阶段,从早期的概念和实验室研究,到如今的广泛应用和商业化,AI 已成为科技领域的一个重要分支。起初,人们对于机器能否模拟人类智能持怀疑态度,但随着技术的不断进步,这些早期的概念如今已变为现实。在20世纪50年代和60年代,人工智能作为一个学术概念开始形成,那时的研究者设想通过编程来模拟人类思维。
2024-05-01 18:06:37 1407
原创 Docker 安装 Mongo
在你的宿主机上创建必要的目录来存储 MongoDB 的数据和配置文件。这样做可以保证即使容器被删除,数据也能得到保留。此外,为了增强安全性,你可以配置更复杂的认证选项,例如使用 X.509 证书等。这个文件可以用来设置 MongoDB 的运行参数,比如绑定的 IP 地址、端口号和安全设置等。:如果你的服务器有防火墙,请确保开放 27017 端口,以便可以远程访问 Mongo。使用以下命令来启动 MongoDB 容器,映射数据和配置文件到宿主机指定的目录。的 MongoDB 配置文件,并保存在。
2024-04-21 20:32:20 498
原创 Linux 安装 NVM + Node
使用 curl 或 wget 安装 NVM。,并将脚本添加到 shell 配置文件中 (TIP:安装脚本会克隆 NVM 仓库到。
2024-04-21 11:45:17 440
原创 Linux - Docker 安装 Nacos
如果你的服务器有防火墙,请确保开放 8848 和 9848 端口,以便可以远程访问 Nacos 控制台。:上述步骤是在单机模式下安装 Nacos。如果需要在生产环境中部署 Nacos 集群,请参考。:为了防止数据丢失,建议将 Nacos 的数据目录映射到宿主机的持久化存储中。,你应该能看到 Nacos 控制台的登录页面。默认的用户名和密码都是。
2024-04-21 11:07:07 1122
原创 Linux 安装 Docker +Docker Compose + cucker/get_command_4_run_container
TIP:下面演示的 Linux 系统为 CentOS 7.9。
2024-04-21 10:56:22 565
原创 SpringBoot 集成分布式任务调度 XXL-JOB【保姆级上手】
XXL-JOB 作为一款轻量级的分布式任务调度平台,凭借其高效、易用、可扩展的特性,已经在众多知名企业中获得了广泛的应用和认可。
2024-03-31 15:16:52 1186
原创 CentOS 7 定时任务 + Shell 脚本自动备份 MySQL 数据库(一次 Halo 建站数据库丢失的教训)
最近在通过 halo 搭建个人博客的是否,第二天醒来惊讶的发现自己的数据库没了!于是经过左思右想决定进行一些兜底处理,避免灾难的二次发生。
2024-02-24 15:50:36 1559 2
原创 Spring Boot 集成 API 文档 - Swagger、Knife4J、Smart-Doc
OpenAPI 规范(OAS),前身为 Swagger 规范,是一个强大的定义 RESTful API 属性的开放源规范。这个规范为 API 的路径、参数、响应、HTTP 方法等提供了一套详细的指南,从而标准化了 API 的描述方式。
2024-01-21 14:46:06 1529
原创 Spring Boot 整合支付宝实现在线支付方案(沙箱环境)
支付宝开放平台带来了突破性的便利——通过沙箱环境,个人仅需拥有支付宝账号,就能够测试并实现支付功能,大大简化了以往繁琐的步骤。
2024-01-13 18:21:44 2259 1
原创 mybatis.interceptor.exception.SqLValidateException:Ilegal SQL::......
更换 MySQL 版本、更换更通用的 SQL 内置函数、Google …进一步检验:换了一个基本查询试试会不会出现同样的问题,结果没啥卵用。描述:执行 SQL 没问题,应用代码报错 ⬇️。Why,望有缘人解惑。
2023-12-18 17:44:15 528
原创 SpringBoot 自动配置实现原理:这一次一定要整明白!
你曾经想过为什么在搭建一个 Spring Boot 项目时,它似乎自带一种魔法,能够为你自动完成大量的配置工作吗?那么,这一切是如何做到的呢?今天,我们来揭开这背后的秘密。
2023-09-27 23:37:39 345
原创 Spring Security 用了那么久,你对它有整体把控吗?
在本篇文章中,我们将探索 Spring Security 在基于 Servlet 的应用中的高级架构。这为我们后续的认证(Authentication)和授权(Authorization)内容打下坚实的基础。
2023-09-22 12:21:12 363
原创 Spring Security 超详细整合 JWT,能否拿下看你自己!
文章目录1.JWT 入门1.1 JWT 概念1.2 JWT 应用场景1.3 为何选择 JWT基于 Session 的传统认证基于 JWT 的认证1.4 JWT 的结构标头(Header)载荷(Payload)签名(Signature)1.5 RBAC (Role-Based Access Control)1.6 JWT 基本使用添加依赖生成 Token解析 Token2.Security 整合 JWT2.1 单独抽离 Security 模块添加相关依赖JWT 工具类JWT 相关配置JWT 登录授权过滤器自定
2023-08-31 18:41:11 9057 9
原创 Lombok 的正确使用姿势
在 Java 开发领域中,Lombok 插件已经成为一个非常流行的代码库。该插件让 Java 开发更加便捷、高效,因此提高了开发者的生产力。
2023-06-01 22:07:43 856 1
原创 MyBatis - 高级查询
MyBatis 允许你在几乎任何时候都使用自定义的来处理 SQL 语句的参数绑定以及结果映射。如果你有一个特定的数据类型需要做一些特殊的处理,你可以编写自定义的。
2023-06-01 20:04:50 1191
原创 MyBatis - MyBatis Generator
MyBatis Generator 是一款针对 MyBatis 或 iBATIS 设计的代码生成器,由 MyBatis 官方提供。它可以生成 MyBatis 的 Java 实体类、mapper.xml 文件以及对应的 Mapper 接口,极大地减少了开发人员手写 SQL 语句和映射实体类的工作量,提高了开发效率。
2023-06-01 20:04:08 1198
原创 MyBatis - CRUD 操作
从早期的 iBatis 开始,XML 的功能就已经十分齐全,而注解的方式则是后来才出现的。Spring Framework 为测试提供了强大的支持,在涉及数据库操作时,为了保证每个测试的运行不会对其他测试产生影响,它可以直接回滚测试中的操作,这也是默认的逻辑。在 MyBatis 中,我们对实体类没有什么要求,也无须添加特定的注解,各种映射都是通过 Mapper 接口来定义的。测试类可以使用同一套,但是需要进行一些修改,因为自增 ID 肯定不是之前的了,胖友自行进行单元测试。注解,也能达到同样的效果。
2023-06-01 20:03:26 867
原创 MyBatis - 动态 SQL
动态 SQL 是 MyBatis 提供的一个非常强大的功能,它可以让我们在运行时构建 SQL 语句。的 SQL 查询,并在查询中使用了 IF 条件语句。我们可以实现一些循环拼接 SQL 的逻辑,它一般用于循环遍历一个集合,然后将集合中的元素插入到 SQL 语句中,从而生成多条 SQL 语句。上面我们都是默认使用 MyBatis XML 映射的方式进行动态 SQL 的讲解,其实动态 SQL 也支持注解的方式。在上述代码中,我们将根据不同的条件动态构建 SQL 查询语句,从而实现动态 SQL 的效果。
2023-06-01 20:02:40 1678 2
原创 MyBatis - Spring Boot 集成 MyBatis
Spring Boot 官方没有提供 MyBatis Starter,但是 MyBatis 官方提供了 mybatis-spring-boot-starter 一站式启动器。从上面的版本要求,我们们也不难发现,在 Spring Boot 3.x 发布后,MyBatis Starter 也进行了兼容性适配,在 Spring Boot 3.x 项目中我们可以使用 mybatis-spring-boot-starter 3.x 的版本。,只需要和配置其它 Spring 数据库连接一样配置它就可以了。
2023-06-01 20:02:31 1417
原创 MyBatis - 简介
MyBatis 是一款优秀的 Java 持久化框架,它不同于 Hibernate 等 ORM 框架,MyBatis 更像是一款数据持久化的工具,而不是针对整个数据库,像 Hibernate 一样,自动创建对象关系映射。因此,MyBatis 在一些数据表结构比较复杂,或者需要很多特殊的 SQL 查询的应用场景下表现更加出色。MyBatis 支持自定义 SQL、存储过程以及高级映射。它免除了几乎所有的 JDBC 代码以及设置参数和获取结果集的工作。
2023-06-01 20:01:27 445
原创 Java 集合 - Collection 工具类
是 Java 提供的一个功能强大的工具类,专门用于处理各类集合,如 Set、List 和 Map。该工具类提供的各类静态方法为我们操作这些集合带来极大的便利。
2023-05-31 11:35:41 591
原创 Java 集合 - Set 接口
Set接口的定义非常简单。它本质上是一个Collection,但是要求该集合不能有重复的元素。换句话说,如果尝试将一个元素添加到Set中,而该元素已经存在于Set中,那么add方法将返回false,并且Set本身不会改变。Java为SetHashSet: 基于哈希表的Set实现,它不保证集合的迭代顺序;尤其是它不保证该顺序恒久不变。: 哈希表和链表实现的HashSet,具有可预知迭代顺序。TreeSet: 基于树(红黑树)的Set实现,按照元素的自然顺序进行排序,或者根据创建集合时提供的。
2023-05-27 20:01:07 1134
原创 Java 集合 - Map 接口
在日常生活和编程中,我们常常需要处理一种特殊的关系:一一对应的关系,如 IP 地址与主机名,身份证号与个人信息,系统用户名与系统用户对象等。这种关系被称为映射,在 Java 中,我们使用Map<K, V>接口来表达和处理这种关系。是一个在 Java 集合框架中用于存储键值对的接口。键和值是一一对应的,键用于唯一标识一个元素,值则是与该键关联的数据。通过键,我们可以非常快速地找到其对应的值,这就是映射的核心特性。相比于接口,Map<K, V>接口有着根本的区别。接口的实现类,如List<E>和Set<E>
2023-05-27 20:00:35 24089
原创 Java 集合 - Queue 接口
特性 / 类型LinkedListArrayDeque底层数据结构双向链表动态数组(环形)堆(Heap)顺序按照自然排序或比较器排序允许null元素是否否多线程安全否否否主要功能队列操作、栈操作、列表操作队列操作、栈操作优先级队列操作LinkedList:它是一个基于双向链表的实现,每个元素都包含前向和后向的链接,所以它的插入和删除操作通常都很快。它实现了List接口和Deque接口,因此它不仅可以用作队列,还可以用作栈或双端队列。LinkedList允许插入。
2023-05-27 20:00:19 1887
原创 Java 集合 - List 接口
在 Java 中,接口是 Java 集合框架中的一个接口,它继承自Collection接口,是单列集合的一个重要分支。List 接口的常见实现类包括ArrayListLinkedList和Vector。List有序性List中的元素是按照插入顺序排序的,因此可以很容易地遍历List中的元素。对于ArrayList,底层采用数组来存储元素,因此可以进行随机访问;对于LinkedList,底层采用链表来存储元素,因此只能进行顺序访问。可重复性List中允许出现重复元素。
2023-05-27 19:58:05 2366
原创 Java 集合 - 集合框架概述
例如,ArrayList 的迭代器实现中,指针指向当前元素的下标,每次调用 next() 方法时,返回当前下标对应的元素,并将下标加一。而 LinkedList 的迭代器实现中,则需要保存一个指向当前节点的引用,每次调用 next() 方法时,返回当前节点的值,并将指针指向下一个节点。它主要指的是,当多个线程同时修改一个集合时,如果一个线程正在通过迭代器遍历集合,而另一个线程修改了集合(如添加、删除或修改元素),那么正在遍历的线程会立即抛出。通常,在存在不同步的并发修改时,不可能对其进行坚决的保证。
2023-05-27 19:56:43 1820
原创 POE:性价比最高的 AI 整合网站
Poe 是一款同时整合了 ChatGPT、Sage、GPT-4、Claude+、Claude-instant 和 NeevaAI 的网站,也是目前笔者使用体验很不错的一个网站。以上的机器人除了 GPT-4(每天一次)和 Claude+(每天三次) 有使用次数限制以外,其余机器人均免费无限使用。
2023-05-09 17:07:56 51846 13
原创 Spring Boot 3.0.x 自动配置文件加载原理
本文我们基于 Spring Boot 3.0.6 一起看看 Spring Boot 自动配置文件加载的原理。
2023-05-02 19:36:31 1327
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人