1 背景
密码在数据库,也不能直接显示内容(明文)-------加密
2 MD5:可以破解
缺点: 同样的数字123456,MD5加密后字符串一摸一样(铭文一样,MD5加密后也一样)
解决方法:MD5二次加密-------MD5加盐
3 Spring Security Core
3.1 导入依赖
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-core</artifactId>
</dependency>
3.2 (基础)创建:专门给密码加密的对象 BCryptPasswordEncoder
3.2.1 spring核心之一:IOC
背景:
java中有很多类和对象,为了更好的统一、管理这些对象。
- ioc给我们提供一个bean容器,该容器自动帮助我们创建对象,不需要我们手动创建。
- Spring ioc在启动的时候就会把所有的bean全部创建好,程序在运行的时候就不会再创建bean,这样运行速度会更快。
- Ioc同时帮我们管理bean,比如service、mapper、controller。
- Ioc容器有一个强大的功能DI(依赖注入)
- 我们可以通过写java代码、或者xml配置方式,把我们想要注入对象所依赖的其他的bean自动注入进去,通过名称、类型方式。
- 正是因为DI,使得ioc具有强大的解耦功能。
依赖注入可以通过三种方式完成,即:
• 构造函数注入
• setter 注入
• 接口注入
▶例如:
Jdbc的timeplete,将这个bean注入到容器中,它需要依赖一个数据源。如果jdbc的template(模板)和德鲁伊的数据源强耦合在一起。
▶导致问题:
使用JDBC的timeplete必须要使用德鲁伊数据源。
▶ 解决:
DI帮助我们在jdbc注入的时候,只需要让它依赖一个数据源接口,不需要依赖具体的实现。
▶做法优点:
将来给容器注入一个德鲁伊的数据源,就会自动注入到JDBC timeplate,也可以注入其他数据源。JDBC
timeplate和数据源完全解耦合,不强依赖于任何数据源。
3.2.2 创建Bean对象
背景:
springboot的优化,可以不再使用xml,而用注解创建对象
3.2.2.1 类上添加注解:@Configuration/@Service
类上添加注解------Spring初始化时创建,自动生成单例的bean(全局变量:任何位置可取)