- 博客(475)
- 收藏
- 关注
原创 Git项目管理工具——Git简介、版本控制、SVN 与 Git、Git 工作流程(Git 的作用、什么是版本控制、Local VCS、CVCS、DVCS、SVN)
Git是一个分布式版本控制系统,由Linus Torvalds于2005年创建,用于高效管理文件版本和团队协作开发。相比传统集中式系统(如SVN),Git具有离线操作、完整本地备份和高效分支管理等特点。其核心工作流程包括克隆仓库、本地修改、暂存更改、提交到本地仓库、推送远程更新等步骤。Git通过分布式架构解决了单点故障风险,即使远程仓库丢失也能从本地恢复,特别适合中大型项目和多分支开发场景。初学者需要理解其分布式理念,但一旦掌握将显著提升版本管理效率。
2025-08-12 19:11:58
606
原创 JavaWeb——maven高级(5/5)-私服(私服的概念与作用、Maven 依赖的查找顺序、上传资源到私服的配置步骤、下载依赖配置条件)
本文系统介绍了Maven私服的概念与使用。私服是企业内部部署的Maven仓库服务器,用于代理中央仓库和共享内部模块。主要内容包括:私服的作用和分类(release/snapshot/central/group仓库)、Maven依赖查找顺序(本地→私服→中央)、上传配置步骤(settings.xml服务器认证和pom.xml仓库地址配置)、下载流程(镜像配置)以及测试环境搭建。通过私服可实现企业内部模块共享,优化开发流程,统一依赖管理。
2025-08-10 08:00:00
802
原创 JavaWeb——maven高级(4/5)-继承与聚合-聚合实现(项目构建过程的局限、Maven 聚合的解决方案、Maven继承与聚合的总结)
Maven聚合功能为解决多模块项目中构建繁琐的问题提供了有效方案。通过在父工程pom.xml中配置<modules>标签,可以统一管理多个依赖模块的构建过程。与继承功能不同,聚合工程明确知道所管理的模块,并能根据依赖关系自动决定构建顺序,实现一键式项目构建。典型做法是将父工程同时作为聚合工程,既统一依赖配置,又简化构建流程。使用聚合后,开发者无需手动安装各个模块或关心构建顺序,大大提升了开发效率。
2025-08-08 08:00:00
803
原创 JavaWeb——maven高级(3/5)-继承与聚合-版本锁定(Maven 中的版本锁定机制、dependencyManagement 标签、集中管理依赖版本)
Maven版本锁定机制解析 版本锁定是多模块项目开发中的重要机制。通过<dependencyManagement>标签在父工程统一管理依赖版本,子模块引用时无需指定版本号,从而确保依赖版本一致性。该机制具有三大优势:1)修改版本只需调整父工程一处;2)推荐结合<properties>标签集中定义版本属性;3)与<dependencies>不同,版本锁定仅管理版本不引入依赖。实际开发中,该机制与SpringBoot的版本管理机制形成互补,共同构建高效的依赖管理体系。
2025-08-06 08:00:00
827
原创 JavaWeb——maven高级(2/5)-继承与聚合-继承关系实现(Maven继承基础概念、基本原理、Spring Boot 工程中的继承关系、抽取公共依赖到父工程)
本文介绍了Maven继承机制在多模块开发中的应用。通过创建父工程(tlias-parent)并设置pom打包方式,子模块可通过<parent>标签继承父工程的配置,实现统一依赖管理。重点讲解了继承关系的建立步骤、SpringBoot默认继承机制、公共依赖(lombok)的抽取方法,以及父子工程结构的两种组织方式。该机制有效解决了多模块开发中的重复配置问题,提高了项目维护效率。文章还对比了Java继承与Maven继承的相似性,并指出子模块可省略groupId等优化建议。
2025-08-04 08:00:00
1763
原创 JavaWeb——maven高级(1/5)-分模块设计与开发(分模块设计的解决方案、优点、实操说明、注意事项)
本文介绍了Maven高级应用中的分模块设计与开发方法。主要内容包括:分模块设计的必要性(解决代码集中、维护困难、协作冲突等问题),实现方案(按功能拆分模块,共享通用资源),以及其优点(管理灵活、资源共享、提升复用性)。通过实际案例演示了如何拆分pojo和utils模块的操作步骤,并强调应先设计再开发的注意事项。分模块设计是中大型项目提高开发效率的主流解决方案。
2025-08-02 08:00:00
896
原创 JavaWeb——Web后端开发-总结(Web 后端开发三层架构、pring 核心功能回顾、各技术归属框架说明、关于 Spring MVC、关于 SSM 架构与整合)
本文总结了基于SpringBoot的Web后端开发知识体系。主要包含三层架构(Controller、Service、DAO)及请求流程,并回顾了Spring核心功能(IOC/DI、AOP、事务管理等)。文章明确了各技术所属框架(如Filter属于JavaWeb,MyBatis为持久层框架),指出SpringMVC是Spring的Web模块而非独立框架。同时对比了传统SSM架构(Spring+SpringMVC+MyBatis)与SpringBoot开发的差异,强调当前企业项目普遍采用SpringBoot提高
2025-07-30 08:00:00
242
原创 JavaWeb——SpringBoot原理(7/7)-自动配置-案例:自定义starter-实施阶段
本文详细介绍了如何通过SpringBoot创建自定义Starter,以阿里云OSS服务为例。首先,创建两个模块:starter用于依赖管理,autoconfigure用于自动配置。接着,配置模块的POM文件,引入必要的依赖,如阿里云OSS SDK和SpringBoot Web依赖。然后,编写功能类和自动配置类,确保工具类AliOSSUtils能够通过自动配置类注入Bean。最后,通过配置文件注册自动配置类,并在主项目中引入Starter依赖进行测试。测试结果表明,文件上传功能成功实现,验证了自定义Start
2025-07-28 08:00:00
758
原创 JavaWeb——SpringBoot原理(6/7)-自动配置-案例:自定义starter-分析阶段( Starter 与 AutoConfig 模块结构分析、实践案例说明)
本文介绍了如何通过自定义Starter来简化SpringBoot项目中第三方技术的集成,特别是以阿里云OSS为例。首先回顾了SpringBoot自动配置的原理,并解释了为何需要自定义Starter,即为了减少重复配置和提高开发效率。接着,文章详细说明了Starter的命名规范和模块结构,包括Starter模块和AutoConfig模块的作用。然后,通过MyBatisStarter的实例,分析了自动配置类的结构和生效方式。最后,文章概述了自定义阿里云OSSStarter的实现步骤,包括创建模块、编写自动配置类
2025-07-26 08:00:00
844
原创 JavaWeb——SpringBoot原理(5/7)-自动配置-原理分析-@Conditional(自动配置背后的核心机制、常见条件注解详解、@ConditionalOnClass)
SpringBoot的自动配置机制依赖于条件装配,通过一系列以@Conditional开头的注解实现。这些注解包括@ConditionalOnMissingBean、@ConditionalOnClass和@ConditionalOnProperty,分别用于在容器中不存在指定Bean、classpath中存在指定类或配置文件中存在指定属性时,才将Bean注册到IOC容器中。这种机制确保了自动配置的灵活性和可控性,允许用户自定义配置并避免冲突。条件注解不仅支持按需加载Bean,还增强了SpringBoot在
2025-07-24 08:00:00
371
原创 JavaWeb——SpringBoot原理(4/7)-自动配置-原理分析-源码跟踪(分析入口:@SpringBootApplication 注解、自动配置类来源文件、完整流程总结)
本文深入分析了SpringBoot自动配置原理。通过源码跟踪,从@SpringBootApplication注解切入,重点解析了其组合的三个核心注解:@SpringBootConfiguration、@ComponentScan和关键性的@EnableAutoConfiguration。详细阐述了AutoConfigurationImportSelector类通过selectImports()方法加载自动配置类的过程,比较了新老版本配置文件的差异(spring.factories与AutoConfigura
2025-07-22 08:00:00
1391
原创 JavaWeb——SpringBoot原理(3/7)-自动配置-自动配置-方案(使用 @ComponentScan 指定扫描包、封装注解 + @Import 提供统一接口)
本文探讨了SpringBoot自动配置的三种主要解决方案。首先,通过实验项目说明,分析了SpringBoot在引入第三方依赖时,默认只扫描启动类所在包及其子包,导致无法识别依赖中的类。接着,提出了三种解决方案:使用@ComponentScan指定扫描包、使用@Import注解导入类、以及封装注解+@Import提供统一接口。每种方案都有其优缺点,如@ComponentScan虽然直观但扩展性差,@Import灵活性高但维护负担大,封装注解则用户体验佳但需第三方支持。
2025-07-20 08:00:00
794
原创 JavaWeb——SpringBoot原理(2/7)-自动配置-概述(核心概念、典型配置示例、单元测试验证、知识图谱)
SpringBoot自动配置机制解析:框架启动时自动创建内置配置类Bean并纳入IOC容器,包含开发者自定义及框架生成的Bean。核心价值在于提升开发效率,免除手动配置。验证方式包括查看Beans列表、典型配置示例(如Gson自动配置)及单元测试注入验证。研究重点涉及自动加载机制、Bean注册原理,通过条件化配置等技术实现。后续可深入源码分析、spring.factories机制及自定义Starter开发。该机制显著简化了事务管理、AOP等开发工作。(150字)
2025-07-18 08:00:00
288
原创 JavaWeb——SpringBoot原理(1/7)-起步依赖(简化 Spring 开发、起步依赖的作用、starter 本质、原理理解)
官方将常用功能封装为 starter 模块,开发者只需导入一个 starter 即可拥有对应能力。通过导入一个 starter,自动导入一组相关依赖,省去手动配置依赖和版本。默认提供内嵌 Tomcat,可以直接运行 Java 程序启动 Web 服务,实质是普通 Maven POM 项目,起到组织依赖的作用。starter 是一组依赖的封装,便于集成常用功能。SpringBoot 会根据当前类路径中的类和依赖,版本统一、配置简化、开发提速,是其最大优势。管理所有依赖的版本,保证了版本间的兼容性。
2025-07-16 08:00:00
588
原创 JavaWeb——bean的管理(3/3)-第三方bean(自定义 Bean 的常规方式、第三方类不能直接加注解、使用 @Bean 声明第三方 Bean、提取配置类管理第三方 Bean)
以往我们声明的 Bean 多为自己定义的类,如 Controller、Service、DAO 等,只需在类上添加注解即可交由 Spring 容器管理。在启动类中定义方法,返回类型为目标类,方法体中创建该对象,并在方法上加@Bean注解。@Bean@Configuration //配置类//声明第三方bean@Bean //将当前方法的返回值对象交给IOC容器管理,成为IOC容器bean//通过@Bean注解的name/value属性指定bean名称,如果未指定,默认是方法名。
2025-07-14 08:00:00
928
原创 JavaWeb——bean的管理(2/3)-bean的作用域(Scope配置、延迟加载(@Lazy)设置为 prototype 多例测试)
Spring 支持的 Bean 作用域类型(五种作用域):singleton(默认):整个容器中该 Bean 只有一个实例prototype:每次使用都会创建新实例request:每个 HTTP 请求创建一个实例(Web 环境)session:每个会话创建一个实例(Web 环境)application:每个应用创建一个实例(Web 环境)
2025-07-12 08:00:00
504
原创 JavaWeb——bean的管理(1/3)-bean的获取(按 Bean 名称获取、按 Bean 类型获取、按 Bean 名称 + 类型获取、关于 Bean 单例特性的小结)
应用程序可以通过依赖注入自动拿到 Bean,也可以通过编程的方式手动从容器中获取。SpringBoot 项目启动时,会将所有单例 Bean 创建好放入 IOC 容器中。可以通过 ApplicationContext 的getBean()方法手动获取 Bean。默认情况下,容器中的 Bean 是单例的。
2025-07-10 08:00:00
867
原创 JavaWeb——SpringBoot-配置优先级(三种常见配置文件:properties、yml、yaml,Java 系统属性配置,命令行参数配置,打包运行时如何设置端口)
三种常见配置文件application.propertiesapplication.ymlapplication.yaml这三种格式都可以用来配置属性。但是在项目开发时,推荐统一使用一种格式的配置。优先级从高到低命令行参数(Program Arguments)Java 系统属性(VM options)application.propertiesapplication.ymlapplication.yaml
2025-07-08 08:00:00
897
原创 JavaWeb——AOP案例-记录操作日志(引入依赖、 准备日志表及实体类、Mapper 接口、自定义注解、创建切面类、保存日志、测试)
定义如@Log注解:用于标识需要记录日志的方法配置注解作用范围为方法,保留策略为运行时使用@Around和作为切入点在通知中记录:操作人 ID(从请求头中的 JWT 中提取)操作时间方法类名、方法名方法参数(转为字符串)返回值(转为 JSON)方法耗时使用 AOP 的环绕通知统一记录日志切入点使用注解表达式匹配操作人信息通过 JWT 获取日志保存到数据库中便于追溯。
2025-07-06 08:00:00
679
原创 JavaWeb——AOP进阶(5/5)-连接点(获取连接点信息的对象类型、常见信息获取方式、实际演示、测试与验证)
获取连接点信息的对象类型环绕通知中使用:ProceedingJoinPoint其他通知中使用:JoinPoint这两个类型都是 AOP 提供的接口对象,用于获取目标方法的运行信息。
2025-07-04 08:00:00
566
原创 JavaWeb——AOP进阶(4/5)-切入点表达式-annotation(@annotation 表达式的使用步骤、自定义注解、使用注解表达式定义切入点、表达式验证与测试)
在使用 execution 表达式匹配多个无规律的方法时,组合多个表达式不够方便和灵活。可使用另一种切入点表达式 —— @annotation 表达式,基于注解来进行方法匹配,从而简化表达式编写。
2025-07-02 08:00:00
1540
原创 JavaWeb——AOP进阶(3/5)-切入点表达式-execution(概述、主要形式、语法与用法、实例、通配符详解)
切入点表达式用于描述哪些方法是通知要作用的目标方法。在 AOP 开发中,切入点表达式不可或缺。方法名规范建议:查询以find开头、更新以update开头等,方便统一匹配execution 表达式功能强大,语法灵活注意控制匹配粒度,以保证性能通配符与..是常用关键要素END学习自:黑马程序员——JavaWeb课程。
2025-06-30 08:00:00
1645
原创 JavaWeb——AOP进阶(2/5)-通知顺序(问题引入、默认按类名顺序执行,使用 @Order 注解控制顺序)
控制方式原始方法运行前原始方法运行后类名字母顺序(默认)靠前的类名先执行靠前的类名后执行@Order 注解数字小的先执行数字小的后执行。
2025-06-28 08:00:00
612
原创 JavaWeb——AOP进阶(1/5)-通知类型(介绍,五种通知的执行时机,代码实战说明,关于环绕通知,@Pointcut抽取切入点表达式)
AOP 提供五种通知,需根据业务需要灵活选择。@Around 是最灵活的通知方式,执行控制最强。切入点表达式可通过 @Pointcut 抽取复用,减少重复代码。不同类型的通知适用于不同阶段的增强逻辑插入,测试时可观察执行顺序加深理解。
2025-06-26 08:00:00
352
原创 JavaWeb——AOP基础(2/2)-核心概念(AOP的核心术语:切入点,连接点,通知,切面,目标对象、AOP执行流程)
AOP底层依赖动态代理技术。在程序运行时,会自动为目标对象生成相应的代理对象。这是AOP实现功能增强的基础,通过代理对象来介入目标对象方法的执行过程。后续会对AOP的各个细节进行了解,例如:通知类型、通知顺序、切入点表达式等等。
2025-06-24 08:00:00
383
原创 JavaWeb——AOP基础(1/2)-快速入门(AOP的作用、举例说明,术语概念、快速体验AOP编程:导入依赖、创建切面类)
AOP(Aspect Oriented Programming)面向切面编程它是 OOP(面向对象编程) 的补充,用于将系统中的通用功能(如日志、安全、事务)进行抽取封装,提升系统的模块化程度。1.1 作用把系统中多个模块都需要的功能(日志、权限、事务)单独封装成切面避免多个类中重复编写相同功能的代码
2025-06-22 08:00:00
439
原创 JavaWeb——事务管理(3/3)-事务进阶-propagation属性(事务的传播行为、应用场景、高亮显示的插件、测试演示、总结)
在 Spring 事务管理中,Propagation(传播行为)用于控制事务方法在调用另一个事务方法时应该如何处理事务。Spring 提供了(默认值)适用于大部分场景,如,确保调用链上的事务一致。调用methodB(),两者属于同一个事务。适用于需要独立于调用者的事务,即使主事务回滚,日志也会被保存。适用于如果methodC()由一个事务方法调用,则加入事务,否则以非事务方式执行。适用于以非事务方式运行,即使调用它的方法有事务。适用于如果methodE()在没有事务的情况下被调用,会抛出异常。适用于。
2025-06-20 08:00:00
875
原创 JavaWeb——事务管理(2/3)-事务进阶(rollbackFor属性)
配置方式运行时异常 (一般异常 (Exception(默认)回滚不回滚回滚回滚结论默认情况下,只有运行时异常会触发事务回滚。若希望所有异常都能回滚,需使用。END学习自:黑马程序员——JavaWeb课程。
2025-06-18 08:00:00
325
原创 JavaWeb——事务管理(1/3)-事务回顾-spring事务管理(事务的概念、操作 、Spring 事务管理、注解 @Transactional、开启事务管理日志)
事务(Transaction)是指一组操作的集合,这些操作要么全部成功,要么全部失败,不会出现部分成功部分失败的情况。事务的核心目标是保证数据的完整性和一致性。 Spring 事务管理的核心目标是简化事务的处理,降低事务管理的复杂性,使开发者能够专注于业务逻辑,而无需关心底层事务的实现。Spring 提供的事务管理方案:编程式事务管理:手动编写事务管理代码,不推荐使用。声明式事务管理:通过 Spring 配置或注解方式定义事务,更加简洁高效。要解散部门:要求删除部门,同时删除该部门下的员工。
2025-06-16 08:00:00
673
原创 JavaWeb——异常处理(概述、异常的传播、传统的处理方式、全局异常处理、定义全局异常处理器、测试)
在JavaWeb项目中,异常处理是保证系统稳定性和可维护性的重要环节,出现异常时,默认返回的结果不符合规范,我们时常判断不出来具体是哪里出了错误。全局异常处理器可以统一处理系统中的所有异常,返回标准化的错误信息,提升系统的可维护性和用户体验。观察控制台日志和前端返回的错误信息,确保异常被全局异常处理器捕获并返回标准格式的错误响应。:如果 Service 层未捕获异常,异常会继续向上抛出到 Controller 层。:如果 Controller 层未捕获异常,异常最终会暴露给前端,影响用户体验。
2025-06-14 08:00:00
683
原创 JavaWeb——登录(16/16): 总结对比(三种会话跟踪方案的优缺点对比、Filter(过滤器)与 Interceptor(拦截器)对比)
维度Filter作用范围所有请求(Servlet 级别)Controller 请求(Spring MVC 级别)依赖关系Servlet 容器Spring 上下文执行顺序先于 Interceptor后于 Filter适用场景全局预处理(如压缩、CORS)业务逻辑处理(如鉴权、日志)
2025-06-12 08:00:00
809
原创 JavaWeb——登录(15/16): 登录校验-实现Interceptor-登录校验拦截器(介绍、拦截的流程、实现登录拦截器、注册拦截器)
在 JavaWeb 开发中,拦截器(Interceptor)是用于对请求进行预处理和后处理的组件。本文主要介绍如何使用。其他两个方法在控制器执行之后才运行,已经没有校验的意义。进行,因此应放在 preHandle()学习自:黑马程序员——JavaWeb课程。,确保只有已登录用户才能访问特定资源。,取代传统的过滤器(Filter)。,拦截未授权请求,保障系统安全。
2025-06-10 08:00:00
1145
原创 JavaWeb——登录(14/16):登录校验-Interceptor-详解(使用细节、拦截路径的配置、匹配规则、执行流程、拦截器与过滤器的区别)
在 Spring Boot 中注册拦截器时,需要指定。不能匹配/depts/1/2,/depts。学习自:黑马程序员——JavaWeb课程。目标方法执行后,可用于修改响应数据。之后执行,适用于资源清理等操作。负责拦截请求,决定是否放行。代表拦截所有资源,包括。(如登录接口),可以使用。等所有 API 请求。不能匹配/depts/1。不能匹配/emps/1。
2025-06-08 08:00:00
604
原创 JavaWeb——登录(13/16):登录校验-Interceptor-入门(概述、作用、快速入门、定义拦截器、方法解析、注册拦截器、测试与验证)
接口,并重写其中的方法(Ctrl + o 或者 Ctrl + i来重写方法)。在 Web 应用中,为了对。,将拦截器注册到 Spring MVC 中。学习自:黑马程序员——JavaWeb课程。在后续章节,我们将基于。
2025-06-06 08:00:00
221
原创 JavaWeb——登录(12/16):登录校验-Filter-实现登录校验过滤器(需求分析、工作流程图、代码实现、测试与验证)
在企业级应用中,用户必须先,获取服务器返回的,之后每次请求业务接口时,需要在中携带该令牌,以完成身份校验。为了避免在每个接口中都编写相同的校验逻辑,可以使用统一拦截请求,对 JWT 令牌进行解析和验证,从而确保用户的身份合法性。
2025-06-04 08:00:00
849
原创 JavaWeb——登录(11/16):登录校验-Filter-详解(过滤器链)(概述、执行流程、执行顺序、测试与验证)
请求到达服务器后,会依次经过多个过滤器的处理,最终再到达目标资源(如 Controller)。过滤器链的执行顺序由。决定,放行后的请求会进入下一个过滤器,直到所有过滤器执行完毕,最终访问目标资源。在 Web 应用中,多个过滤器可以被串联在一起,形成。等场景非常重要,在实际开发中可结合需求进行优化。如果不指定执行顺序,Spring Boot。,观察过滤器链的执行顺序。
2025-06-02 08:00:00
572
原创 JavaWeb——登录(10/16):登录校验-Filter-详解(执行流程-拦截路径、过滤器的拦截路径配置、过滤器的测试与验证)
过滤器(Filter)在 Web 应用中用于拦截请求,并在请求处理前后执行特定逻辑。学习自:黑马程序员——JavaWeb课程。默认情况下,过滤器可以拦截所有请求(),但我们可以自定义拦截特定路径。
2025-05-30 08:00:00
559
原创 JavaWeb——登录(9/16):登录校验-Filter-入门(过滤器(Filter)概述、过滤器的工作流程、过滤器的实现步骤、启用过滤器支持、执行测试)
过滤器(Filter)是 JavaWeb 三大组件(Servlet、Filter、Listener)之一,主要用于。学习自:黑马程序员——JavaWeb课程。Spring Boot 默认不支持。并在请求处理前后执行。,需要在启动类上添加。
2025-05-28 08:00:00
908
原创 JavaWeb——登录(8/16):登录校验-JWT令牌-登录后下发令牌(接口文档、引入工具类 JwtUtils、生成并下发 JWT 令牌使用 Postman 测试、前后端联调)
本文介绍了JWT令牌在用户登录后的生成与下发流程。JWT令牌用于身份验证,用户登录成功后,服务器生成令牌并返回给前端,前端在后续请求中携带该令牌。文章详细描述了JWT令牌的工作流程,包括生成、存储、携带和校验。代码实现部分展示了如何使用JwtUtils工具类生成和解析JWT令牌,并在LoginController中处理登录请求,生成并下发令牌。测试与验证部分介绍了使用Postman进行测试的方法,并提到前后端联调的步骤。最后,文章总结了JWT令牌的实现,并提出了后续优化方向,如令牌校验拦截器和刷新机制。
2025-05-26 08:00:00
417
原创 JavaWeb——登录(7/16): 登录校验-JWT令牌-生成和校验(引入 JWT 依赖、JWT 令牌测试、生成 JWT 令牌、官网解析令牌、Java代码解析令牌)
在 Spring Boot 项目中,我们可以使用库来生成 JWT 令牌。在pom.xmltest测试并未涉及到Spring boot,所以可以把Spring boot注解注释掉:指定签名算法(HS256)和密钥("qiyi"),用于生成签名防止令牌篡改。:密钥需保密,实际开发中应从配置读取,不可硬编码。:设置自定义载荷数据,存储用户信息(如ID、用户名)。:设置令牌过期时间(当前时间 + 1小时)。(3600秒 = 1小时)。compact():生成最终的JWT字符串,格式为。
2025-05-24 08:00:00
1011
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人