![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
spring
文章平均质量分 74
weixin_42412601
后生仔
展开
-
SpringSecurity原理解析
目录1、认证流程源码查看1、判断当前请求是不是post请求2、调用子类的方法进行身份认证,认证成功之后,把认证信息封装到对象里面去2.1、查看UsernamePasswordAuthenticationToken2.2、调用authenticate方法进行身份认证3、认证成功/失败处理2、授权流程2.1、 ExceptionTranslationFilter 过滤器2.2、 FilterSecurityInterceptor过滤器3、认证信息共享详解3.1、SecurityContextPersistenc原创 2021-03-21 23:28:10 · 236 阅读 · 2 评论 -
Spring Security入门(一)
目录1、SpringSecurity 框架简介2、同款产品对比1、SpringSecurity 框架简介Spring Security 基于 Spring 框架,提供了一套 Web 应用安全性的完整解决方案。关于安全方面的两个主要区域是“认证”和“授权”(或者访问控制),一般来说,Web 应用的安全性包括用户认证(Authentication)和用户授权(Authorization)两个部分,这两点也是 Spring Security 重要核心功能。(1)用户认证指的是:验证某个用户是否为系统中的原创 2021-03-14 23:36:43 · 184 阅读 · 0 评论 -
Spring的单例bean与原型bean的区别和创建过程
1、Spring官方文档中给出的bean的scope有五种singletonprototyperequestsessionglobal session实际上,Spring最基本的scope只有两种,即singleton和prototype。可以参看spring源码中的BeanDefinition.java的定义,只有这两种:String SCOPE_SINGLETON = ConfigurableBeanFactory.SCOPE_SINGLETON;String SCOPE_PROT转载 2021-01-24 18:44:13 · 389 阅读 · 0 评论 -
Spring定时任务&Springboot异步任务
cron表达式语法:秒 分 时 日 月 周 年(spring不支持)http://www.quartz-scheduler.org/documentation/quartz-2.3.0/tutorials/crontrigger.html实例:在线生成cron表达式:https://cron.qqe2.com/Springboot整合定时任务和异步任务定时任务1、开启定时任务@EnableScheduling2、@Scheduled 开启一个定时任务2、自动配置类TaskSched原创 2020-09-09 17:34:09 · 476 阅读 · 0 评论 -
MD5&加盐&BCrypt盐值加密
MD5Message Digest algorithm 5,信息摘要算法压缩性:任意长度的数据,算出的MD5值长度都是固定的。容易计算:从原数据计算出MD5值很容易。抗修改性:对原数据进行任何改动,哪怕只修改1个字节,所得到的MD5值都有很大区别。强抗碰撞:想找到两个不同的数据,使它们具有相同的MD5值,是非常困难的。不可逆加盐通过生成随机数与MD5生成字符串进行组合数据库同时存储MD5值与salt值。验证正确性时使用salt进行MD5即可 @Test .原创 2020-08-31 15:09:40 · 756 阅读 · 0 评论 -
IoC容器在web容器中的初始化过程
以前学习spring原理的时候,都是直接new一个IOC容器,如下:AnnotationConfigApplicationContext aac = new AnnotationConfigApplicationContext("com.mydemo");那么,spring在实际的web项目中,是如何初始化的呢?首先来看看我们在使用 Spring + Spring MVC 框架开发的时候是如何配置的。在Web容器中使用Spring MVC,要配置web.xml:一般会配置context-p原创 2020-05-30 17:34:46 · 212 阅读 · 0 评论 -
spring中的循环依赖
循环引用也很好理解:A 依赖 B,而 B 依赖 A。或 A 依赖 B,B 依赖 C,而 C 依赖 A。依赖注入–自动注入。默认情况下,Spring 允许单例循环依赖,当然如果你在 A 的构造方法中依赖 B,在 B 的构造方法中依赖 A 是不行的。实例代码;@Componentpublic class IndexService { @Autowired UserService...原创 2020-03-14 16:05:15 · 179 阅读 · 0 评论 -
SpringIoC源码分析基于注解之Bean的解析与注册(六)
源码分析首先看下段代码:AnnotationConfigApplicationContext aac = new AnnotationConfigApplicationContext("com.mydemo");AnnotationConfigApplicationContext可以实现基于Java的配置类(包括各种注解)加载Spring的应用上下文。避免使用application...原创 2020-03-11 00:47:55 · 309 阅读 · 0 评论 -
spring整合mybatis原理
mybatis没有与Spring整合前是这样使用的@Testpublic void test03(){ String resource = "mybatis-config.xml"; InputStream inputStream = Resources.getResourceAsStream(resource); //1.获取sqlSessionFactory Sql...原创 2020-03-02 00:34:38 · 886 阅读 · 0 评论 -
Spring注解版的web(四) servlet3.0
注解版的web跟之前不同的方式在于,以前写web的三大组件servlet,filter,listener都需要在web.xml进行配置,包括springmvc的前端控制器DispatcherServlet,要使用也是要在web.xml进行注册,而servlet3.0标准之后,给我们提供了一些方便的注解,帮我们完成这些组件的注册和添加,包括提供了通过插件的方式很方便的扩充已有 Web 应用的功能,而...原创 2020-01-29 09:00:15 · 729 阅读 · 1 评论 -
Spring容器创建过程——基于注解(五)
实例代码:ExtConfig配置类,给第一行代码打上断点 @Test public void test(){ AnnotationConfigApplicationContext applicationContext= new AnnotationConfigApplicationContext(ExtConfig.class);...原创 2020-01-26 12:51:06 · 273 阅读 · 0 评论 -
ignoreDependencyInterface与ignoreDependencyType的一次探索
在学习spring源码时,遇到了ignoreDependencyInterface方法,但是讲课老师,只是简单的讲了一下它的作用是:实现了这些接口的实现类,不能通过这些接口类型来自动注入。实在是好奇,它是不是真的能忽略依赖注入,于是测试了一番。定义一个要忽略的接口:setter方法的入参就是要忽略的依赖,为啥要用setter方法呢,看AutowireUtils类的isSetterDefin...原创 2020-01-23 17:15:29 · 394 阅读 · 0 评论 -
spring注解驱动开发——扩展原理(三)
BeanFactoryPostProcessorhttps://blog.csdn.net/weixin_42412601/article/details/104032552BeanDefinitionRegistryPostProcessorBeanFactoryPostProcessor的子接口,bean定义注册中心的后置处理器。提供一个方法postProcessBeanDefini...原创 2020-01-19 00:04:17 · 140 阅读 · 0 评论 -
BeanFactory的后处理
BeanFactory的后处理BeanFactory作为spring中容器功能的基础,用于存放所有已经加载的bean,为了保证程序上的高扩展性,spring针对BeanFactory做了大量的扩展,比如:PostProcessor。BeanFactoryPostProcessor用法SpringIoC容器允许BeanFactoryPostProcessor在容器实际实例化任何其他的bean...原创 2020-01-18 18:52:35 · 147 阅读 · 0 评论 -
spring注解驱动开发(二)
属性赋值使用@Value赋值,三种方式1.基本数值2.可以写SpEL,#{}3.可以写${}:取出配置文件中的值(配置文件中的值会加载到运行环境中,在运行环境中的值)实体类:省略getter,setter,toStringpublic class Student { @Value("张三") //基本数值 private String name; @Value...原创 2021-01-27 21:15:55 · 150 阅读 · 0 评论 -
spring注解驱动开发(一)
回顾一下使用配置文件是怎么开发的: <bean id="messageService" class="com.example.demo.service.Impl.MessageServiceImpl"/> // 用我们的配置文件来启动一个 ApplicationContext ApplicationContext context = new Clas...原创 2021-01-27 21:16:36 · 233 阅读 · 0 评论 -
Bean的后处理
BeanFactory作为spring中容器功能的基础,用于存放所有已经加载的bean,为了保证程序上的高扩展性,spring针对BeanFactory做了大量的扩展,比如:PostProcessor。BeanFactoryPostProcessor用法SpringIoC容器允许BeanFactoryPostProcessor在容器实际实例化任何其他的bean之前读取配置元数据,并有可能修改它...原创 2019-12-15 12:24:57 · 317 阅读 · 0 评论 -
全局异常处理器
通过实现spring的HandlerExceptionResolver接口来捕获所有的异常。准备Resolverimport com.alibaba.fastjson.JSON;import com.example.test.demo.exception.strategy.ExceptionStrategy;import lombok.extern.slf4j.Slf4j;import ...原创 2019-11-27 17:09:36 · 150 阅读 · 0 评论 -
自定义Spring结果包装类 HandlerMethodReturnValueHandler
自定义结果包装类要实现接口HandlerMethodReturnValueHandlerpublic interface HandlerMethodReturnValueHandler { boolean supportsReturnType(MethodParameter var1); void handleReturnValue(@Nullable Object var1, ...转载 2019-11-27 15:33:58 · 527 阅读 · 0 评论