Spring AOP 属于运行时增强,而 AspectJ 是编译时增强。 Spring AOP 基于代理(Proxying),而 AspectJ 基于字节码操作(Bytecode Manipulation)。
Spring AOP 已经集成了 AspectJ ,AspectJ 应该算的上是 Java 生态系统中最完整的 AOP 框架了。AspectJ 相比于 Spring AOP 功能更加强大,但是 Spring AOP 相对来说更简单,
如果我们的切面比较少,那么两者性能差异不大。但是,当切面太多的话,最好选择 AspectJ ,它比 Spring AOP 快很多。
Spring AOP:是 Spring 框架提供的一种 AOP 实现,主要用于运行时的代理机制。
SpringMVC是一种基于 Java 的实现MVC设计模型的请求驱动类型的轻量级Web框架,属于Spring框架的一个模块。
它通过一套注解,让一个简单的Java类成为处理请求的控制器,而无须实现任何接口。同时它还支持RESTful编程风格的请求。
Spring MVC 基于 servlet API 构建的,可以说核心就是 DispatcherServlet,即一个前端控制器。它通过注解、配置等方式,将 HTTP 请求映射到控制器方法,然后由控制器处理请求逻辑并将数据返回给视图层进行渲染。它的主要功能包括请求映射、数据绑定、视图解析、表单处理、异常处理等,帮助我们快速构建 Web 应用。
Spring 和 Spring MVC 的关系是什么?
Spring 是基础,Spring MVC 构建于 Spring 核心之上,利用其提供的容器管理、依赖注入、AOP 等功能来实现 Web 层的处理
什么是MVC模式?
父容器:父容器指的是 Spring 的根容器,通常是 Spring 应用上下文(AplitcationContext),如 ContextLoaderListener加载的根容器。它主要用于管理应用程序的全局Bean,如服务层(Service)、数据访问层(DAO)等。
子容器:是Web 容器,每个 DispatcherServlet 实例都会创建一个子容器,用于管理 Web 层(如控制器和拦截器)中的 Bean
父子容器的关系:
子容器可以访问父容器的 Bean:如果一个 Bean在父容器中定义,子容器也可以直接访问它,这种机制有助于 Web层(子容器)使用服务层或 DAO 层(父容器)中的 Bean