控制器Controllerf负责处理由前段调度器(DispatcherServlet)分发的请求,把用户的请求
封装为一个model ,返回对应的view展示。
@Controller表示 标记一个类就是SpringMVC的Controller对象,配合使用@RequestMapping定义一些请求和方法之间的映射,以便于被外界访问到。
@RequestMapping是一个用来处理请求地址映射的注解,作用于类和方法.
@Autowired做bean的注入时使用。
@PathVariable用于请求URL中的模板变量映射到功能处理方法的参数上,即取出URL模板中的变量作为参数。
@ResponseBody用于将Controller方法返回的对象,通过适当的放法转换为指定格式(字符串),然后写入Response对象的body区域。
@Component相当于通用的注解。
Spring能有效的组织你的中间层对象,为模块之间降低耦合。还包括轻量级,面向切面,控制反转等。
ioc意味着将对象交给ioc容器管理,帮助我们管理对象,给对象注入属性等,需要的时候拿即可。
ioc降低了模块与模块之间的耦合,降低流类与类之间的耦合,不用做重复的对象创建,需要时由ioc容器创建好传递过来。
Spring依赖注入,主动寻找依赖属性,通过set方法或构造函数注入到对象内部。
AOP:将业务中重复的操作进行封装,实现统一管理,以动态代理的方式注入到方法中。
设计模式:
1.代理模式:在AOP中被用到的比较多。
2.单例模式:在Spring配置文件中定义的bean默认为单例模式。
3.模板方法模式:解决代码重复问题。
4.前端控制器模式:spring提供了DispatcherServlet来对请求进行分发。
5.依赖注入模式:贯穿于BeanFactory的核心理念。
6.工厂模式:
简单工厂模式,BeanFactory根据传入一个唯一的标识来获得bean对象,由工厂类根据传入的参数动态决定创建哪一个产品类
7.观察者模式:spring事件驱动模型使用的是观察者模式,主要体现于listener的实现,applicationListener接口(事件监听器)
SpringMVC框架是轻量级、解耦合的框架,提供模型-视图-控制器的不同支持。
SpringMVC工作原理:
1.用户发送请求到前端控制器DispatcherServlet
2.前端控制器收到请求调用HandlerMapping处理器映射器
3.处理器映射器根据请求信息找到对应具体的处理器,找到对应实现类中的Handler,返回Handler
给前端控制器
4.前端控制器调用HandlerAdapter处理器适配器,解析对应的请求,完成业务逻辑,并返回一盒模型视图ModelAndView
5.前端控制器调用视图解析器ViewReslover,解析后返回具体的View
6.前端控制器根据View进行渲染视图,最终响应用户的请求。