spring
文章平均质量分 61
好烦吃不胖
这个作者很懒,什么都没留下…
展开
-
SpringSecurity自定义多重登录方式
前后分离项目,SpringSecurity自定义多重登录方式,通过自定义AuthenticationProvider实现,同时自定义过滤器进行登录验证原创 2022-12-27 16:40:35 · 5708 阅读 · 13 评论 -
Spring中的设计模式
Spring本质就是对一系列的设计模式进行代码实现,本博客记录Spring中用到的单例模式,持续完善!原创 2022-12-27 16:29:38 · 127 阅读 · 0 评论 -
pigx动态路由分析(二)
pigx动态路由分析(二)1、动态路由何时生效?2 分析过程参考1、动态路由何时生效?在pigx动态路由分析1中,我介绍了pigx是何时定义的动态路由,当时只分析到路由配置是如何从数据库读取到redis,这个配置放到redis和网关还没有建立关系,如下最后一行就是从mysql把route定义转到redis。//common-gateway模块 DynamicRouteInitRunner类@Async @Order @EventListener({ WebServerInitializedE原创 2021-06-29 15:56:29 · 2376 阅读 · 4 评论 -
springboot(springcloud)使用@Order注解无效
解决方法不采用注解,使用实现接口Ordered的方式。import org.springframework.cloud.gateway.filter.GatewayFilterChain;import org.springframework.cloud.gateway.filter.GlobalFilter;import org.springframework.core.Ordered;import org.springframework.stereotype.Component;import原创 2021-06-29 10:42:11 · 2358 阅读 · 2 评论 -
pigx动态路由分析(一)
文章目录一、学习背景二、探索过程2.1 Event事件分析2.2 问题2 分析2.3 正向调用一、学习背景最近学习网关想看看Pigx项目中的实现方式,发现pigx的作者采用的动态加载路由的方式,路由配置是从数据库读取,而非直接配置route。并且它的动态路由加载没有放到apigateway模块,是放到用户权限管理模块(upms-biz)。通过搜索upms服务启动日志关键字定位到了DynamicRouteInitRunner这个类,此类会初始化网管路由,但是不明白是何时触发的路由初始化 @Async原创 2021-06-25 11:35:36 · 3099 阅读 · 3 评论 -
spring扩展点总结
文章目录1. spring生命周期1.1 第一步:根据配置生成BeanDefinition1.2 第二步:根据BeanDefinition来生成真正的对象2. 扩展点介绍2.1 扩展点1-BeanFactoryPostProcessor2.2 扩展点2-BeanPostProcessor2.2.1 继续上面的实验2.2.2 BeanPostProcessor扩展点的其它作用2.3 扩展点3-BeanNameAware1. spring生命周期spring容器实例化一个对象往大说主要是分为两步1.1原创 2021-05-28 15:52:36 · 1483 阅读 · 0 评论 -
Spring中的FactoryBean
和BeanFactory区别FactoryBean以Bean结尾代表它还是一个Bean,它的作用就是用来组装另一个bean,有些bean的组装比较复杂,可能需要根据各种if else判断才能推断出来,这种情况就需要FactoryBean去获取,推断逻辑代码写在factory中。BeanFactory是bean容器,里面放了n多个bean举例有一个dog的实体类,给个随机数当狗的年纪,根据随机数大小来判断这是一个大狗还是小狗,这里只是举例,实际情况肯定不是用随机数来作为判断依据// 有一个do原创 2021-05-21 17:47:24 · 147 阅读 · 1 评论 -
Spring自带常用接口
1. StopWatchspring中统计任务耗时的工具,用法极其简单StopWatch sw = new StopWatch();sw.start("task1");//人物名字Thread.sleep(1000);sw.stop();System.out.println(sw.prettyPrint()); //打印执行时间//输出StopWatch '': running time (millis) = 3518------------------------------------原创 2021-05-12 14:30:36 · 143 阅读 · 0 评论 -
Spring依赖注入的几个注解
1. 依赖注入常用注解1 Autowire1.1按照类型注入,可以和Qualifier配合使用,@Autowired(required = false)表示当前的依赖注入失败不报错,比如有个依赖字段是个接口,但是该接口没有实现类,也不报错。没有Qualifier,只有Autowire代表按照类型注入,如果实现类有多个,则汇报错Qualifier和Autowire同时使用,则注入Qualifier指定名字的bean1.2 使用AutoWire注解Field injection is not转载 2021-04-15 11:46:04 · 1491 阅读 · 0 评论 -
java设计模式
设计模式单例模式单例模式推荐直接使用饿汉式,不存在线程安全问题单例模式懒汉式存在的问题原创 2021-03-18 15:38:55 · 105 阅读 · 0 评论 -
Spring中applicationContex的parent属性
作用比如有一个animal类,有字段name、legs,想通过animal类创建多个4条腿的动物实例,每个动物的名字不一样,此时我们可以parent字段,通过一个Animal类创建多个实例。实现//Animal类public class Animal { private int legs; private String name; @Override public String toString() { return "Animal{" +原创 2021-04-12 16:46:33 · 526 阅读 · 0 评论 -
Library source does not match bytecode for class xxxx
背景在idea中debug,跳入spring源码后总是报 “Library source does not match bytecode for class xxxx”,虽然没什么大影响,但是看着很不舒服。解决方法点开看看到底是哪个类没有找到如上图可以看到是没找到javax.inject.Provider,maven项目的话直接pom.xml加入<dependency> <groupId>javax.inject</groupId>原创 2021-04-12 14:36:47 · 269 阅读 · 0 评论 -
Spring事务隔离级别
比mysql多了一种default,即:直接使用数据库的隔离级别,不手动指定原创 2021-03-08 14:23:46 · 123 阅读 · 0 评论 -
Spring事务传播机制大白话(使用springboot,注解演示)
1. 我对传播机制的理解为什么需要传播机制?因为事务之间可能存在相互调用,通俗点说就是service业务层的方法(一般是调用dao层操作数据库)存在相互调用,每个方法上可能都需要业务,对应到springboot就是在方法上要添加@Transactional注解。那么对于都有Transactional注解的情况下,程序如何抉择到底使用哪个事务呢?因此需要我们指定事务传播机制,确定这种场景下到底该使用哪个事务。2. spring其中事务传播机制事务传播行为类型说明PROPAGAT原创 2021-03-08 11:48:07 · 1660 阅读 · 0 评论