- 博客(383)
- 收藏
- 关注
原创 神经网络基础
789,那么通过矩阵乘法 WxWxWx 得到的是 [1×7+2×8+3×94×7+5×8+6×9]=[50122]\begin{bmatrix} 1×7 + 2×8 + 3×9 \\ 4×7 + 5×8 + 6×9 \end{bmatrix} = \begin{bmatrix} 50 \\ 122 \end{bmatrix}[1×7+2×8+3×94×7+5×8+6×9]=[50122],这是一个 2 维向量,再加上 2 维的偏置项 bbb,例如 [23]\begin{bmatrix} 2 \\
2025-08-05 11:23:33
596
原创 掌握Docker自定义镜像
Dockerfile是一个纯文本文件,里面罗列着一系列指令,每一条指令都描述了镜像构建过程中的一个具体步骤。例如安装依赖、拷贝文件、配置环境等操作,都能通过这些指令来实现。Docker引擎会依照Dockerfile中的指令,按顺序执行,就像搭积木一样,每一层指令对应一层镜像,最终生成一个完整的镜像。通过这种方式,我们可以精确地定义镜像的每一层,从基础的操作系统,到应用所需的各种依赖,再到应用本身。
2025-08-04 17:08:15
419
原创 深入理解Docker数据挂载:保障容器数据持久化
匿名数据卷是Docker在容器创建时自动生成的一种“无名称数据卷”,主要用于映射容器内的关键目录,像MySQL的数据目录就常通过匿名数据卷映射。它最大的特点就是没有显式名称,而是通过随机字符串来标识,默认存储在宿主机的/var/lib/docker/volumes/[随机字符串]/_data路径下。本地目录挂载的语法为-v /宿主机绝对路径:容器内目录或./相对路径:容器内目录。例如,,这条命令将宿主机的目录映射到容器的目录。在使用Docker进行数据挂载时,要注意匿名数据卷和本地目录挂载的特点与区别。
2025-08-04 16:55:51
467
原创 Docker数据卷:解决容器文件管理难题
数据卷本质上是Docker所管理的“虚拟目录”,它在宿主机和容器之间搭建起了一座双向映射的桥梁,使得两者之间的文件能够实现高效交互。必须理解本质:要深入理解数据卷作为“虚拟目录”实现宿主机与容器目录映射的本质,这是掌握数据卷使用的基础。必须牢记命令:要牢记从创建到清理数据卷的一系列操作命令,特别是以及等常用命令,以及它们的使用场景和注意事项。必须掌握挂载:必须熟练掌握数据卷的挂载操作,包括挂载语法、自动创建机制以及同步验证方法,确保能够在实际应用中灵活运用数据卷解决问题。
2025-08-04 16:46:19
282
原创 Docker命令
镜像是Docker容器的模板,用户可以通过Dockerfile来定义镜像的内容,并通过命令构建镜像。FROM:指定基础镜像,所有镜像都基于某个基础镜像构建,例如,表示基于最新版的Ubuntu镜像构建。RUN:执行命令,用于在镜像构建过程中安装软件包、配置环境等。例如,在镜像构建时更新软件源并安装。CMD:设置容器启动时执行的命令。一个Dockerfile只能有一个CMD指令,若定义多个,只有最后一个会生效。例如"],指定容器启动时运行Nginx并以非守护进程模式运行。
2025-08-04 16:36:30
526
原创 探索Docker:开启高效部署新时代
官方定义:Docker是一款用于快速构建、运行和管理应用的工具。通俗解释:可以把Docker想象成一个“标准化集装箱”,它将应用程序以及该程序运行所需的所有依赖,如各种库文件、配置信息等,全部打包在一起。这样一来,无论将这个“集装箱”放到哪台服务器上,只要服务器安装了Docker,就可以像“即插即用”的设备一样,轻松运行其中的应用程序。与虚拟机的区别:和虚拟机相比,Docker更为轻量。
2025-08-04 12:13:31
542
原创 简述项目部署
在本地开发环境中,我们精心调试通过的前后端项目,就如同精心雕琢的艺术品。然而,要让其他用户能够通过网络访问,就必须跨越一道关键的桥梁——“部署”。部署,简单来说,就是将项目放置到服务器上,使其成为一个可供公众访问的服务。
2025-08-04 12:02:37
555
原创 Linux 系统中 Nginx 的安装与应用
在前端项目开发完成后,如何将其部署到服务器上供他人访问,成为了关键问题。Nginx 作为一款高性能的 Web 服务器,便是解决这一问题的理想答案。它不仅能够高效地托管静态资源,还具备反向代理、负载均衡等强大功能,是前端项目部署的首选工具。本文将详细讲解在 Linux 系统上从源码编译安装 Nginx 的完整流程,从下载安装包开始,一直到成功访问 Nginx 欢迎页面,每个步骤都配备了实战命令,确保你能够一次搞定 Nginx 的安装。
2025-08-04 11:41:56
652
原创 在 Linux 上安装 MySQL
许多 Linux 系统,如 CentOS,通常会预装 MariaDB(它是 MySQL 的一个分支)。如果直接安装官方 MySQL,会与预装的 MariaDB 产生版本冲突,导致安装失败。所以,为了成功安装目标版本的 MySQL,必须先卸载系统自带的 MySQL/MariaDB。
2025-08-04 11:28:11
432
原创 项目部署前的Linux基础与CentOS安装指南
在项目开发完成后,将其成功部署到服务器上运行是关键的一环。你知道吗?全球70%以上的服务器都在使用Linux系统。如果不懂Linux,项目部署就如同“空中楼阁”,难以落地实施。本文专为准备进行项目部署的朋友们量身打造,从Linux的基础知识讲起,到CentOS系统的安装,带你一步步完成从0到1的服务器环境搭建。无论你是前端开发者、后端开发者,还是刚刚想要学习服务器部署的新手,都无需担心,即使没有Linux基础,也能轻松跟上节奏。
2025-08-04 11:19:21
370
原创 Linux 软件安装
在 Linux 服务器上部署项目时,JDK、MySQL、Nginx 等软件是必不可少的基础。然而,面对各种类型的安装包,你或许曾感到迷茫:“这个.tar.gz 和.rpm 到底有什么不同?”“环境变量究竟要配置到哪个文件中?别担心,本文将带你系统地了解 Linux 软件的四种安装方式,并通过 JDK 安装的实战案例,让你掌握从上传安装包到验证安装成功的完整流程,从此告别“软件安装难”的困扰。
2025-08-04 11:17:03
444
原创 掌握Linux文本编辑与查找
重点掌握:要重点掌握vim编辑器三种模式的切换,并且熟记wq(保存)、q!(强制退出)、i(插入)、dd(删除)、u(撤销)等常用操作指令。练习方法:建议每天使用vim编辑1个文件,可以是笔记、代码等,通过一周左右的练习,就能熟练掌握vim的基本操作。
2025-08-04 10:47:10
652
原创 Linux 文件管理必备:拷贝与打包压缩命令
拷贝文件:使用cp 源文件 目标的格式,即可完成文件的拷贝。拷贝目录:必须使用cp -r 源目录 目标的格式,这里的-r选项是拷贝目录的关键,千万不能忘记。同时,要注意区分拷贝(cp)和移动(mv)这两个命令的不同,避免误操作。
2025-08-04 10:35:39
557
原创 快速上手Linux命令行:目录与文件操作实战指南
目录操作查看目录:使用ls -al,可以详细查看目录下的所有文件及详细信息,包括隐藏文件,方便全面了解目录内容。切换目录cd命令搭配绝对路径、相对路径以及特殊符号和,让我们能够在目录结构中灵活切换。创建目录mkdir -p可轻松创建多级目录,是构建项目目录结构的好帮手。删除目录rm -rf虽然强大,但使用时需万分谨慎,避免误删重要文件。查看当前路径pwd命令时刻告知我们当前所在的目录位置,确保操作的准确性。文件操作小文件查看cat命令适用于查看小文件,配合-n选项可显示行号。大文件分页查看。
2025-08-04 10:24:27
648
原创 Linux:远程连接与目录结构
SSH,即Secure Shell,是一种加密网络协议,主要用于在不安全的网络环境,比如互联网中,安全地远程登录服务器。它的重要作用在于,所有通过该协议传输的命令和数据都会被加密,就像给信息穿上了一层坚固的铠甲,有效地防止被监听或篡改,安全性相较于明文传输的Telnet协议有了质的提升。SSH协议的默认端口是22,在连接服务器时通常需要指定该端口,不过大多数远程连接工具会默认填充此端口号。
2025-08-04 10:09:03
758
原创 正则表达式全方位指南:格式、写法、常见使用与注意事项
正则表达式(Regular Expression),简单来说,就是一种用于匹配字符串模式的强大工具。它通过一系列特殊字符组合成特定的 “规则”,能够在文本中快速实现校验、提取、替换等操作。想象一下,你有一大段文本,需要从中找出所有符合特定格式的内容,或者检查用户输入的信息是否符合要求,正则表达式就能轻松帮你达成这些目标。它广泛应用于表单验证、日志分析、文本处理等众多场景,堪称编程中不可或缺的 “字符串处理利器”。
2025-08-03 23:10:40
407
原创 Vue项目中前端请求优化与实践
在Vue项目开发中,前端与后端的数据交互至关重要。然而,直接在Vue组件中基于axios发送异步请求,会出现一些问题,影响项目的可维护性和开发效率。本文将深入分析这些问题,并介绍一套完整的前端请求优化方案,同时结合部门管理列表查询的应用案例,详细阐述优化后的实现过程和注意事项。
2025-08-03 20:22:46
914
原创 Vue Router嵌套路由:解决布局与展示难题
首先创建一个Layout组件,它包含侧边栏、顶部导航以及一个。这个非常关键,它是子路由组件渲染的地方。然后进行路由配置:path: '/', // 父路由路径,代表根路径component: Layout, // 父组件,即基础布局组件children: [ // 子路由数组,这里放置管理页组件的子路由配置// 子路由配置会在这里添加。
2025-08-03 19:29:29
750
原创 Vue Router打造动态菜单
在后台管理系统等应用中,我们常常会看到这样的场景:点击左侧的菜单,如“员工管理”“部门管理”,右侧的内容区域会自动切换为对应的页面,同时URL也随之变化,但整个页面却不会刷新。这就是动态菜单。传统的多页应用通过跳转HTML文件来实现页面的切换,然而在单页应用(SPA)中,如何在不刷新页面的情况下实现内容的切换呢?这就引出了Vue Router。它是Vue官方提供的路由工具,主要负责“监听URL的变化,并渲染出对应的组件”,是实现动态菜单的核心所在。
2025-08-03 19:11:42
405
原创 Element Plus 对话框与表单组件
内容灵活性:对话框的内容具有很高的灵活性,可以是任意元素,包括表格、表单等组件。这使得对话框能够满足各种不同的业务需求。
2025-08-03 17:51:35
485
原创 Element Plus表格与分页组件
场景:在实际开发中,我们通常需要从接口获取数据并展示,同时可能需要对部分内容进行格式化,比如将时间戳转换为日期字符串,或者根据状态码显示对应的状态文字。步骤定义响应式数据:使用ref定义响应式数据tableData,初始值为一个空数组,即。异步获取数据:在onMounted钩子函数中调用接口获取数据,并将返回的数据赋值给。例如:});自定义列内容:通过formatter属性格式化数据。
2025-08-03 17:16:46
443
原创 简述Element Plus
Element Plus是由饿了么团队精心研发的一款基于Vue 3的桌面端组件库。它就像是一个装满各种网页部件的“百宝箱”,面向设计师和开发者,提供了大量现成的组件,帮助我们快速搭建网页。其背景依托于饿了么这样的知名互联网企业,基于主流的Vue 3框架开发,这使得它在稳定性和更新迭代上都有可靠的保障。Element Plus面向追求“快速出活”的开发场景,尤其适用于企业级后台、管理系统等桌面端应用。它让开发者能够快速搭建出美观且功能完备的界面,满足项目对开发效率和质量的双重要求。
2025-08-03 16:59:17
744
原创 Vue的两种API风格
逻辑分离到不同选项:这种方式使得代码结构清晰,不同功能的代码分别放在不同的选项中,便于理解和维护。例如,数据相关的放在data选项,方法相关的放在methods选项。功能代码分散:虽然结构清晰,但随着组件功能的增加,不同选项中的代码可能会分散在不同位置,导致功能相关的代码不集中。Vue 2默认使用方式:在Vue 2中广泛使用,对于有面向对象编程基础的开发者和初学者来说,学习曲线相对平缓。组合式API将逻辑聚合在一起,大大提高了代码的复用性。
2025-08-03 16:12:52
417
原创 打造工程化Vue项目
在Vue项目开发中,使用脚手架工具(create - vue)是极为必要的。手动搭建项目不仅耗时费力,还容易出现配置错误,比如在处理各种依赖关系和项目基础结构搭建上,往往需要花费大量时间去摸索。而create - vue脚手架工具能够快速且规范地帮我们构建项目基础,大大提高开发效率。创建命令中,是固定格式,@3.3.4表示指定的脚手架版本号。指定版本号对于项目的稳定性和兼容性至关重要。特定版本经过了一定的测试和优化,能确保项目在开发过程中较少出现因版本变动带来的不兼容问题。
2025-08-03 15:31:18
731
原创 Vue工程化
在当今的前端开发领域,Vue已然成为主流框架之一。随着互联网应用的不断发展,前端项目的规模和复杂度日益增加。传统的前端开发模式在应对大型项目时,逐渐暴露出诸多局限性,例如代码结构混乱、维护成本高昂以及复用性差等问题。这些问题不仅影响项目的开发进度,还对项目的质量造成了挑战。而Vue工程化作为一种解决方案,能够帮助开发者更高效地构建、维护和扩展前端应用。本文将带领读者系统地学习Vue工程化,从基础概念到实际操作,逐步建立起完整的知识体系,助力读者在前端开发领域迈出坚实的步伐。
2025-08-03 14:57:28
683
原创 Spring Boot自定义Starter
依赖管理:预先定义了特定场景下所需要的全部依赖。以为例,它就包含了Tomcat、SpringMVC等相关依赖,让开发者无需逐个查找和添加。自动配置:借助AutoConfigure模块来实现Bean的自动注册以及属性绑定等重要功能。比如,在Web开发场景中,它会自动配置,极大地简化了开发流程。简单概括来说,Starter的目标就是:开发者只需引入一个依赖,就能轻松搞定所有相关配置,实现快速开发。减少重复劳动。
2025-08-02 18:28:41
825
原创 Spring Boot自动配置:@Conditional 注解及原理
引入组件依赖后,该组件才生效。允许开发者自定义生成器,以覆盖默认实现。可以通过配置开关来控制该组件是否启用。及其衍生注解通过“条件判断”这一机制,实现了Bean的“按需注册”,无疑是Spring Boot自动配置的核心所在。依赖引入时自动生效注解使得在引入特定依赖时,相关Bean能够自动生效,实现了与第三方库的无缝集成。允许自定义Bean覆盖默认实现注解赋予了开发者自定义Bean以覆盖默认实现的能力,避免了Bean的重复注册,增强了配置的灵活性。通过配置控制组件开关。
2025-08-02 17:53:35
951
原创 Spring Boot自动配置-源码跟踪
A:在实际项目中自定义自动配置类时,可以参考以下几点:首先,借鉴的方式,将自定义配置类声明为配置类,例如使用注解。其次,对于组件扫描,如果自定义类所在包不在默认扫描范围内,可以使用来指定扫描路径。最重要的是关于自动配置的核心部分,我们可以参考和的机制。自定义配置类可以通过类似@Import的方式引入相关类,并在类中使用@Bean来声明需要注册的Bean。同时,结合系列注解来控制Bean的注册条件,比如根据项目是否引入特定依赖(使用)或者容器中是否缺少特定Bean(使用)等条件来精准配置。
2025-08-02 17:41:10
627
原创 Spring Boot原理:自动配置两种方案
自动配置,简单来讲,就是当你在项目里引入某个依赖时,Spring Boot会敏锐地自动检测到这个依赖,然后悄无声息地将与之相关的Bean注册到IOC容器中,完全不需要开发者手动去进行声明。可以用一个简洁的流程来概括:“引入依赖 → 直接使用Bean”,这中间所有繁琐的配置步骤都被Spring Boot巧妙地省略了。自动配置的核心要义在于,Spring Boot凭借约定和规则,自动完成Bean的注册过程,让开发者能够彻底摆脱配置细节的束缚。
2025-08-02 17:27:12
944
原创 Spring Boot 起步依赖:简化开发的幕后功臣
起步依赖,比如,它本身并不包含实际的代码,更像是一份精心编写的 “购物清单”,也就是预定义的依赖描述符。这份清单详细地列出了某个特定场景(如 Web 开发)所需的所有依赖及其对应的版本。可以想象,当我们要进行 Web 开发时,这个 starter 就像一位经验丰富的购物向导,为我们列出了做这道菜(开发 Web 应用)所需要的所有食材(依赖),而 Maven 则会按照这份清单,自动为我们采购(下载)所需的食材,让我们能够轻松地开始烹饪(开发)。
2025-08-02 17:10:17
880
原创 深入Spring:Bean管理
第三方Bean就像是来自远方的客人,它们是来自各种依赖库的类,比如OSSClient、RedisTemplate等。由于这些类的源代码并不在我们的掌控范围内,无法直接对其进行修改,所以不能像对待自己编写的类那样,直接添加@Component等注解来让Spring管理它们。例如,当我们使用阿里云OSS服务时,OSSClient就是一个典型的第三方类。那么,如何才能让Spring顺利地管理它呢?答案就是@Bean注解。场景类型推荐作用域声明方式典型案例无状态组件(如Controller)
2025-08-02 17:01:49
979
原创 掌握Spring Boot配置优先级
优先级配置形式示例适用场景1命令行参数部署时临时调整配置,方便快捷,适用于临时改变某个配置值2Java系统属性用于设置全局JVM级别的配置,对整个JVM进程生效,适合一些通用的全局参数设置3作为项目内的默认配置,适合放置一些相对固定的默认参数4推荐用于项目内的默认配置,语法简洁,可读性强,适合复杂配置结构5与yml功能一致,但使用相对较少核心原则就是:外部配置(命令行参数、Java系统属性)的优先级始终高于内部配置文件。
2025-08-02 16:27:26
752
原创 巧用ThreadLocal:获取员工ID
为了让操作更加便捷,我们封装一个名为// 声明ThreadLocal,泛型指定存储Integer类型(员工ID)// 存值:将员工ID存入当前线程的ThreadLocal// 取值:从当前线程的ThreadLocal中获取员工ID// 删值:清空当前线程的ThreadLocal,必须调用无疑是解决 “同一请求内跨组件数据传递” 问题的得力工具,在操作日志、权限校验等众多场景中都有着不可或缺的作用。
2025-08-02 16:05:52
560
原创 巧用AOP实现操作日志记录
要将上述美好的设想转化为实际可运行的代码,我们需要巧妙解决两个关键问题:一是选择何种通知类型最为合适,二是怎样精准地匹配目标方法。接下来,我们创建一个独特的 “标签”,即用于标记需要记录日志的方法的注解。@Target(ElementType.METHOD) // 仅作用于方法@Retention(RetentionPolicy.RUNTIME) // 运行时生效// 纯标记注解,无需定义属性。
2025-08-02 15:37:14
511
原创 AOP连接点信息获取
连接点(JoinPoint)指的是那些可以被AOP控制的方法。Spring把这些连接点抽象成了JoinPoint对象,通过这个对象,我们能够获取到目标方法执行时的各种关键信息。这就好比给我们提供了一个“透视镜”,让我们可以清晰地看到方法执行时的上下文情况。连接点(JoinPoint)是Spring AOP对“可被增强的方法”的一种抽象表述。它不仅仅代表方法本身,更囊括了方法执行时的全部动态信息,比如参数、目标类等。
2025-08-02 15:13:19
680
原创 AOP切入点表达式
execution(访问修饰符?返回值 包名.类名.?方法名(方法参数) throws 异常?。其中,访问修饰符(如publicprotected等)、包名和类名、throws异常声明这几部分是可以省略的。但强烈建议包名和类名部分不要省略,以保持表达式的明确性,避免不必要的全项目扫描,提高匹配效率。。用于匹配标识有特定注解的方法。它就像是给方法贴上了一个特殊的“标签”,只要方法上带有这个“标签”(特定注解),就会被匹配到。创建注解类:使用@interface来定义注解类。命名规范:建议使用功能名 +
2025-08-02 15:00:05
541
原创 理解AOP通知顺序
默认顺序:按照切面类名字母排序,前置通知按字母正序执行,后置通知按字母倒序执行。手动控制:使用@Order(数字)来指定优先级,数字越小,前置通知越早执行,后置通知越晚执行。
2025-08-02 14:30:47
986
原创 AOP进阶:解锁通知类型的灵活运用
如果需要控制方法执行流程,例如进行权限校验,优先使用@Around通知。仅需在方法执行前进行预处理,如记录参数日志,选择@Before通知。若要记录方法的返回值,使用通知。处理异常情况则使用通知。对于必须执行的收尾工作,如资源清理,采用@After通知。
2025-08-02 14:12:26
888
用IDEA创建websocket1项目,搭建聊天室项目实战,项目目录结构组织、代码编写指南
2025-05-30
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人