简介
该用户还未填写简介
擅长的技术栈
可提供的服务
暂无可提供的服务
要获取类的信息,我们第一反应一般是通过反射获取,因为类加载器将类加载到虚拟机中,会读取 class 文件,而 class 文件中包含着完整的类的信息。那么 Spring 是怎么做的呢?是否还有其他更高效的方式?跟随源码,让我们一探究竟。
Spring Framework 主要有 9 个核心特性,包括 IoC 容器、事件、资源、国际化、校验、数据绑定、类型转换、表达式以及 AOP。可以说,表达式是最没有存在感的核心特性了,用户直接使用的场景实在太少,这也是我一直没有提及它的原因。不过项目中确实有使用到它的地方,恰好最近整理 Spring 核心特性,为了知识结构完整性姑且总结一篇。
Spring MVC 父子容器是初学 Spring MVC 时最先接触到 Spring 知识点之一,还记得我刚工作那会,项目基础架构是其他同事搭建的,其中就用到了 Spring MVC 中的父子容器,还把 Spring MVC 中的不同层拆成了不同的 maven 模块。这里暂不讨论这种模块拆分方式的优劣,Spring 为什么设计出具有层次结构的容器呢?Web 环境中什么场景会用到这种具有层次结构的
Spring 自 1.x 版本开始逐渐支持注解,到 3.x 版本进入黄金时期,如今 Spring 已经进入到 5.x 的时代。由于 Java 注解本身的限制,例如 注解无法继承,Spring 对注解也进行了增强,Spring Framework 在 Github Wiki 已经详细的介绍了对注解的增强,Spring 称之为 注解编程模型。
MyBatis-Plus 是一个集多种特性于一身的项目,包括内置通用 Mapper、分页插件、代码生成等,这些功能使开发者对它爱不释手。MyBatis-Plus 最核心的功能要数通用 Mapper 了,时间长了,我们不免会产生疑问,BaseMapper 是怎样帮我们注入 SQL 的?带着这个疑问我们开始今天的分析。
拦截器 Interceptor 在 Spring MVC 中的地位等同于 Servlet 规范中的过滤器 Filter,拦截的是处理器的执行,由于是全局行为,因此常用于做一些通用的功能,如请求日志打印、权限控制等。
MyBatis-Plus 是一个集多种特性于一身的项目,包括内置通用 Mapper、分页插件、代码生成等,这些功能使开发者对它爱不释手。MyBatis-Plus 最核心的功能要数通用 Mapper 了,时间长了,我们不免会产生疑问,BaseMapper 是怎样帮我们注入 SQL 的?带着这个疑问我们开始今天的分析。
Spring Boot 提出了多项开箱即用的功能特性,但归根到底还是围绕简化应用的创建、开发、运行。开发环境下我们经常对项目代码进行变动,如果每次都重新启动应用则会消耗大量的时间,为此就产生了多种进行热部署的方案,可以在不重启的情况下使用新的代码。