SpringMVC Spring Aop 和一些项目需要的注解解析

SpringMVC

image

1.客户端请求-->dispatcherServlet接收

1.根据用户请求进入dispatcherServlet

通过 HandlerMapping 找到对应 Controller

2.handerlerMapper根据用户请求进入dispatcherServlet

HandlerAdapter 调用 Controller 方法

3.根据handerlerMapper获取拦截(字符串处理很快)器获取地址获取配置需要
4.提取需求列表然后取出执行目标controller 执行后参数和地址
5.执行参数进行执行通过后置进行处理request 转向需要逻辑地址根据前缀后缀来得到物理地址解析后获取具体的view进行渲染页面操作生成一个静态界面获取拦截(字符串处理很快)器获取地址获取配置需要
6.提取需求列表然后取出执行目标controller 执行后参数和地址

Controller 处理业务,返回 ModelAndView

Controller 处理业务,返回 ModelAndView

7.执行参数进行执行通过后置进行处理request 转向需要逻辑地址根据前缀后缀来得到物理地址解析后获取具体的view

渲染页面,响应给客户端

8.进行渲染页面操作生成一个静态界面

spring框架

image

1.IOC控制反转(ioc容器提供啥用啥)
2.依赖注入(DI)单例模式
3.面向切面的编程
四大注解:
写在类上就可以放到ioc容器的注解:(都是把当前类对象放入到ioc容器中key是类名首字母小写)
以下四个是在类上写
@Controller
@Service
@Component
@Repositry
组件:不在这三层中需要用这些注解
@Mapper(在接口上写)
mybatis提供修饰mapper接口不在写实现类
自动生成一个该接口的实现类(告别mybatis工具类)
@Autowire拿属性

AOP面向切面编程

image

切面通过切点表达式连接连接点和植入方法切面相当于三明治或者U盘即插即用

Aop底层

cglib和jdk动态代理

cglib底层是重写

jdk动态代理底层

反射是啥?

在程序运行时,拿到类的结构(类名,方法,属性)并且可以调用他们的方法的过程.

反射有啥用?

1.动态创建对象

2.动态调用方法

jdk动态代理是啥?

他是Spring AOP的底层实现之一.

专门用来不改变原有代码的前提下增加代码功能.

jdk动态代理和cglib代理的区别?

要用jdk动态代理

必须要有接口,底层是用多态和反射来实现接口.

生成速度快执行稍慢.

要用CGLIB代理

不需要接口,底层是用继承和重写方法实现

代理不了final类和final方法常量类常量方法

关于一些项目注解的解析

注解组合 适用场景 返回结果
@Controller + 方法返回 String 传统后端渲染 跳转到 JSP/Thymeleaf 页面
@Controller + @ResponseBody 混合模式 部分接口返回数据,部分跳转页面
@RestController 纯前后端分离 所有方法都返回 JSON / 文本
@RequestBody 接收 JSON 参数 自动封装为 Java 对象

posted on 2026-01-28 22:54  Zyy_32opr  阅读(21)  评论(0)    收藏  举报

导航