- 博客(70)
- 收藏
- 关注
原创 【深入理解 SpringBoot3】第一弹:SpringBoot3 快速入门
SpringBoot 帮我们简单、一个独立的、生产级别的大多数 SpringBoot 应用只需要编写少量配置即可快速整合 Spring 平台以及第三方技术。特性:直接嵌入Tomcat、Jetty 或 Undertow(无需部署war包)提供可选的 starter(场景启动器) 简化应用的整合实现按需的自动配置Spring以及第三方库(约定大于配置):application.properties提供生产级别的特性:如监控指标、健康检测、外部化配置:可以通过修改配置文件实现。
2025-03-23 09:03:37
764
4
原创 【Spring】第三弹:基于 XML 获取 Bean 对象
由于 id 属性指定了 bean 的唯一标识,所以根据 bean 标签的 id 属性可以精确获取到一个组件对象。1.类型相同名称不同的多个Bean对象,可以通过名称的不同查找到对象。3.建议根据 名称+类型 的方式进行Bean对象的查找。获取Bean对象的方式需要确保获取对象的唯一性。2.通过名称获取 Bean 对象。
2025-03-18 23:46:18
305
1
原创 【Spring】第二弹:通过反射机制初步理解 IoC
反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法;对于任意一个对象,都能够调用它的任意方法和属性;这种动态获取信息以及动态调用对象方法的功能称为。
2025-03-17 23:46:12
557
1
原创 【Spring】第一弹:Spring的入门
Spring 是一款主流的 Java EE 轻量级开源框架 ,Spring 由“Spring 之父”Rod Johnson 提出并创立,其目的是用于简化 Java 企业级应用的开发难度和开发周期。Spring的用途不仅限于服务器端的开发。Spring 特指 Spring Framework,通常我们将它称为 Spring 框架。Spring 框架是一个分层的、面向切面的 Java 应用程序的一站式轻量级解决方案,它是 Spring 技术栈的核心和基础,是为了解决企业级应用开发的复杂性而创建的。
2025-03-17 23:21:50
645
2
原创 【云原生技术】编排与容器的技术演进之路
此时 K8s 只是编排领域的一个选择,而 Docker 此时一家独大,所以 K8s 的客户端只是作为 Docker 的客户端来调用 Docker 引擎来完成服务。
2025-03-15 23:56:46
318
2
原创 【前端三剑客】万字总结JavaScript
浏览器分成两部分:渲染引擎和 JS 引擎渲染引擎:用来解析HTML与CSS,俗称内核,比如 chrome 浏览器的 blink ,老版本的 webkitJS 引擎:也称为JS 解释器。用来读取网页中的JavaScript代码,对其处理后运行,比如 chrome 浏览器的 V8浏览器本身并不会执行JS代码,而是通过内置 JavaScript 引擎(解释器) 来执行 JS 代码。JS 引擎执行代码时逐行解释每一句源码(转换为机器语言),然后由计算机去执行,所以 JavaScript 语言归为脚本语言,会。
2025-03-14 23:42:51
1433
1
原创 【Python基础齐发】实现一个学生管理系统
为了能够更好的部署到其他主机上, 可以借助 pyinstaller 来把 Python 程序打包成 exe 程序.2. 执行文件 pyinstaller --console --onefile 文件名(不可有中文路径和空格)当前虽然已经实现了一个管理系统, 但是 .py 的文件只能在安装了 Python 环境的机器上运行.生成的可执行文件在第二步的文件名中的dist下。-F 表示打包成单个 exe (不带动态库)之后重新启动pyCharm就可解决。
2025-03-14 23:39:03
221
原创 【Linux指北】Linux的重定向与管道
FHS本质:是一套规定Linux目录结构,软件建议安装位置的标准。(使用Linux来开发产品或者发布软件的公司、个人太多,如果每家公司或者个人都按照自己的意愿来配置文件或者软件的存放位置,这无疑是一场灾难!
2025-03-13 23:47:27
944
1
原创 【Linux 指北】常用 Linux 指令汇总
前言:📕作者简介:热爱编程的敖云岚,致力于C、Java、Python等多编程语言,热爱编程和长板的运动少年!📘相关专栏Java基础语法,JavaEE初阶,数据库,数据结构和算法系列等,大家有兴趣的可以看一看。😇😇😇有兴趣的话关注博主一起学习,一起进步吧!
2025-03-13 23:46:09
1469
1
原创 【Python基础齐发】你不知道的文件操作
变量是把数据保存到内存中. 如果程序重启/主机重启, 内存中的数据就会丢失.要想能让数据被持久化存储, 就可以把数据存储到硬盘中. 也就是在 文件 中保存.在 Windows "此电脑" 中, 看到的内容都是 文件.
2025-03-12 23:29:04
742
原创 【Python基础齐发】:Python字的概念
啥是键值对?这是计算机/生活中一个非常广泛使用的概念.把 键(key) 和 值(value) 进行一个一对一的映射, 然后就可以根据键, 快速找到值.
2025-03-11 22:37:44
401
原创 【Python基础齐发】:Python你不知道的列表和元组
编程中, 经常需要使用变量, 来保存/表示数据,如果代码中需要表示的数据个数比较少, 我们直接创建多个变量即可。
2025-03-11 22:36:40
936
原创 逐梦DBA:解决Linux下MySQL远程登录报错
Host列指定了允许用户登录所使用的IP,比如user=rootHost=192.168.1.1。而%是个通配符,如果Host=192.168.1.%,那么就表示只要是IP地址前缀为“192.168.1.”的客户端都可以连接。如果Host=% ,表示所有IP都有连接权限。注意:在生产环境下不能为了省事将host设置为%,这样做会存在安全问题,具体的设置可以根据生产环境的IP进行设置。或Navicat中配置远程连接Mysql数据库时遇到如下报错信息,这是由于Mysql配置了不支持远程连接引起的。
2025-03-10 16:50:16
437
原创 逐梦DBA:Linux下MySQL字符集的处理
在MySQL 8.0版本之前,默认字符集为latin1 ,。网站开发人员在数据库设计的时候往往会将编码修改为utf8字符集。如果遗忘修改默认的编码,就会出现乱码的问题。从MySQL8.0开始,数据库的默认编码将改为utf8mb4 ,从而避免上述乱码的问题。
2025-03-10 16:46:59
574
原创 逐梦DBA:Linux版本 MySQL的安装
说明: --initialize 选项默认以“安全”模式来初始化,则会为 root 用户生成一个密码并将该密码标记为过期,登录后你需要设置一个新的密码。检查/tmp临时目录权限:由于mysql安装过程中,会通过mysql用户在/tmp目录下新建tmp_db文件,所以请给/tmp较大的权限。通过 mysql -hlocalhost -P3306 -uroot -p 进行登录,在Enter password:录入初始化密码。修改密码:因为初始化密码默认是过期的,所以查看数据库会报错。启动MySQL,查看状态。
2025-03-09 20:28:31
541
原创 逐梦DBA:Linux环境下 MySQL 的卸载
查看是否安装过MySQL,如果不存在,则不显示任何内容。查看当前 mysql 卸载状况。卸载上述命令查询出的已安装程序。删除 mysql 相关文件。查看MySQL服务状态。关闭 mysql 服务。
2025-03-09 20:24:39
258
原创 探索未知地图之【大数据概述】
相对于以往便于存储的以数据库/文本为主的结构化数据,非结构化数据越来越多,包括网络日志、音频、视频、图片、地理位置信息等,这些多类型的数据对数据的处理能力提出了更高要求。,是需要新处理模式才能具有更强的决策力、洞察发现力和流程优化能力的海量、高增长率和多样化的信息资产。房产:大数据全面助力房地产行业,打造精准投策与营销,选出更合适的地,建造更合适的楼,卖给更合适的人。零售:分析用户消费习惯,为用户购买商品提供方便,从而提升商品销量。金融:多维度体现用户特征,帮助金融机构推荐优质客户,防范欺诈风险。
2025-03-08 21:50:53
195
1
原创 逐梦DBA:基本的SELECT语句
一个空字符串的长度是 0,而一个空值的长度是空。字符串型和日期时间类型的数据可以使用单引号(' ')表示列的别名,尽量使用双引号(" "),而且不建议省略as。空值:null ,需要注意的是所有运算符或列值遇到null值,运算的结果都为null(null ≠ 0)。Type:表示字段类型,这里 barcode、goodsname 是文本型的,price 是整数类型的。关键字、函数名、列名(或字段名)、列的别名(字段的别名) 是忽略大小写的。Default:表示该列是否有默认值,如果有,那么值是多少。
2025-03-08 17:52:18
1522
原创 逐梦DBA:MySQL目录结构与源码
找到“Source Code”,在下面的操作系统版本里面, 选择 Windows(Architecture Independent),然后点。首先,你要进入 MySQL下载界面。这里你不要选择用默认的“Microsoft Windows”,而是要通过下拉栏,mysys 子目录是操作系统相关函数和辅助函数;libmysql 子目录是客户端程序 API;sql 子目录是 MySQL 核心代码;mysql-test 子目录是测试工具;
2025-03-07 21:12:24
432
原创 逐梦DBA:MySQL图形化管理工具
该工具可以方便地创建数据库、表、视图和索引等,还可以方便地进行插入、更新和删除等操作,同时可以方便地进行数据库、数据表的备份和还原。DBeaver是一个通用的数据库管理工具和 SQL 客户端,支持所有流行的数据库:MySQL、PostgreSQL、SQLite、Oracle、DB2、SQL Server、 Sybase、MS Access、Teradata、 Firebird、Apache Hive、Phoenix、Navicat MySQL是一个强大的MySQL数据库服务器管理和开发工具。
2025-03-07 20:55:09
377
原创 逐梦DBA:MySQL的编码设置
注意:建议修改配置文件使用notepad++等高级文本编辑器,使用记事本等软件打开修改后可能会导致文件编码修改为“含BOM头”的编码,从而服务重启失败。此时编码修改成功后,由于之前的数据库依旧使用的是拉丁的编码方式。我们可以删除该数据库后重新创建,即为修改后的字符集。MySQL 8.0 开始,数据库的默认编码改为utf8mb4 ,从而避免了上述的乱码问题。找到 MySQL的数据存储下的 my.ini 文件,添加下面的内容。如果我们没有显示指定库或表使用的字符集,则使用默认的字符集。重启 MySQL 服务。
2025-03-06 21:39:50
390
1
原创 逐梦 DBA:MySQL的下载、安装和配置(超详细)
需付费,不能在线下载,可以试用30天。提供了更多的功能和更完备的技术支持,更适合于对数据库的功能和可靠性要求较高的企业客户。用于架设集群服务器,可将几个MySQL Server封装成一个Server。配置的目的:确保我们可以通过 cmd 窗口以命令的方式登录 MySQL和识别相关的命令。一台电脑是可以安装多个MySQL服务器的,只需要保证端口号不冲突即可。,开源免费,自由下载,但不提供官方技术支持,适用于大多数普通用户。进入安装目录的 bin 目录,复制路径。配置密码加密方式:两种方式任选一种。
2025-03-06 08:00:00
1087
2
原创 逐梦 DBA:盘点MySQL的各种登录方式
开始菜单 → 所有程序 → MySQL → MySQL 8.0 Command Line Client。如果当你输入命令后,提示“拒绝服务”,请以系统管理员身份打开命令提示符界面重新尝试。start和stop后面的服务名应与之前配置时指定的服务名一致。# 在CMD中输入如下命令进行登录。完整版:指定端口号和IP地址。确保当前服务为启动状态。点击后输入密码进行登录。
2025-03-05 18:32:06
240
原创 逐梦 DBA:本地 MySQL 的卸载
卸载MySQL8.0的程序可以和其他桌面应用程序一样直接在“控制面板”选择“卸载程序”,并在程序列表中找到MySQL8.0服务器程序,直接双击卸载即可,如图所示。”组合键,打开“任务管理器”对话框,可以在“服务”列表找到“MySQL8.0”的服务,如果现在“正在运行”状态,可以右键单击服务,选择“停止”选项停止MySQL8.0的服务,如图所示。如果想要同时卸载MySQL8.0的安装向导程序,勾选“Yes,Uninstall MySQL Installer”即可,如图所示。避免之前服务卸载不干净存在问题。
2025-03-05 10:00:00
1804
1
原创 逐梦 DBA:从数据库概述出发
一个实体集(class)对应于数据库中的一个表(table),一个实体(instance)则对应于数据库表中的一行(row),也称为一条记录(record)。列式数据库是相对于行式存储的数据库,Oracle、MySQL、SQL Server 等数据库都是采用的行式存储(Row-based),而列式数据库是将数据按照列存储到数据库中,这样做的好处是可以大量降低系统的 I/O(行式存储查询时可能存在冗余字段,列式存储如果查询特定字段有效减少查询次数),适合于分布式文件系统,不足在于功能相对有限。
2025-03-04 19:33:30
770
原创 Java中的异步和非阻塞操作有什么区别?
在Java中,同步可以像普通的函数的调用,而异步可能需要使用Future或者CompletableFuture来处理。:同步是指任务按顺序执行,执行完一个任务后在执行下一个任务,不能同时执行。:阻塞是指调用一个操作时,当前线程会被挂起,直到操作完成。:任务可以同时进行,不需要等待前一个任务执行完成。:调用后立即返回,线程可以继续做其他事情。
2025-02-18 08:00:00
122
原创 多线程的daemon使用时的注意事项
首先我们需要知道的是 daemon:当子进程被设置为守护进程时,主进程结束,不管子进程是否执行完毕,都会随着 主进程的结束而结束。从运行结果我们可以看出:子线程还未执行完成,但是由于我们已经将子线程设置为后台守护线程,所以当用户线程结束时,子线程跟着结束了。在上述代码的编写中,我们需要注意的是:1. 设置守护线程的方法必须在调用 start 方法前执行,否则就会抛出异常。
2025-02-17 08:00:00
207
原创 线程进入WAITING的N种方式
从输出结果可以看出,线程通过调用 start 方法启动后,通过执行 run 方法的代码逻辑进入 WAITING状态,1秒后通过调用 notify 方法对该线程进行唤醒后,线程进入 BLOCKED 状态。通过调用 concurrent 并发编程包下的 park 方法使子线程进入 WAITING状态,然后通过 unpark 方法唤醒 thread 线程。线程会进入什么状态呢?由于子线程在休眠,观察到主线程刚好处于 WAITING 状态。方法时,线程会进入 TIMED_WAITING。在Java中,当线程调用。
2025-02-16 20:04:44
299
原创 SQL 注入大揭秘:黑客如何利用它撬动数据安全防线
SQL注入:是指针对 Web 应用使用的数据库,通过运行非法的 SQL 而产生的攻击。该安全隐患有可能引发极大的威胁,有时会直接导致个人信息及机密信息泄露。
2024-12-08 20:58:56
348
原创 C++ 变量和常量:开启程序构建之门的关键锁钥与永恒灯塔
使用 #define 定义常量的时候是不关注类型的,只关注常量的名字叫啥,常量的值是啥,编译在处理这种常量的时候就是直接替换,在出现常量名字的地方,通通替换成常量的内容。除了上面的方式之外,C++中还可以使用 const 来定义常量,这种常量会有具体的类型。比#define 定义常量更加严谨。const 类型 常量名字 = 常量值;cin >> r;
2024-12-02 11:21:42
974
原创 C++ 刷题:以代码为剑,在算法题境中开辟王者之路
在 C++ 刷题的浩瀚征程中,我们将一同深入代码的奇妙世界。本系列记录犹如一幅详尽的编程地图,从基础语法的巧妙运用到复杂算法的深度剖析,每一篇都凝聚着解题的智慧结晶。跟随我们的脚步,见证一个个难题在 C++ 的强大力量下被攻克,无论是数据结构的精心构建,还是逻辑思维的极致挑战,都将一一呈现。这里不仅有清晰的解题思路与代码实现,更有对常见错误的精准规避和优化策略的深度探讨,助你在 C++ 刷题之路上快速成长,从众多编程爱好者中脱颖而出,成为算法与编程的卓越高手,开启属于自己的编程辉煌篇章。
2024-12-01 14:37:25
232
1
原创 探秘 SpringAOP:如何让程序在 “横切面” 上优雅起舞
通过对 SpringAOP 源码的深入剖析,我们仿佛揭开了其神秘面纱背后强大的运行机制。从核心概念的理解,到代理模式的巧妙运用,再到源码中各个关键组件的协同工作,我们见证了它如何在不修改原有业务逻辑代码的基础上,精准地切入横切关注点,如日志记录、事务管理、权限验证等。在未来的开发实践中,我们能够更加自信地运用 SpringAOP,充分发挥其优势,构建出高效、健壮且富有弹性的 Java 应用系统,让我们的编程之路在 SpringAOP 的助力下迈向新的高度,迎接更多复杂业务场景的挑战并从容应对。
2024-11-24 19:52:41
315
2
原创 探秘 toArray ():让集合与数组转换不再神秘
使用集合转数组的方法,必须使用集合的toArray(T[] array),传入的是类型完全一样的数组,大小就是list.size()。System.out.println("List的大小:"+ret.size());// 使用 toArray(T[] a) 方法,可以指定返回类型,返回结果为指定类型的数组。
2024-11-18 09:21:52
1245
1
原创 关于 subList 你不知道的事情
首先我们先介绍 subList的作用:获取 ArrayList 的子列表这段代码主要演示了ArrayList的使用以及subList后,对原列表进行修改所产生的影响。具体来说,它首先创建了一个包含整数0到9的ArrayList,然后从中获取了一个子列表(包含索引0到4的元素),接着输出了原列表和子列表的内容。具体的原因我们可以查看内部源码:然后我们查看 AbstractList 的源码:正确的使用方式:借助多态的特性ArrayList 的内部类 SubList,并不是 ArrayList ,而是。
2024-11-17 07:30:00
748
原创 探秘 Nacos 服务注册与发现:微服务领域的创新驱动
在Nacos中,用户可以通过两种方式实现服务实例的注册和发现:OpenAPI 的方式Nacos 提供的 SDK 方式此处将介绍通过 OpenAPI 的方式完成服务的注册和发现。
2024-11-16 19:54:32
503
1
原创 跟随 @Bean 生命周期源码,探秘 Spring 框架的神秘花园
使用同步块来确保在多线程环境下对mbd的后置处理操作的一致性。如果当前还没有经过后置处理(为false),则调用方法来应用合并后的 Bean 定义后置处理器。后置处理器可以对 Bean 定义进行进一步的修改、增强等操作....忽略。
2024-11-12 11:31:26
529
原创 @RestController 源码解读:解决 Web 开发中 REST 服务的疑难杂症
这里可以理解成,注解MyInterface2的value属性重写了注解MyInterface1的value属性,但重新的属性的返回类型必须相同。可以看出对于value这个属性来说,@Configuration注解中的值会重写@Component的value属性值,这有点像类之间的继承,子类可以重父类的方法。达到 @MyInterface1(value2="number1") 和 @MyInterface1(value1="number1") 的效果相同。JDK 17 引入 records 新特性。
2024-11-11 09:45:18
1285
2
空空如也
你是否经历过JVM常见的问题?
2025-03-22
TA创建的收藏夹 TA关注的收藏夹
TA关注的人