Spring笔记
Spring基础什么是 Spring 框架Spring是一个生态体系,其中包含了Spring Framework、Spring Boot、Spring cloud等等。我们一般常说的Spring框架指的是Spring Framework Spring Framework所有模块源码地址:https://github.com/spring-projects/spring-framework 模块 简介 Spring AOP 提供了切面编程的功能,可以对现有的类进行横向抽取代码实现统一的功能。 Spring Aspects 集成了AspectJ,提供额外的切面实现,可使用AspectJ注解进行切面编程。 Spring Beans 提供BeanFactory、FactoryBean等工厂类的实现,支持循环依赖解决和Bean生命周期管理等功能。 Spring Context 面向应用程序的上下文,提供JNDI查找、事件传播和资源加载等企业级功能。 Spring Context Indexer 用于生成Spring应用程序上下文中所有Bean的索引。 Spring ...
SpringMVC笔记
Spring MVC 基础MVC设计模式 MVC是Model-View-Controller的缩写,是一种经典的软件设计模式,用于组织和管理应用程序的代码结构。 模型(Model):模型代表应用程序的数据和业务逻辑。它负责处理数据以及与数据库、文件系统等进行交互,并提供对外的接口供控制器使用。模型通常会封装数据的读取、写入、更新和删除操作。 视图(View):视图是用户界面的呈现层,负责展示模型中的数据给用户。它通常是用户可以看到和与之交互的部分,如网页、窗口、按钮等。视图可以直接从模型获取数据,但不能修改数据,只能通过控制器来间接操作模型。 控制器(Controller):控制器充当模型和视图之间的协调者,处理用户的输入和交互。它接收用户的请求并根据请求调用合适的模型方法来处理数据操作,最后将结果传递给视图进行展示。控制器还负责将模型和视图解耦,确保它们之间的独立性。 Spring MVC简介Spring MVC 是 Spring 框架的一个模块,是基于 MVC 设计模式的轻量级、灵活且功能强大的框架,用于构建可扩展和高效的 Web 应用 Spring MVC 核心组件 前 ...
MyBatis笔记
MyBatis基础MyBatis概述(1)MyBatis 是一款优秀的持久层框架,内部对 JDBC 代码进行了封装,使开发者只需要关注 SQL 语句本身,不需要花费精力去处理加载驱动、创建连接、创建 statement 等繁杂的过程 (2)MyBatis可以使用XML或注解,来配置SQL语句和参数映射关系,将POJO映射为数据库中的记录,避免了JDBC代码和手动设置参数以及获取结果集 ORM思想ORM(Object Relational Mapping)是一种编程思想,它的主要目标是将关系数据库中的数据表映射到面向对象编程语言的类和对象上 Java概念 数据库概念 类 表 类中属性 字段/列 类的对象 记录/行 持久化层技术对比 持久化层技术 简介 JDBC 代码冗长,开发效率低,耦合度高,不易维护,硬编码,操作繁琐 Hibernate 和 JPA 操作简便,开发效率高,内部自动生产的 SQL,不容易做特殊优化,反射操作太多,导致数据库性能下降 MyBatis 轻量级,性能出色,开发效率稍逊于HIbernate,但是完全能够 ...
MyBatis-Plus笔记
MyBatis-Puls简介(1)MyBatis-Plus(简称MP),是MyBatis的增强工具,在MyBatis的基础上只做增强不做改变,为简化开发,提高效率而生 (2)MyBatis-Puls特性 特性 简介 无侵入 只做增强不做改变,引入它不会对现有工程产生影响,如丝般顺滑 损耗小 启动即会自动注入基本 CURD,性能基本无损耗,直接面向对象操作,BaseMapper 强大的 CRUD 操作 内置通用 Mapper、通用 Service,仅仅通过少量配置即可实现单表大部分 CRUD 操作, 更有强大的条件构造器,满足各类使用需求,简单的CRUD操作不用自己编写 支持 Lambda 形式调用 通过 Lambda 表达式,方便的编写各类查询条件,无需再担心字段写错 支持主键自动生成 支持多达 4 种主键策略(内含分布式唯一 ID 生成器 - Sequence),可自由配置,完美解决主键问题 支持 ActiveRecord 模式 支持 ActiveRecord 形式调用,实体类只需继承 Model 类即可进行强大的 CRUD 操作 支持 ...
SpringBoot笔记
SpringBoot基础SpringBoot简介Spring Boot是一个用于创建独立、生产级别的Spring应用程序的框架。它简化了传统的Spring应用开发流程,提供了一种快速、方便的方式来配置和构建Spring应用。SpringBoot的主要特点如下 简化开发:Spring Boot提供了很多开箱即用的特性和功能,例如,自动注册Servlet、Filter和Listener,简化数据库访问(如JPA、MyBatis等)、缓存管理、安全认证等常用功能。 简化配置:Spring Boot通过自动配置(Auto-configuration)功能,根据应用的类路径和依赖来自动推断和配置Spring应用所需的各种组件。开发者只需要进行少量的配置即可,减少了繁琐的XML配置,并提高了开发效率。 注解驱动:Spring Boot采用注解驱动的开发方式,简化了开发者的编码工作,提高了开发效率。 内嵌服务器:Spring Boot内嵌了常用的Web服务器(如Tomcat、Jetty等),无需手动配置和安装,可以直接运行Spring Boot应用程序。 自动依赖管理:Spring Boot会根据 ...
SpringCloud笔记
常见架构演变过程 传统架构 → 垂直应用架构 → 分布式架构 → SOA架构 → 微服务架构 传统架构:采用单体式应用,将所有功能都集成在一个应用中,开发和部署较为简单,但可扩展性差,维护和更新困难; 垂直应用架构:采用垂直划分的方式,将应用按照功能或业务进行拆分,并部署到不同的服务器上,缓解了单体应用的可扩展性问题,但应用之间存在耦合,系统复杂度高,并发展到一定程度后难以维护; 分布式架构:通过分布式计算技术将应用部署在不同的服务器上,实现应用间的解耦,部署和处理大规模数据较为方便,但不同应用之间需要通过远程调用来通信,网络延迟等问题需要考虑; SOA架构:采用面向服务的架构模式,将应用拆分成可重用的服务,服务之间使用标准化的协议通信,实现联合编排和可重用性,但复杂度高、部署和维护成本较高; 微服务架构:基于SOA架构模式,进一步将应用拆分为更小的、相互独立的服务,每个服务都有自己的数据存储和业务逻辑,服务间通过轻量级协议进行通信,提高了可扩展性和灵活性,但也需要考虑分布式事务和服务治理等问题。 SpringCloudSpringCloud简介(1)Spring Cloud是基 ...
SpringSecurity笔记
Spring Security简介(1)Spring Security是Spring 家族中的安全框架,并配备了流行的安全算法实现捆绑在一起 (2)Spring Security与Spring MVC有很好地集成,充分利用了Spring中的 IOC(控制反转)、DI(依赖注入)、AOP(面向切面编程)的功能 (3)一般Web应用都需要进行安全控制,安全控制主要包括两个操作“认证”与“验证”(有时候也会叫做权限控制)安全控制(认证和授权)也是SpringSecurity作为安全框架的核心功能 认证授权 简介 认证 验证当前访问系统的,是不是本系统的用户,并且要确认具体是哪个用户 授权 经过认证后,判断当前用户是否有权限,进行某个操作 Spring Security可扩展功能 扩展 简介 鉴权失败处理器 Security 鉴权失败默认跳转登录页面,可以实现 AccessDeniedHandler 接口,重写 handle() 方法来自定义处理逻辑; 然后参考配置类说明将处理器加入到配置当中。 验证器 实现 AuthenticationProvider ...
SpringRetry笔记
Spring Retry是一个用于处理失败重试的轻量级框架,它可以集成到Spring应用程序中。它提供了一些注解和模板,帮助开发者在方法或代码块中实现错误重试逻辑。
SpringCache
SpringCache是Spring提供的一个缓存框架
SpringDataJPA
SpringDataJPA是Spring基于ORM框架、JPA规范的基础上封装的一套JPA应用框架,底层使用了Hibernate的JPA技术实现,可使开发者用极简的代码即可实现对数据的访问和操作。
SpringValidation笔记
在日常的接口开发中,为了防止非法参数对业务造成影响,经常需要对接口的参数做校验 但是靠代码对接口参数一个个使用 if-else 校验的话就太繁琐了,代码可读性极差 Validator框架专门用来进行接口参数的校验,使开发人员在开发的时候少写代码,提升了开发效率; JSR规范JCP与JSR(1)JCP代表Java社区流程(Java Community Process),是由Oracle公司创建的一个开放组织,提供了一套明确的流程和机制,使任何人都能够参与对Java技术的发展和规范制定过程的审阅和反馈,旨在管理和推动Java技术和平台的发展 (2)JSR代表Java规范请求(Java Specification Request),当有人提出一项新的Java规范时,他们将向JCP组织提交一个JSR,一旦JSR被接受,就会组建一个专门的工作组来开发和推动该规范的制定过程。 现有的JSR规范Web Service技术 Java Date与Time API (JSR 310) Java API for RESTful Web Services (JAX-RS) 1.1 (JSR 311) Im ...
SpringWebSocket
Spring WebSocket 是基于 Spring 框架的一个实现,用于在 Web 应用中实现 WebSocket 功能,通过 Spring WebSocket,可以在 Web 应用中实现实时的消息推送、聊天室、在线游戏、实时数据更新等功能,为用户提供更加交互性的体验。

















