首页 > 其他分享 >mall学习笔记(6)

mall学习笔记(6)

时间:2023-05-24 17:44:06浏览次数:49  
标签:Spring token 笔记 学习 密码 mall 注解 com 注入

1. @Autowired和@Resource注解的区别

@Autowired和@Resource注解的区别和联系(十分详细,不看后悔)_莫小兮丶的博客

1. @Autowired注解是Spring提供的,而@Resource注解是J2EE本身提供的
2. @Autowird注解默认通过byType方式注入,而@Resource注解默认通过byName方式注入

不如先看看这两个注解自动装配了什么。

<bean id="testService" class="com.test.service.impl.TestServiceImpl">
  <constructor-arg name="testDao" ref="testDao"/>
</bean>
用id找这个bean是byName,用class找是byType

但好像没有写过这个xml啊

因为springboot帮忙写了,我们只要写注解就好。

Spring Boot框架知识总结(超详细,一次性到位) - 知乎 (zhihu.com)

3. @Autowired注解注入的对象需要在IOC容器中存在,否则需要加上属性required=false,表示忽略当前要注入的bean,如果有直接注入,没有跳过,不会报错。

IOC(Inversion of Control)容器

Spring IoC负责创建对象、管理对象(通过依赖注入(DI)、装配对象、配置对象,并且管理这些对象的整个生命周期。

依赖注入

起源:理解依赖注入(DI – Dependency Injection)

依赖注入实现方式:依赖注入的三种方式_依赖注入的三种实现方式_Juliussss的博客

2. UmsAdminCacheServiceImpl

用了Redis缓存

3. UmsAdminServiceImpl

token

用户身份验证的令牌——Token - 知乎 (zhihu.com)

jwt(JSON WEB TOKEN)

登录一次后生成一个token,后面持有这个token就不用再登录了。

spring-security和jwt如何生成token - 掘金 (juejin.cn)

*spring security

Spring Security 入门原理及实战 - 逃离沙漠 - 博客园 (cnblogs.com)

后面看security的时候再学

注册:检查是否有重名用户;密码加密存储;

登录:检查密码;检查账户状态;建立安全上下文;生成并返回token;

关于上下文:

UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(userDetails, null, userDetails.getAuthorities());
SecurityContextHolder.getContext().setAuthentication(authentication);

Authentication(Spring Security 认证笔记) - 大地的谎言 - 博客园 (cnblogs.com)

关于SecurityContextHolder

核心组件之SecurityContextHolder - 猫毛·波拿巴 - 博客园 (cnblogs.com)

里面可以存一个Context,也可以存多个,存多个的时候用ThreadLocal存,属于两种策略。

关于ThreadLocal

非常好博客,还介绍了引用的类型:ThreadLocal的介绍+经典应用场景 - 掘金 (juejin.cn)

弱引用:每次gc都会被回收掉。Map里类似<线程,线程变量>,如果key强引用线程,那么线程结束无法被回收。

ServletRequestAttributes:获取Servlet原生Request

更新密码:判空;新旧密码是否一致;旧密码是否正确;设置密码;更新缓存(删除缓存里的id,即更新密码后重新登陆);

return SpringUtil.getBean(UmsAdminCacheService.class);

获取当前的,也就是运行中的Bean作为service

标签:Spring,token,笔记,学习,密码,mall,注解,com,注入
From: https://www.cnblogs.com/capterlliar/p/17428569.html

相关文章

  • 刷题笔记:Luogu P3956 棋盘
    ProblemSolutionDFS/BFS需要注意去重的时候可以重复走(因为有限定条件),只要新的步数比原来的步数小就可以走,其余情况模拟即可细节有点多,比如需要记录一下上一步的棋盘颜色(下一次搜索传递参数),因为牵扯到使用魔法问题,不能直接染,因为改变地图后后边很多操作都会受影响在列举可能性......
  • C#学习笔记 - using语句
    using语句某些类型的非托管对象有数量限制或很耗费系统资源,在代码使用完他们后,尽快释放他们是很重要的using语句有助于简化这一过程,并确保这些资源被适当的处理(0)资源指实现了System.IDisposable接口的类或结构.IDisposalbe接口中有个Dispose的方法,使用这个方法去处置......
  • 【算法学习前置】了解JS中的数组
    介绍此篇属于前端算法入门系列的第一篇,主要介绍常用的数组方法、字符串方法、遍历方法、高阶函数、正则表达式以及相关数学知识。文章主要包含以下内容:数组常用方法字符串常用方法常用遍历方法&高阶函数常用正则表达式数学知识一、数组常用方法push()在尾部追加,类似......
  • 【算法学习前置】了解js中的字符串
    二、字符串常用方法chat()返回指定索引位置处的字符。类似于数组用中括号获取相应下标位置的数据。conststr='abcdef'console.log(str.chat(2))//'c'console.log(srt[2])//'c'concat()类似数组的concat(),用来返回一个合并拼接两个或两个以上字符串。原字符串不......
  • 学习:存储加密和传输加密的审计要点
    学习转载:存储加密和传输加密的审计要点存储加密和传输加密的审计要点近年来,随着移动互联网的高速发展,在人们享受网络带来便利的同时,信息安全也逐渐成为大众关注的热点。2021年落地的《中华人民共和国个人信息保护法》中第五十一条中明确提到,对于个人信息处理者的义务:采取相应......
  • 【客户端学习】Kotlin 协程的基本概念及用法
    协程是什么?协程是一种编程思想,并不局限于特定的语言。除Kotlin以外,其他的一些语言,如Go、Python等都可以在语言层面上实现协程。KotlinCoroutine本质上是Kotlin官方提供的一套线程封装API,其设计初衷是为了解决并发问题,让「协作式多任务」实现起来更方便。协程与线程的......
  • hive学习基础与调优
    一、Hive基础知识Hive是基于Hadoop的一个数据仓库工具,可以将结构化的数据文件映射为一张数据库表,并提供类SQL查询功能(hive的HQL语法设计实际模仿Mysql的语法)。其本质是将SQL转换为MapReduce的任务进行运算,底层由HDFS来提供数据的存储,说白了hive可以理解为一个将SQL转换为MapRedu......
  • 微服务架构基本原理学习笔记(一)
    一、什么是微服务微服务是一种技术架构,通常我们可以把它理解为一组可以相互之间协同工作的应用程序或服务,这些应用程序或服务能够被单独部署到不同的服务器中,并且能够自主运行和维护。微服务技术只是一个名称而已,或许我们在日常工作中已经或多或少在使用其中的一种或几......
  • HDFS学习进阶
    一、HDFS元数据管理HDFS是一个分布式文件存储系统,文件分布式存储在多个DataNode节点上。一个文件存储在哪些DataNode节点的哪些位置的元数据信息(metadata)由NameNode节点来处理。随着存储文件的增多,NameNode上存储的信息也会越来越多。在HDFS中主要是通过两个组件FSImage(快照文件,......
  • 基于大模型的优质Prompt开发课(3)--学习笔记ing
    在具体场景下优化Prompt常见应用场景与优化示例内容产业规模庞大、领域众多、大模型强大的生成能力给工作和生活带来了极大的想象力。01以营销场景中产品海报背景图生成为例,原始需求是画一张海岛旅游产品的营销海报背景【PromptV0.1】描述:任务+主体?看看这个结果有哪......