SpringMVC

Spring MV 本身是与 Spring 框架结合而成的, 同时拥有 Spring 的优点((例如依注入 CI )和切面编程( AOP )等)。
SpringMV 提供了强 约定大于 契约式编程支持, 提供一种软件设计范式,减少软件开发人 决定 次数 开发 需规定应用中不符合约定 部分。
可以方便地与其 视图技术( FreeM rker 等〉进行整合 。由 Spring MVC 的模型数据往往是放置在 Map 数据结构中的 因此其可以很方便地被其他框架引用。拥有十分简 异常处理机制。
可以十分灵活 实现数据验证、格式 和数据绑定机制,可以使用任意对象进行数据绑定操作。

请求流程:


image.png

第一步 用户单击某个请求路径 发起一个 qu st 请求, 请求会被前端控制器( DispatcherServlet )处理。
第二步 ,前端控制器( DispatcherServlet )请求 理器映射器( HandlerMapping )去查找Handler。可依据注解或者 XML 配置去查找。
第三步 ,处理器 映射器( HandlerMapping )据配置找到 Handler(可能包含若干Intercptor拦截器 ,返回给前端控器( DispatcherServlet )。
第四步,前端控制器(DispatcherServlet) 请求处理器适配器( HandlerAdapter)去执行相应的Handler (常称为Controller)。
第五步,处理器适配器( HandlerAdapter)执行Handler。
第六步,Handler 执行完毕后会返回给处理器适配器( HandlerAdapter)一个ModelAndView对象(Spring MVC底层对象,包括Model数据模型和View视图信息)。
第七步,处理器适配器( HandlerAdapter)接收到Handler返回的ModelAndView后,将其返回给前端控制器(DispatcherServlet)。
第八步,前端控制器(DispatcherServlet) 接收到ModelAndView后,会请求视图解析(ViewResolver)对视图进行解析。
第九步,视图解析器(View Resolver)根据View信息匹配到相应的视图结果,反馈给前端控制器( DispatcherServlet)。
第十步,前端控制器( DispatcherServlet)收到View具体视图后,进行视图渲染,将Model中的模型数据填充到View视图中的request域,生成最终的视图(View)。
第十-步,前端控制器(DispatcherServlet) 向用户返回请求结果。

方便记忆:
流程有六块,上三下三,分别是:用户(U);前端控制器(DispatcherServlet );处理器映射器( HandlerMapping);处理器适配器(HandlerAdapter机controller);视图解析器(View Resolver);视图(V)

Springboot框架设计web界面(model,View,Controller:模型-视图-控制器)
springboot为springmvc提供自动配置。以下是其自动配置相关方法:orgspringframework.boot.autoconfigure.web--自动配置场景

!自动配置了ViewReSolver(视图解析器:根据方法返回值得到视图对象再决定如何渲染---转发?重定向?...)
!ContrntNegotiatingViewResolve:组合所有的视图解析器。
!如何定制:我们可以给容器中添加一个视图解析器:自动将其组合起来
!Converter转换器,public string hello(user)类型转换使用convertter
!formatter格式转换器:2007-12-12===Date:
!httpMessageConverter(see below)SpringMVC用来转换http 请求和响应的:User--json
!httpMessageConverters是容器中确定获取所有httpMessageConverters;自己给容器添加httpMessageConverter只需要将组件注册在容器中。
@Bean @Compontent
!我们可以配置一个ConfigurableWebBindinginitiallzer替换默认(添加到容器)
.
.
.

M

数据库管理模型实现的mvc的m,负责实体建模和持久化功能。

C

控制器响应视图上的操作事件,根据需求决定是否访问数据管理模块,再将结果返回合适的视图,由视图处理显示。

@RequestMapping("/new")
    pubilc ModelAndView create (ModelMap model){
          String{} files={ "/img/1.jpg","/img/2.jpg"};
          model.addAttribute("files",files);
          return new ModelAndView("movie/new");
     }
     @RequestMapping(value="/save",methode =RequestMethod.POST)
     public String save(Movie movie) throws Exception{
          movieRepository.save(movie);
          return 1;
      }

V

使用thymeleaf模板(模板引擎:同类有freemarke)

扩展springmvc



    
        
        
    

编写一个配置类(@Configuration),是webConfigurerAdapter类型;不能标注@EnableWebMvc
!WebMvcConfigurerAdapter被遗弃,需要使用WebMvcConfigurationSupport

你可能感兴趣的:(SpringMVC)