一、@RestController和@Controller区别
- Controller, RestController的共同点
都是用来表示Spring某个类的是否可以接收HTTP请求
- Controller, RestController的不同点
@Controller标识一个Spring类是Spring MVC controller处理器
@RestController: @RestController是@Controller和@ResponseBody的结合体,两个标注合并起来的作用。
- 如果只是使用@RestController注解Controller,则Controller中的方法无法返回jsp页面,配置的视图解析器InternalResourceViewResolver不起作用,返回的内容就是Return 里的内容。
例如:本来应该到success.jsp页面的,则其显示success.
-
如果需要返回到指定页面,则需要用 @Controller配合视图解析器InternalResourceViewResolver才行。
-
如果需要返回JSON,XML或自定义mediaType内容到页面,则需要在对应的方法上加上@ResponseBody注解。
二、@GetMapping和@RequestMapping的区别
@GetMapping:是@RequestMapping(method = RequestMethod.GET)的缩写。
@GetMapping("/list")
@PostMapping:是@RequestMapping(method = RequestMethod.POST)的缩写
@RequestMapping(method = RequestMethod.GET ,value = "/list")
三、MyBatis-Plus 通用IService使用介绍
四、Mapper接口动态代理调用过程
三、什么是shiro?Shiro能干嘛?
四、Shiro 实现原理与源码解析系统
五、权限控制(Shiro 注解)
六、在Security中实现Shiro的@RequiresPermissions注解
七、APACHE SHIRO框架@REQUIRESPERMISSIONS源码分析
八、Shiro
shiro简介
-
**Subject:**主体,可以看到主体可以是任何可以与应用交互的“用户”;
// 登入 subject.login(token); // 登出 subject.logout(); // 判断subject是否认证成功 subject.isAuthenticated(); // 判断subject是否具有admin和user两个角色权限,如没有则会报错 subject.checkRoles("admin", "user"); // 判断subject是否具有user:add权限 subject.checkPermission("user:add");
-
**SecurityManager:**Shiro的心脏;所有具体的交互都通过SecurityManager进行控制;负责所有Subject、且负责进行认证和授权、及会话、缓存的管理。
- Authenticator:认证器,判断用户是否正常登陆
- Authorizer:授权器,判断用户是否有权限操作资源
- **Realms:**可以有一个或者多个,作用 Authentication 是用来验证用户身份,Authorization 是授权访问控制,在调用subject.login(token)方法的时候触发
- 认证:从数据库查询出当前用户的密码与输入的密码进行比较,一致则通过认证
- 授权:从数据库查询出当前用户所拥有的角色和权限,用户–>角色(一对多),角色–>权限(多对多)
- 自定义Realms需要继承AuthorizingRealm ,重写doGetAuthenticationInfo和doGetAuthorizationInfo
**注意:**这里