一分钟了解SpringMVC/RestfulAPI/SpringSecurity(SpringMVC)

一、了解SpringMVC

  1. 了解SpringMVC的由来:拆分成MVC架构和Spring
  2. ---------MVC架构-----
  3. 由Tomcat我们知道, 发布一个web网站,将自己写的网站文件(含web-inf/web.xml网站配置文件),放到服务器的webapps文件下,就可以访问了,访问:公网IP:8080/litaodemo(但这种形式有一种弊端,就是直接访问了控制层,不利于维护(litaodemo是java源代码,是控制层的)。那么将引出MVC架构模式,用户不要直接访问控制层litaodemo,而是访问前端视图层view。如图:一分钟了解SpringMVC/RestfulAPI/SpringSecurity(SpringMVC)_第1张图片
  4. 为了规范MVC架构,便有了RestfulAPI规范,是资源定位及资源操作的风格(建议先去掌握计算机网络基础:1分钟掌握计算机网络重点、会话保持技术(TCP/IP协议)_litao163email的博客-CSDN博客
  5. 概念:传统只通过get和post两种方式进行访问,而现在RestfulAPI是通过get、post、put、delete四种方式实现增删,实现了同一个域名下的一个页面(如index.html有四个框,四个框设置四个method对应不同请求方式),从而对应不同Controller(映射用@GetMapping、@PostMapping、@PutMapping、@DeleteMapping)。同时达到了缩减url个数,方便管理。

-----------------有了MVC架构,为了简化开发,引入Spring的IOC/AOP/声明式事务功能,便形成了SpringMVC架构模式---------------------

  1. Spring:(1)将原本参数写在xml配置文件的形式改成注解形式(2)将对象集中管理。
  2. SpringMVC优点:(1)分层开发,不同开发人员开发不同层级,提高效率(2)解耦(3)与Spring无缝继承,提供了数据验证、绑定功能(注解)
  3. ---------SpringMVC常用注解:---------
  4. (1)将对象集中管理:@Contrlloer
  5. (2)xml配置文件的形式改成注解形式:@ResuestMapping  映射请求、@RequestParam  HTTP请求中的get方法参数绑定、@RequestBody  HTTP请求中的post请求体内容、@ResponseBody  HTTP响应(装进TCP)的响应体转成json形式返回前端
  6. ---------Json--------
  7. Json:放在HTTP里面的一种信息通用格式,全名是:application/json。还有其它编码形式:(1)post请求默认格式application/x-www-form-urlencaied(2)二进制数据格式(IO流)一般用于文件传输:multipart/from-date
  8. 这些信息有三种格式,那么传入时,对于不同的数据形式,进行绑定:(1)x-www-form-urlencaied:@RequestBody(HTTP请求中的post请求体内容)修饰用实体类pojo接收post的不同信息,如商品号、数量,最后将这些数据落入数据库(注意,pojo不要用Spring,不然是单例,线程不安全,应该用原型模式)(2)multipart/from-date:用MultipartFile类来接收IO流,在SpringBoot下还可以定义文件属性如最大单个文件大小/全部文件大小:Spring.http.multipart.maxFileSize/maxResquestSize
  9. -----拦截器intercept---
  10. 过滤器filter(javaweb)是在Serlvet前后,而拦截器intercept(SpringMVC)能深入方法前后,具有更大的弹性,优先使用拦截器

--------------SpringMVC架构模式常用SpringBoot开发的,可用SpringSecurity进行鉴权效验-------

  1. SpringSecurity与SpringBoot是无缝集成的,只需要引用spring-boot-start-spring-security依赖并进行少量的配置即可实现强大的安全管理。
  2. 主要目标是:(1)认证Authentication(2)授权Authorization
  3. 认识几个主要的类:(1)WebSecurityConfigureAdapter自定义安全配置策略(父类)(2)AuthenticationManagerBuilder自定义认证策略(3)@EnableWebSecurity开启安全模式
  4. 定义账户密码对应其授权等级:(密码可以用new .password(BCryptPasswordEncoder().encode(123456)).roles("vip1","vip2").and().一分钟了解SpringMVC/RestfulAPI/SpringSecurity(SpringMVC)_第2张图片
  5. 定义在http的拦截器安全策略,设置http可通过的授权等级:一分钟了解SpringMVC/RestfulAPI/SpringSecurity(SpringMVC)_第3张图片
  6. 还可以在授权中设置防止网站被csrf攻击、自定义登录页面等:一分钟了解SpringMVC/RestfulAPI/SpringSecurity(SpringMVC)_第4张图片

你可能感兴趣的:(Spring,mvc,java,spring)