【知识点详解】 1. **Spring Security + JWT 配置**: 在使用Spring Security和JWT进行身份验证时,你需要配置安全设置,确保请求包含正确的凭证。通常,这意味着要传递用户名、密码和角色这三个字段。你可以参考工程源码来了解具体的配置步骤。 2. **@Value注解**: 当你需要在类之间共享配置信息时,可以将这些值放在一个单独的类(如类A)中,然后使用`@Component`注解。在其他类(如类B)中,你可以通过`@Autowired`自动装配类A,从而访问这些值。 3. **@Mapper注解**: 如果不使用`@MapperScan`注解,你需要在DAO层的每个接口上添加`@Mapper`注解,以确保Spring能够识别和实例化这些DAO。 4. **@Component注解**: `@Component`是Spring中的基础注解,用于标记通用组件。`@Service`、`@Controller`和`@Repository`是它的特殊形式,分别用于业务层、控制层和数据访问层。对于其他中立的组件,直接使用`@Component`即可。 5. **@RequestBody注解**: 当你希望HTTP请求以JSON格式提交时,需在参数上使用`@RequestBody`。这要求请求头的`Content-Type`为`application/json;charset=utf-8`。如果需要从多个不同bean中获取JSON数据,可以考虑使用Map接收,然后填充到bean中,这种方法建议封装到工具类中。 6. **Spring Security密码验证**: 正确验证密码的方法是使用`encoder.matches(inputPassword, dataBasePassword)`,如果两者匹配则返回真。直接使用`User findUserByNameAndPassword(User user)`这样的方法是无效的,因为这不涉及密码加密和解密的过程。 7. **自定义过滤器**: 实现`OncePerRequestFilter`的`doFilterInternal`方法,你可以拦截并处理请求。非法请求应直接通过`response.getWriter().println()`或`response.sendRedirect()`给出响应,而`chain.doFilter(request, response)`则是放行请求的操作。注意,这里的异常处理需要谨慎,因为有些异常可能无法被捕获。 8. **Spring Security session管理**: 认证成功的请求会被放入session中,通过`SecurityContextHolder.getContext().setAuthentication(authentication)`来设置。 9. **Token过期处理**: 后端需要检查JWT token是否过期,过期则返回特定的状态码和新的token。前端接收到过期状态码后,应进行处理并存储新token。 10. **Spring Boot对HTTP方法的支持**: Spring MVC默认只支持GET和POST请求。通过整合`HiddenHttpMethodFilter`,可以支持PUT、DELETE等其他HTTP方法。但需要注意的是,某些服务器可能会丢失或拒绝带有entity body的DELETE请求。在这种情况下,建议在URL后面添加参数,如`@DeleteMapping("/{tagId}")`。 11. **资源处理器配置**: 在`WebMvcConfigurer`的`addResourceHandlers`方法中,资源处理路径应当唯一,重复定义可能导致问题。 12. **未找到处理器的异常处理**: 如果你配置了静态路径映射,例如`/img`,当请求的子路径(如`/img/1.jpg`)不存在时,不会捕获到`NoHandlerFoundException`。解决办法是配置一个自定义的控制器处理这种未找到的路径。 13. **SpringBoot非Web应用启动**: 若要运行一个非Web的SpringBoot应用,你需要让某个类实现`CommandLineRunner`接口并在`run`方法中编写业务逻辑。启动应用时,确保使用`SpringApplication.run()`并指定正确类,否则依赖注入可能失败。 14. **Element-UI菜单项**: 当在Element-UI中使用`route`属性时,菜单项必须具有`index`属性,这是为了和Vue Router配合使用。 15. **Vue.js文件命名限制**: Vue.js可能存在不支持名为`admin`的文件的问题,这可能是由于内部的加载机制导致的,需要避免使用此类名称。 16. **复用组件的生命周期**: 当一个组件被多个路由映射时,其`create`函数只会被调用一次。动态路由匹配下,组件的实例会被复用,而非每次创建新的实例。 17. **El-Checkbox选中状态**: 为使后台数据动态选中`el-checkbox`,需要确保分配给`checkboxGroup`的数组和`:label`的值类型一致,`:label`是`el-checkbox`的选中状态值。将后台数据的ID转换为与`:label`匹配的数组,然后赋给`this.checkboxGroup`。 18. **慎用Spring MVC的ModelAndView**: 在某些情况下,慎用`ModelAndView`,因为它可能引入不必要的复杂性。通常,使用`Model`或直接返回对象更简洁且易于理解。在处理视图逻辑时,尽可能保持控制器的简单性。 以上是对给定内容中涉及到的各个知识点的详细解释,涵盖了Spring Boot、Vue.js、Spring Security和Spring MVC等多个方面。
- 粉丝: 30
- 资源: 343
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- pyheif-0.8.0-cp37-cp37m-win-amd64.whl.zip
- pyheif-0.8.0-cp38-cp38-win-amd64.whl.zip
- pyheif-0.8.0-cp39-cp39-win-amd64.whl.zip
- pyheif-0.8.0-cp313-cp313-win-amd64.whl.zip
- MyBatis SQL mapper framework for Java.zip
- pyheif-0.8.0-cp312-cp312-win-amd64.whl.zip
- pyheif-0.8.0-cp311-cp311-win-amd64.whl.zip
- pyheif-0.8.0-cp310-cp310-win-amd64.whl.zip
- 基于51单片机万年历(程序源码、原理图、实验报告)-基于单片机的万年历设计
- 51单片机万年历(源码+实验报告).zip (高分大作业项目)
评论0