- 博客(196)
- 收藏
- 关注
原创 五十六、SpringBoot原理-自动配置-案例(自定义starter实现)
本文介绍了如何自定义Spring Boot Starter的详细步骤,重点演示了创建阿里云OSS Starter的过程。主要内容包括:1)新建模块并清理不必要的文件;2)配置pom.xml文件;3)使用mvn命令生成.iml文件;4)保留必要文件结构;5)删除测试类和启动类;6)添加必要依赖。核心代码部分展示了AliOSSAutoConfiguration自动配置类、AliOSSProperties配置属性类以及AliOSSUtils工具类的实现,通过@ConfigurationProperties注解实现
2025-09-26 10:15:10
1067
原创 五十五、SpringBoot原理-自动配置-原理分析
本文介绍了Spring Boot自动配置原理及@Conditional注解的应用。通过两张原理图展示了自动配置的工作机制,重点讲解了@Conditional注解的两种使用场景:一是基于Maven依赖(如JWT)判断是否创建Bean,二是根据配置文件属性(如application.yml中的"name: itheima")决定Bean的声明。文中包含示例代码和配置片段,演示了条件装配的具体实现方式。
2025-09-25 11:05:35
123
原创 五十四、SpringBoot原理-起步依赖、自动配置
摘要:本文介绍了SpringBoot的起步依赖原理和自动配置机制,通过具体案例演示了如何引入第三方依赖。重点展示了如何通过@EnableHeaderConfig注解和ImportSelector机制实现配置类的自动加载,并验证了HeaderParser和HeaderGenerator两个Bean的成功注入。测试结果表明,通过这种自动配置方式,可以方便地将第三方组件集成到SpringBoot应用中,简化了开发流程。
2025-09-24 11:09:08
522
原创 五十三、bean的管理-bean的获取、bean的作用域、第三方bean
本文介绍了Spring框架中bean管理的核心概念,包括bean的获取方式、作用域设置以及第三方bean的配置。主要内容包括:1) 通过ApplicationContext获取bean的三种方式;2) 使用@Scope注解设置bean作用域(如prototype);3) 使用@Configuration和@Bean配置第三方bean(如SAXReader)。代码示例展示了DeptController、DeptService实现类以及CommonConfig配置类的具体实现,其中涉及@Autowired依赖注
2025-09-23 11:05:58
244
原创 五十二、SpringBoot配置优先级(仅三张图片,了解即可)
本文介绍了Java系统属性和命令行参数的配置方法。通过图示展示了配置界面,详细说明了如何使用Java系统属性进行参数设置,以及如何通过命令行传递参数。文章最后对配置方法进行了总结,为开发者提供了清晰的配置指南。内容简洁明了,适合快速了解Java配置的基本操作。
2025-09-22 16:33:25
201
原创 五十一、AOP案例-记录操作日志
本文介绍了如何通过AOP实现操作日志记录功能。案例中创建了操作日志表,定义了OperateLog实体类和Mapper接口。通过自定义@Log注解和LogAspect切面类,在目标方法执行前后记录操作人、时间、方法信息、参数、返回值及耗时等数据,并持久化到数据库。关键步骤包括:1)引入AOP和fastjson依赖;2)创建日志表和实体类;3)定义切面记录日志;4)在Controller方法上添加@Log注解。这种实现方式无需修改业务代码,通过AOP即可统一记录操作日志,便于后期审计追踪。
2025-09-22 12:31:19
445
原创 五十、AOP进阶-连接点
本文展示了一个使用Spring AOP的切面编程示例。通过MyAspect8切面类,演示了如何利用@Before和@Around注解对DeptService类的方法进行拦截。切面中使用了JoinPoint和ProceedingJoinPoint对象获取目标类的类名、方法名、参数值以及返回值等信息,并在方法执行前后进行日志记录。代码展示了AOP中连接点(JoinPoint)的核心操作,包括获取目标对象信息、方法参数处理和方法返回值处理等关键功能。
2025-09-22 10:54:54
129
原创 四十九、AOP进阶-切入点表达式-execution与@annotation
本文介绍了AOP中的通知顺序和切入点表达式。在通知顺序方面,展示了不同类型的通知执行顺序图示。重点讲解了切入点表达式的execution语法,包括通配符使用、书写规范和建议。提供了多个execution表达式示例代码,展示了不同粒度的切入点匹配方式。此外,还介绍了@annotation方式,通过自定义注解@MyLog标记切入点方法,并给出了完整的实现示例。最后总结了切入点表达式的主要用法,包括execution和@annotation两种方式的适用场景和书写要点。这些内容为Spring AOP的实际应用提供
2025-09-21 17:31:31
226
原创 四十八、AOP进阶-通知类型
本文展示了AOP切面编程的基本用法,通过@Aspect注解定义切面类MyAspect1,使用@Pointcut定义切入点表达式,匹配DeptServiceImpl类的所有方法。切面中实现了五种通知类型:@Before前置通知、@Around环绕通知、@After后置通知、@AfterReturning返回通知和@AfterThrowing异常通知。执行顺序为:环绕通知前→前置通知→目标方法→环绕通知后→后置通知→返回/异常通知。文章包含代码实现和执行结果截图,直观呈现了AOP通知的执行流程和顺序。
2025-09-20 11:45:51
200
原创 四十六、事务管理-事务进阶-rollbackFor属性与propagation属性
本文介绍了Spring事务管理中的@Transactional注解应用,重点讲解了事务传播行为REQUIRES_NEW的使用场景。通过解散部门并记录操作日志的案例,展示了如何在主事务失败时,通过新建独立事务确保日志记录成功。案例包含部门删除、员工删除和日志记录三个操作,其中日志记录使用REQUIRES_NEW传播行为,使其不受主事务回滚影响。代码实现涉及DeptService、DeptLogService及其Mapper层,最终演示了事务回滚时日志仍能成功写入的效果。该模式适用于需要保证关键操作记录的场景。
2025-09-20 11:18:48
158
原创 四十七、AOP基础-快速入门
AOP(面向切面编程)是一种编程范式,通过切面技术实现横切关注点的模块化。本文介绍了AOP的优势,包括代码复用、解耦和集中管理等功能。通过一个快速入门程序演示了如何实现AOP:创建TimeAspect切面类,使用@Around注解定义切入点表达式,记录方法执行时间。示例代码展示了如何计算DeptServiceImpl类中所有方法的执行耗时,并在日志中输出结果。AOP能够有效提升代码的可维护性和可扩展性。
2025-09-20 10:10:54
213
原创 四十五、事务管理-事务回顾-spring事务管理
本文介绍了Spring事务管理的实现与应用。通过@Transactional注解的讲解和部门删除案例,展示了事务管理的核心概念。在DeptServiceImpl中,当删除部门及其下属员工时,使用@Transactional确保操作原子性,模拟异常时自动回滚事务。代码示例包含EmpMapper接口的部门级联删除操作,以及application.yml中事务日志的配置。测试结果表明,当事务中出现异常时,已执行的部门删除操作会被正确回滚,保障了数据一致性。
2025-09-19 11:26:34
212
原创 四十四、异常处理-全局异常处理器
本文介绍了Spring Boot中全局异常处理器的实现方法。通过@RestControllerAdvice注解定义一个全局异常处理类,结合@ExceptionHandler捕获所有异常。示例代码展示了GlobalExceptionHandler类的基本实现,当发生异常时返回统一错误信息并打印异常堆栈。这种处理方式能有效集中管理异常,避免代码重复,提升系统健壮性。文章还包含项目目录结构截图和执行结果示意图,帮助开发者直观理解全局异常处理器的实际应用场景。
2025-09-19 10:48:48
153
原创 四十三、案例-登录校验interceptor-登录校验拦截器
本文介绍了使用Spring拦截器(Interceptor)实现登录校验的完整流程。主要内容包括:1)拦截器与过时的Filter对比;2)拦截器快速入门步骤;3)拦截路径配置;4)登录校验的具体实现方案。通过WebConfig配置类注册拦截器,在LoginCheckInterceptor中实现预校验逻辑,包括token验证、异常处理等。使用FastJSON进行对象转换,最终实现了未登录拦截、登录放行、令牌校验等功能。测试结果表明,系统能正确拦截未授权请求,并在携带有效token时允许访问受保护资源,实现了完整
2025-09-18 16:25:17
527
原创 四十二、案例-登录校验-登录认证(会话技术里重点学习JWT令牌技术)
本文介绍了基于JWT令牌的登录校验实现方案。主要内容包括:1)登录流程思路及校验技术目录;2)会话跟踪技术对比,重点讲解JWT令牌方案;3)JWT令牌生成与校验的实现代码,包含JwtUtils工具类、LoginController登录接口、EmpService服务层实现。通过生成包含用户信息的JWT令牌实现无状态认证,相比传统会话方案更适用于分布式系统。代码示例展示了如何将用户信息封装到令牌中,并在服务端进行解析验证。
2025-09-17 16:23:54
261
原创 四十一、案例-配置文件-@ConfigurationPropertirs注解
本文介绍了Spring Boot中使用@ConfigurationProperties注解绑定配置属性的方法。通过阿里云OSS配置示例,展示了如何将application.yml中的aliyun.oss相关属性映射到AliOSSProperties类中。与@Value注解相比,@ConfigurationProperties支持批量属性绑定和类型安全校验。代码实现包括:1)定义yml配置文件;2)创建带有@ConfigurationProperties注解的属性类;3)在工具类AliOSSUtils中注入使
2025-09-16 11:09:50
281
原创 四十、案例-配置文件-yml配置文件
本文介绍了YAML配置文件的基本语法和数据格式,并展示了Spring Boot项目中application.yml的配置示例。主要内容包括:数据库连接配置、文件上传限制、MyBatis日志和字段映射设置,以及阿里云OSS服务的访问密钥配置。YAML以其简洁的树状结构和键值对表示法,成为现代应用开发中常用的配置文件格式。
2025-09-16 10:50:34
208
原创 三十九、案例-配置文件-参数配置化(了解即可,现在主流使用yml配置文件)
本文介绍了如何通过参数配置化解决阿里云OSS工具类中的硬编码问题。通过将OSS相关配置(endpoint、accessKeyId、accessKeySecret、bucketName)从代码中提取到application.properties文件中,使用@Value注解注入,实现了配置与代码的分离。这种方法提高了代码的可维护性和安全性,避免了敏感信息直接暴露在代码中,同时也便于在不同环境中灵活调整配置。文中包含完整的AliOSSUtils工具类实现和对应的properties配置文件示例,展示了从问题分析到
2025-09-12 19:32:47
232
原创 三十八、案例-修改员工
员工管理系统功能实现摘要 本文介绍了员工管理系统的后端实现,主要包括分页查询、批量删除、新增员工、根据ID查询和更新员工信息等功能。系统采用SpringBoot框架,通过Controller-Service-Mapper三层架构实现。核心技术点包括:使用PageHelper实现分页查询、@DateTimeFormat处理日期参数、@PathVariable接收路径参数、@RequestBody处理JSON请求体等。关键功能如修改员工信息时会自动更新updateTime字段,新增员工时自动设置createTi
2025-09-12 19:09:30
365
原创 三十七、案例-修改员工-查询回显
这篇文章摘要: 本文展示了一个基于Spring Boot的员工信息管理系统后端实现,主要包含查询回显功能的思路与具体代码实现。系统采用分层架构设计,包含Controller、Service、Mapper三层。核心功能包括员工分页查询、批量删除、新增员工和根据ID查询员工信息。其中分页查询使用PageHelper插件实现,支持多条件筛选(姓名、性别、入职日期范围等)。代码示例展示了EmpController处理HTTP请求、EmpService业务逻辑实现以及EmpMapper数据库操作接口的具体实现,体现了
2025-09-12 11:20:17
218
原创 三十六、案例-文件上传-阿里云OSS-集成
本文介绍了阿里云OSS的集成方法和实现步骤。主要内容包括:1)创建UploadController接收上传文件请求;2)实现AliOSSUtils工具类,封装OSS上传逻辑,包含endpoint、accessKey等关键配置;3)pom.xml需添加阿里云OSS SDK和相关JAXB依赖(Java 9+)。通过MultipartFile接收文件,使用UUID生成唯一文件名,最终返回文件访问URL。文末展示了前后端联调成功的结果截图,验证了文件上传至OSS并返回可访问链接的功能实现。
2025-09-10 18:07:11
326
原创 三十五、案例-文件上传(本地存储)-简介
文章摘要:本文介绍了SpringBoot文件上传功能的实现方法。通过upload.html表单提交文件数据,使用UploadController类接收处理上传请求,并在application.properties中配置了文件大小限制(单个文件10MB,请求总量100MB)。关键代码展示了如何接收表单中的文本字段和MultipartFile文件对象,最后通过日志记录上传信息并返回成功结果。文章配有完整的项目结构图和运行结果截图,帮助开发者快速理解文件上传的实现过程。
2025-09-10 15:39:02
284
原创 三十四、案例-员工管理-新增员工
本文介绍了员工管理系统中新增员工功能的实现过程。采用SpringBoot+MyBatis框架,通过EmpController处理请求,EmpService实现业务逻辑,EmpMapper操作数据库。新增员工时自动设置创建和更新时间,并通过注解方式简化SQL语句。功能实现包括分页查询、批量删除和新增员工操作,最终通过Postman测试验证功能正常。系统采用分层架构设计,各层职责明确,代码结构清晰。
2025-09-04 12:05:44
162
原创 三十三、案例-员工管理-删除员工
本文介绍了员工管理系统中删除员工功能的实现,采用Spring Boot+MyBatis框架开发。功能需求分析展示了删除员工的操作流程,技术实现思路包括前端请求处理和后端业务逻辑。代码实现部分包含:1)EmpController接收删除请求;2)EmpService接口定义批量删除方法;3)EmpServiceImpl实现类处理业务逻辑;4)EmpMapper接口及XML文件执行SQL删除操作。核心是通过@DeleteMapping接收员工ID列表,调用Service层批量删除数据,最终由MyBatis动态S
2025-09-04 11:30:42
279
原创 三十二、案例-员工管理-分页条件查询
本文介绍了基于MyBatis-Plus实现员工信息条件分页查询的完整流程。通过EmpController接收分页参数和查询条件,EmpService调用分页插件PageHelper,EmpMapper接口配合XML文件实现动态SQL查询。查询支持姓名模糊匹配、性别筛选和入职日期范围选择,结果按更新时间降序排列并返回PageBean分页对象。整个实现涵盖了控制层、服务层、数据访问层的完整架构,展示了SpringBoot集成MyBatis进行复杂条件查询的典型应用。
2025-09-04 10:15:27
308
原创 三十一、案例-员工管理-分页查询
本文介绍了使用PageHelper分页插件实现MyBatis分页查询的方法。通过引入PageHelper依赖,在Service层设置分页参数并执行查询,最终将结果封装到PageBean对象中返回。代码示例展示了Controller接收分页参数、Service调用分页查询、Mapper定义SQL查询的完整实现过程,以及分页查询的测试结果截图。该方案简化了分页逻辑,提高了开发效率,适用于Spring Boot+MyBatis项目的数据分页场景。
2025-08-19 12:16:46
429
原创 三十、案例-部门管理-新增部门、修改部门(先实现根据ID查询部门才能实现修改部门)、
本文介绍了SpringBoot中部门管理功能的实现,包括新增、查询、修改和删除部门。通过@RestController和@RequestMapping简化了API路径设计,使用@RequestBody和@PathVariable处理请求参数。关键实现包括:1) 使用DeptService接口定义业务逻辑;2) 在DeptServiceImpl中补全创建/更新时间;3) 通过MyBatis注解实现CRUD操作。特别注意修改部门时需先查询当前数据,再更新信息。
2025-08-18 17:53:50
216
原创 二十九、案例-部门管理-删除
本文展示了一个基于Spring Boot的部门管理案例实现,主要包含以下内容: 采用MVC架构,包含Controller层(DeptController)、Service层(DeptService)和Mapper层(DeptMapper) 实现了部门查询和删除功能,使用@GetMapping和@DeleteMapping注解处理RESTful请求 通过@PathVariable获取路径参数,@Autowired实现依赖注入 使用MyBatis注解方式(@Select、@Delete)编写SQL语句 包含日志
2025-08-18 16:29:34
297
原创 二十八、案例-部门管理-查询
本文介绍了基于Restful风格的部门管理系统开发规范及实现过程。主要内容包括:1) Restful风格和统一响应结果的设计规范;2) 部门查询功能的三层架构实现(Controller接收请求、Service业务处理、Mapper数据访问);3) 关键代码展示,包含部门实体类、响应封装类及接口实现;4) 最终实现效果展示,完成了前后端联调测试。项目采用标准MVC架构,通过注解方式简化开发,并实现了规范的接口响应格式。
2025-08-18 16:03:43
406
原创 二十七、动态SQL
本文介绍了MyBatis动态SQL的核心用法,包括常用标签和实际应用案例。主要内容有:1)动态SQL基础概念;2)if、where、set标签实现条件查询和动态更新;3)foreach标签实现批量删除操作;4)sql/include标签管理SQL片段。通过员工管理案例,展示了如何动态构建SQL语句,包括条件查询、字段更新和批量删除等常见场景。最后总结了各标签的功能特点,如if用于条件判断、where自动处理AND连接、set动态更新字段、foreach遍历集合等,为MyBatis开发提供了灵活高效的SQL构
2025-08-16 16:37:56
407
原创 二十六、Mybatis-XML映射文件
本文介绍了MyBatis中XML映射文件的基本使用。主要内容包括:XML映射文件的配置方式、MyBatisX插件的使用场景、XML文件与注解方式的选择标准(复杂SQL建议使用XML)。通过员工管理模块示例展示了两种方式的混合使用:简单CRUD操作使用注解(如@Select、@Insert),复杂条件查询则使用XML映射文件配置。其中XML文件通过<select>标签定义SQL查询,并支持动态参数绑定和结果集映射。文章还提供了完整的项目目录结构和EmpMapper接口代码示例,展示了如何在实际开发
2025-08-16 15:31:51
302
原创 二十五、Mybatis-基础操作-新增、更新、查询、条件查询
本文介绍了MyBatis在Spring Boot中的CRUD操作实现,包括新增员工、主键返回、更新操作和条件查询等功能。通过EmpMapper接口的注解方式实现了SQL映射,使用@Options注解实现主键返回,@Update注解完成更新操作,并通过@Param解决多参数映射问题。测试类中演示了各项操作的具体调用方式,包括构造员工对象和执行数据库操作。还介绍了MyBatis的驼峰命名自动映射配置,简化了数据库字段与Java属性的映射。整个过程展示了如何通过简洁的注解方式实现常见的数据持久化操作。
2025-08-15 20:12:39
452
原创 二十四、Mybatis-基础操作-删除(预编译SQL)
本文介绍了在SpringBoot项目中集成MyBatis的基础操作,重点演示了删除功能的实现。主要内容包括:1) 项目环境准备,需引入三项必要依赖;2) 通过@Delete注解实现删除操作,展示Mapper接口和测试类代码;3) 配置日志输出以查看预编译SQL效果;4) 讲解预编译SQL的优势,包括性能提升和防止SQL注入;5) 对比#{}和${}参数占位符的区别,强调#{}的预编译特性。文章通过实际代码示例和配置说明,帮助开发者快速掌握MyBatis基本操作和最佳实践。
2025-08-15 17:53:52
430
原创 二十三、Mybatis-数据库连接池、lombok工具包介绍
本文介绍了数据库连接池技术及Druid连接池的配置方法,包括在pom.xml中添加依赖。同时讲解了MyBatis框架简化数据库操作的方式,以及Lombok工具通过注解自动生成代码的功能。文章展示了使用Lombok简化POJO类编写的示例代码,并附带了相关配置截图。这些技术组合能有效提升Java开发效率,减少样板代码量。
2025-08-14 16:57:39
297
原创 二十二、Mybatis-快速入门程序
摘要:本文详细介绍了SpringBoot整合MyBatis的快速入门步骤,包括创建工程、添加依赖、编写实体类User.java、Mapper接口UserMapper.java、配置数据库连接、编写测试类等完整过程。通过注解方式简化了传统XML配置,实现了数据库查询功能,并展示了项目目录结构、数据库表设计以及各模块核心代码,最后附带了测试运行结果截图。整个流程清晰展示了从环境搭建到功能实现的完整开发过程。
2025-08-13 18:03:53
377
原创 二十一、MySQL-事务、索引
本文介绍了数据库事务和索引的核心概念。事务部分阐述了四大特性(ACID),并提供了事务操作的SQL示例代码,包括开启、提交和回滚事务。索引部分介绍了其优缺点、结构类型,并给出创建、查询和删除索引的SQL语法示例。文章以图文结合的方式对事务和索引的关键知识点进行了总结,涵盖了从基础概念到实际应用的操作指南,适合数据库初学者快速掌握这两个重要的数据库技术要点。
2025-08-13 16:53:43
225
原创 二十、MySQL-多表查询、子查询、案例
本文介绍了SQL多表查询的三种主要方式:内连接、外连接和子查询。内连接通过隐式或显式方式关联表数据,外连接分为左外连接和右外连接以保留单边表全部数据。子查询部分详细讲解了标量子查询、列子查询、行子查询和表子查询四种类型及其应用场景。最后通过一个餐饮系统案例,演示了多表查询在实际业务中的应用,包括查询特定条件的菜品信息、分类统计、套餐详情等复杂查询场景。这些技术要点涵盖了SQL多表查询的核心知识体系。
2025-08-12 17:54:31
217
原创 十九、MySQL-DQL-基本查询、条件查询、聚合函数、分组查询、排序查询、分页查询
本文介绍了SQL数据库查询语言(DQL)的基本操作,包括基本查询、条件查询、聚合函数、分组查询、排序查询和分页查询等核心内容。通过具体示例展示了如何查询指定字段、使用别名、去重查询、多条件筛选、日期范围查询等操作技巧。同时详细讲解了聚合函数(count/min/max/avg/sum)的使用方法,以及分组查询(group by)和排序(order by)的实现方式。最后通过两个实际案例演示了条件分页查询和员工职位统计的SQL写法,包括使用case表达式进行数据分类统计。文章配有清晰的SQL代码示例和运行结果
2025-08-11 11:59:32
187
原创 二十、MySQL-DQL-条件查询
本文介绍了DQL(数据查询语言)中的条件查询操作,通过SQL示例展示了多种查询条件的使用方法。包括:等值查询(=)、范围查询(<=, between and)、空值判断(is null/is not null)、不等值查询(!=或<>)、组合条件(and/or)、集合查询(in)以及模糊查询(like)。特别演示了日期范围查询、多条件组合以及姓名模糊匹配(如两字姓名和姓张查询)等实用场景。这些查询技巧是数据库操作的基础,能有效提升数据检索的精确性和灵活性。
2025-08-09 17:53:08
216
原创 十九、MySQL-DQL-基本查询
本文介绍了SQL基本查询操作的四种常见用法:1)查询指定字段name和entrydate;2)查询返回所有字段的两种写法(推荐列出字段名的方式);3)为查询结果设置别名(支持AS关键字或直接空格分隔);4)使用DISTINCT关键字查询不重复的职位类型。每种查询都配有示例代码和执行结果截图,直观展示了不同查询方式的效果差异和注意事项。
2025-08-09 17:11:45
240
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅