1.引入安全框架SpringSecurity
Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架。它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring IoC,DI(控制反转Inversion
of Control ,DI:Dependency Injection 依赖注入)和AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为企业系统安全控制编写大量重复代码的工作。
2.Maven
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>com.auth0</groupId>
<artifactId>java-jwt</artifactId>
<version>3.4.0</version>
</dependency>
public class createToken {
public static void main(String[] args) {
Calendar instance = Calendar.getInstance();
instance.add(Calendar.SECOND, 90);
//生成令牌
String token = JWT.create()
.withClaim("username", "张三")//设置自定义用户名
.withExpiresAt(instance.getTime())//设置过期时间
.sign(Algorithm.HMAC256("token!Q2W#E$RW"));//设置签名保密复杂
//输出令牌
System.out.println("--------token:" + token);
}
}
-----
- 生成结果
eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJhdWQiOlsicGhvbmUiLCIxNDMyMzIzNDEzNCJdLCJleHAiOjE1OTU3Mzk0NDIsInVzZXJuYW1lIjoi5byg5LiJIn0.aHmE3RNqvAjFr_dvyn_sD2VJ46P7EGiS5OBMO_TI5jg
首先站在Spring整个Framework体系而言的话,Spring的Bean是由一个BeanDefinition来的,就是在Spring当中,有一个叫建模的类BeanDefinition,Spring的Bean有一系列比较复杂的生命周期:
首先,Spring容器启动。
spring进行扫描
1、为什么要使用X的objectFacory对象而不是直接使用X对象?
利于拓展,程序员可以通过beanPostProcess接口操作objectFactory对象生成自己想要的对象
我们将各步骤总结精炼如下:
SpringFactoriesLoader
加载 META-INF/spring.factories
文件,获取并创建 SpringApplicationRunListener
对象SpringApplicationRunListener
来发出 starting 消息SpringApplicationRunListener
来发出 environmentPrepared 消息ApplicationContext
ApplicationContext
,并设置 Environment,加载相关配置等SpringApplicationRunListener
来发出 contextPrepared
消息,告知SpringBoot 应用使用的 ApplicationContext
已准备OKApplicationContext
,继续由 SpringApplicationRunListener
来发出 contextLoaded 消息,告知 SpringBoot 应用使用的 ApplicationContext
已装填OKSpringApplicationRunListener
来发出 started 消息SpringApplicationRunListener
来发出 running 消息,告知程序已运行起来了至此,全流程结束!
1 / 2