摘要:
这篇文章涵盖了自定义SQL、分页、更新和删除等操作。在自定义SQL部分,提及了配置mapper文件的路径以及对应的XML配置文件示例,以及如何在测试中调用自定义的方法。分页部分介绍了MyBatis-Plus中的物理分页和内存分页的区别,以及如何配置分页插件和进行分页查询。更新方法详解部分演示了不同方式的更新操作,包括根据ID更新、条件构造器更新、快速更新少量字段以及使用Lambda表达式进行更新等。最后,删除操作展示了根据ID删除、根据Map条件删除、批量删除以及根据条件构造器删除等操作方法。 阅读全文
摘要:
介绍了MyBatis-Plus中的各种查询方法和条件构造器的使用。包含了普通查询和QueryWrapper进行条件查询,以及针对不同情况的查询示例,包括使用like、lt、gt等操作符以及逻辑操作符如or、and。此外,还提到了使用selectMaps返回特定字段的数据,以及针对特定需求的SQL语句编写,例如使用groupBy和having等聚合函数。最后还介绍了使用Lambda表达式构建查询条件的方式。 阅读全文
摘要:
MyBatis-Plus是致力于简化MyBatis使用的增强工具,旨在提高效率、简化开发流程。其主要特性包括CRUD操作的增强功能,如批量插入和链式查询;条件构造器,通过链式调用构建复杂查询条件;强大的分页插件支持多数据库分页查询;内置代码生成器减少重复CRUD代码编写;以及乐观锁插件确保数据一致性。SpringBoot集成MyBatis-Plus的第一个程序示例了如何创建项目并引入必要依赖(包括热部署、MySQL、lombok和Web),配置数据源和实体类,以及实现Mapper接口。测试部分展示了如何通过MyBatis-Plus的BaseMapper进行数据查询,使用selectList(null)进行简单的查询操作,并展示了返回的数据。介绍了BaseMapper中常用的方法,包括插入、删除、更新、查询等操作。同时,对MyBatis-Plus中的常用注解如@TableName、@TableId、@TableField进行了详细说明,并指出了排除非表字段的三种方式。 阅读全文
摘要:
第十九章介绍了Jasypt,用于在Spring Boot应用中加密敏感信息。通过jasypt-spring-boot-starter依赖项,配置加密算法和密码,并使用StringEncryptor加密和解密。加密后的信息可嵌入属性文件中,提高数据库密码等敏感信息的安全性。加解密基于密钥,建议将密钥通过安全方式加载,确保信息安全。 Jasypt确保敏感数据在存储和传输中更为安全。 阅读全文
摘要:
第十七章着重讲解了异常处理的方法。传统单体架构下,全局异常处理类通过实现HandlerExceptionResolver接口实现异常的统一处理,可以根据不同异常返回不同的错误页面。但在前后端分离的开发中,使用@ControllerAdvice和@ExceptionHandler注解更为方便。@ControllerAdvice用于修饰类,定义全局性的处理器方法;@ExceptionHandler用于修饰方法,捕获特定类型的异常并进行处理。
第十八章介绍了CORS(跨源资源共享),用于解决跨域请求问题。同源策略限制了不同源之间的前端JavaScript代码无法直接进行跨域请求。CORS的核心思想是在服务器端响应中添加特定的HTTP头部,允许其他源的请求访问服务器资源。通过@CrossOrigin注解或自定义跨域配置类,在Spring Boot中可以局部或全局解决跨域问题。 阅读全文
摘要:
这一章讲述了RESTful API的基本概念和设计原则。通过比较传统方式和RESTful方式操作资源的URL定义,能明显看出RESTful的简洁和意图明确。RESTful的API设计使用不同的HTTP方法来操作资源,比如GET用于查询、POST用于新增、PUT用于更新全部字段、PATCH用于更新部分字段、DELETE用于删除。在第一个RESTful风格的API示例中,使用了@RestController注解,标志着这是一个RESTful风格的控制器,只返回JSON或XML格式的数据。通过不同的HTTP方法(GET、POST、PUT、DELETE)定义了对用户资源的操作,使用@PathVariable注解获取URL路径参数,@RequestBody将请求体中的JSON数据转换为Java对象。
还介绍了ResponseEntity和HttpStatus,ResponseEntity代表了整个HTTP响应,包括状态码、头部信息和响应体。使用ResponseEntity可以更精细地配置HTTP响应,而HttpStatus是Spring MVC提供的网络状态码的枚举类型。 阅读全文
摘要:
这一章介绍了Thymeleaf,Java模板引擎,用于Web和独立环境,与Spring Boot紧密集成。它适用于有无网络的场景,让美工和程序员分别在浏览器和服务器上查看静态与动态页面。笔记详细讲解Thymeleaf的配置、语法,如th:text提交基本数据、th:each穿越集合,以及通过th:if条件展示内容。还提及了获取对象和集合类型、session作用域数据和项目资源地址的方法。 阅读全文
摘要:
这份笔记介绍了拦截器的作用与特点,类似于JavaWeb中的Filter,拦截器在Spring MVC中负责请求预处理和后处理,限定于Controller请求且能中断请求轨迹。实现拦截器需实现HandlerInterceptor接口,包含preHandle、postHandle和afterCompletion等方法,分别处理请求前、后及完成后的逻辑。配置拦截器需要创建配置类,通过addInterceptors方法将拦截器添加到InterceptorRegistry中,并可通过order参数调整执行顺序。
另外,介绍了Spring Boot项目的部署方式。传统服务器部署分为war和jar两种方式,war部署需要配置pom.xml、删除内嵌Tomcat依赖、配置入口类并在Maven中进行打包,然后在Tomcat中运行war文件;jar部署则是通过Maven打包后直接运行jar文件。总的来说,本篇笔记涵盖了拦截器的使用和Spring Boot项目不同部署方式的具体步骤。 阅读全文
摘要:
这章内容详细地介绍了文件上传和下载的实现过程。文件上传涉及前端页面、Controller 方法和配置修改,其中前端页面通过表单的提交方式和enctype属性设置来实现文件上传,而后端的 Controller 方法则通过接收 MultipartFile 类型的参数来处理上传的文件,并将文件保存到服务器指定的位置。另外,也介绍了如何修改上传文件大小限制和解决在 Jar 包部署 Linux 上绝对路径上传文件失效的问题。
对于文件下载,通过 Controller 方法响应前端的请求,实现文件的下载功能。Controller 方法中读取服务器上指定位置的文件,然后通过响应输出流将文件内容传输给前端,从而实现文件的下载功能。同时,提供了在前端页面中链接到文件下载页面的示例,分别展示了在线打开和附件下载两种方式。 阅读全文
摘要:
这篇笔记深入介绍了AOP(面向切面编程),这个技术可以在代码中以模块化的方式实现横切关注点。它解决了业务层代码中存在的问题,如额外功能代码的冗余和每个方法都需要书写一遍额外功能代码的情况。
AOP在Spring中的实现主要依靠Aspect切面、Advice通知和Pointcut切入点的组合。Advice有不同的类型,如@Before、@AfterReturning、@AfterThrowing、@After、@Around,每种通知类型有不同的执行策略和用途。
这份笔记提到了JoinPoint参数,这是用于获取方法执行信息的参数,通过它可以获取方法的签名、参数列表等信息。而@Around是一种环绕通知,在这个通知中,可以控制目标方法的执行过程,这使得它非常灵活。
还介绍了通过自定义注解@annotation实现切面的方式,它能够使切面的定义更加灵活和可重用。通过将自定义注解加在业务逻辑上,实现了对目标方法加入额外功能的目的。 阅读全文