12 2023 档案
摘要:介绍了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实现切面的方式,它能够使切面的定义更加灵活和可重用。通过将自定义注解加在业务逻辑上,实现了对目标方法加入额外功能的目的。
阅读全文
摘要:实现一个登录注册,增删改查功能的系统,使用jsp作为前端,包括验证码生成的系统
阅读全文
摘要:在第七章中,介绍了本地测试的方式,使用了@SpringBootTest注解来启动本地Spring环境,方便进行功能测试,并且提到了spring-boot-devtools依赖可以帮助实现自动重启,增加了开发效率,讲解了热部署的概念和使用。引入spring-boot-devtools依赖并在IDEA中进行相应的设置,使得在开发过程中能够实现代码和资源文件的实时更新,提高了开发效率。最后,第九章着重介绍了日志处理,特别是Logback框架。讲解了日志的级别、根全局日志、指定包的日志级别配置以及生成日志文件的操作。通过配置,实现了指定包的日志级别、输出,并且使用Logger代替打印输出,使日志信息更加清晰可控
阅读全文
摘要:介绍了如何集成JSP模板到Spring Boot项目中。通过引入JSP依赖、配置JSP视图解析器以及指定JSP访问目录,实现了JSP的集成和访问。以及展示了整合MyBatis框架的步骤。首先介绍了引入MyBatis相关依赖的过程,然后讲解了@MapperScan注解的使用,用于扫描DAO接口所在包并将其交给工厂创建对象。随后展示了整合MyBatis的相关配置,包括数据源、mapper文件位置和实体类别名的指定。最后,提供了实体类、Service、DAO和Mapper文件的示例,展示了如何通过这些组件实现对数据库的操作。
阅读全文
摘要:介绍了@SpringBootApplication的详解,解释了该注解是由多个注解组成的组合注解,并介绍了其中的元注解,如@SpringBootConfiguration、@EnableAutoConfiguration和@ComponentScan。同时展示了在内嵌服务器中传递参数进行测试,以及配置文件拆分和加载外部配置文件的方法。第四章内容围绕工厂创建对象展开。演示了通过配置文件注入基本类型和对象,并通过@Value注解以及@ConfigurationProperties注解获取这些属性。提供了配置元数据的依赖,使得在配置文件中输入被@ConfigurationProperties修饰的对象名后,可以有对其成员变量名的提示。
阅读全文
Spring Boot学习随笔-第一个SpringBoot项目快速启动(org.springframework.boot、@SpringBootApplication、application.yml)
摘要:快速启动SpringBoot项目,包括引入spring-boot-starter-parent,@SpringBootApplication入口类注解、自动保存刷新pom.xml
阅读全文
摘要:首先回顾了传统SSM开发步骤,介绍了项目实现过程,从需求分析、设计、编码到测试的流程。展示了一个简单的员工信息管理功能,并提供了环境搭建及相关依赖配置的详细代码和配置。接着,提出了SSM开发存在的问题,如配置繁琐和版本兼容性。第二章介绍了Spring Boot的引言,解释了Spring Boot的概念、作用以及优势,着重强调了其约定优于配置的原则。指出Spring Boot简化了项目的配置和开发流程,减少了繁琐的XML配置,提供了自动配置和默认约定。
阅读全文
摘要:这份笔记详细介绍了Spring MVC中的关键概念。在Ajax集成部分,通过引入相关依赖和开发控制器,展示了如何以JSON格式返回数据。特别强调了日期格式修正,使用@JsonFormat注解来规范日期显示。
拦截器章节深入探讨了拦截器的作用、特点和开发过程。与AOP进行对比,并解释了其在请求处理阶段的专注任务。通过实例展示了拦截器的测试结果,并对执行顺序进行了说明,使读者更清晰地理解拦截器的运行机制。
全局异常处理机制部分解决了控制器存在的问题,详细阐述了异常处理器的实现。强调了基于不同业务异常跳转到不同页面的实现,并提供了工作流程图以展现异常处理器的运作方式。
阅读全文
摘要:文件上传允许用户将本地文件传输到服务器,文件下载则允许用户从服务器下载文件到本地。在Spring MVC中,文件上传需要页面表单、后端配置解析器,并在控制器中处理上传逻辑。对文件重命名、按日期管理文件、设置文件大小限制是常见做法。文件下载需要页面提供下载链接,在后端设置响应类型和文件头信息,将文件内容输出到响应流中。解决中文文件名乱码需对文件名进行UTF-8编码。
阅读全文
摘要:第二部分主要涵盖了 SpringMVC 中作用域处理,介绍了 Request 作用域、Session 作用域和应用作用域的处理方式,以及 @ModelAttribute 注解的使用和 ModelAndView 的使用方法;最后,探讨了静态资源的处理方式,包括使用 DefaultServlet 或者 default-servlet-handler 进行静态资源的访问。这一章涉及了多个方面,从控制器跳转到作用域处理,最后到静态资源管理,为了更好地管理和优化 SpringMVC 项目提供了丰富的思路和解决方案。
阅读全文
摘要:主要探讨了SpringMVC中的流程跳转和不同形式的控制器之间的跳转方式。首先回顾了JavaWeb中流程跳转的核心代码和页面跳转方式,并展示了在Web.xml中添加Servlet以及执行这些方式的示例。随后,介绍了Spring MVC中的四种跳转形式,包括控制器到JSP页面的forward和redirect,以及控制器之间相互跳转的方式。最后,讨论了SpringMVC中作用域处理的方式,包括使用Model和ModelMap进行作用域处理,避免了与ServletAPI耦合的问题。
阅读全文