
Spring框架相关
文章平均质量分 60
介绍spring系列
LSZXZNJ
这个作者很懒,什么都没留下…
展开
-
spring security
SecurityFilterChain,只有一个实现类DefaultSecurityFilterChain。spring security 开箱即用,主要是做一些配置,下面是基本的配置,指定登录需要的配置。DefaultLoginPageGeneratingFilter 生成默认的登录页。SecurityContextPersistenceFilter 持久化登录信息。只有当 登录请求、登录错误、退出登录成功时,才返回登录页面。系统认证方式 可以存在多个。认证管理器,管理认证流程。原创 2025-02-27 17:00:43 · 404 阅读 · 0 评论 -
SpringLean
一:使用BeanFactory加载XMLBeanFactory bf = new XmlBeanFactory(new ClassPathResource("beanFactory.xml"));MyTestBean bean = bf.getBean("myTestBean");二:使用ApplicationContext加载XMLApplicationContext bf = ...原创 2019-08-25 22:59:49 · 142 阅读 · 1 评论 -
SpringCloud简单入门示例
微服务框架之 springcloud 是最流行的,加上 springboot,很容易快速上手。spring cloud 有很多组件,比如 注册中心 eureka、负载均衡 ribbon、网关zuul、feign客户端、容错组件 Hystrix 等等。还有 RestTemplate 可以很容易的发起 restful api调用。由于 组件较多、并且 名字 看起来、写起来、读起来 都有点 不友好,就会觉得 学习 spring cloud 是不是很难?实际上,spring boot 做了完整的封装,对于使用者来说原创 2022-01-18 09:55:01 · 2841 阅读 · 2 评论 -
spring boot 的注解
1. 获取配置文件属性值配置文件获取属性值,最开始的方法是:@Value("${a.b.c}")private String aBC;这种方式,只要这样写就OK 了。2. spring boot 中 有另一种:@ConfigurationProperties(value = "a.b")public class OrderCenterKafkaConfig { private String c;}这种方式,不需要在 属性字段上加注解,但是需要在 类上..原创 2022-02-18 19:10:39 · 1211 阅读 · 0 评论 -
Spring重试功能
【代码】Spring重试功能。原创 2023-06-19 19:52:28 · 92 阅读 · 0 评论 -
springboot日志文件名称为什么叫logback-spring.xml
如下代码完成 日志配置文件的定位,最终获取到 logback-spring.xml日志配置文件咯。如题,为什么springboot日志配置文件叫logback-spring.xml?在整个项目中搜索 logback-spring.xml 并没有搜索到。原创 2023-08-22 11:19:58 · 1210 阅读 · 0 评论 -
spring boot常用的filter
由 HttpEncodingAutoConfiguration 注入。由 WebMvcAutoConfiguration 注入。由WebMvcAutoConfiguration注入。由 WsServerContainer 注入。原创 2024-05-13 21:08:59 · 411 阅读 · 0 评论 -
源码级梳理Web服务流程
ServletContextInitializer接口好像不是 servlet规范里的接口,纯粹是 spring boot 2.3.12自己定义的接口,方便扩展。WebApplicationInitializer接口好像不是 servlet规范里的接口,纯粹是 spring web模块自己定义的接口,方便扩展。web服务的规范,不得不提Servlet,Servlet指定了web应用的规范,其中定义了servlet相关的接口和filter相关的接口。原创 2024-11-02 22:25:11 · 642 阅读 · 0 评论 -
spring @Async
1. 需要在类路径存在 ThreadPoolTaskExecutor,这个类是 是spring context模块下的类,也就是 需要引入 spring context 依赖,这个基本都会引入。如果不存在TaskExecutorBuilder类型的bean,这在这里注册默认的TaskExecutorBuilder。这个Executor 是 jdk中的线程池的顶级父类,也就是 如果 容器中存在这个线程池bean,就不构建了。此时,不论是 用默认的 还是 自定义的,线程容器中已经存在了 一个 线程池。原创 2024-11-22 15:47:50 · 420 阅读 · 0 评论 -
AOP基本概念
AOP(Aspect-Oriented Programming,面向切面编程)是一种编程范式,用于将横切关注点(如日志记录、安全检查、事务管理等)从业务逻辑中分离出来,以提高代码的模块化程度和可维护性。(顾问)是一个关键的概念,它代表了一个切面(Aspect)的配置信息,决定了切面应该在何时何地执行(即匹配的切入点Pointcut)以及如何执行(即通知Advice)):在连接点上执行的具体操作,如前置通知(Before)、后置通知(After)、环绕通知(Around)等,用于实现切面的具体逻辑。原创 2024-07-03 10:47:00 · 351 阅读 · 0 评论 -
spring aop 初探
JDK动态代理的 InvocationHandler 的实现类为 JdkDynamicAopProxy,其增强功能由 advised 完成。获取 注解的value值,通常返回的是 标记有 @Pointcut 注解的 方法名。针对每个bean,找到所有 没有标记 @Pointcut 注解的方法。对每个方法查找对应的切面,标记 标记 @Around等注解的方法。第一部分,直接查找所有的 Advisor类型的bean。根据切面的类型,返回不同的Advice类型的对象。第二个参数,调用的代理的接口中的方法。原创 2024-06-28 16:45:25 · 1129 阅读 · 0 评论 -
AbstractApplicationContext#refresh
因为 spring boot 启动 servlet模式使用的是 org.springframework.boot.web.servlet.context.AnnotationConfigServletWebServerApplicationContext 继承自 org.springframework.web.context.support.GenericWebApplicationContext,因此 这里实际基本等于啥都没做。而 beanfactory 在实例化 时构造。原创 2024-06-26 18:47:17 · 1177 阅读 · 0 评论 -
ConfigurationClassPostProcessor
这个类很复杂。原创 2024-06-26 15:30:32 · 436 阅读 · 0 评论 -
spring cache
org.springframework.boot.autoconfigure.cache.CacheAutoConfiguration 完成了 缓存的 自动配置。最终会将缓存信息写到 org.springframework.cache.support.AbstractCacheManager#cacheMap。在使用时,需要加入 org.springframework.cache.annotation.EnableCaching 注解。缓存类型的枚举顺序,就是使用的优先级。用于生产缓存的key。原创 2024-06-25 14:19:17 · 362 阅读 · 0 评论 -
org.springframework.context.support.PostProcessorRegistrationDelegate#invokeBeanFactoryPostProcessor
然后,再找到所有的BeanDefinitionRegistryPostProcessor,依次处理 PriorityOrdered、Ordered、其他,进行排序后调用 postProcessBeanDefinitionRegistry,然后加入到registryProcessors 集合中。集合变量也挺多的,看着看着就晕了。这个集合,记录了 找到的所有的的BeanDefinitionRegistryPostProcessor,用来在后面调用BeanFactoryPostProcessor时进行过滤。原创 2023-10-08 11:21:42 · 249 阅读 · 0 评论 -
spring boot MVC 流程简单梳理
实际上就是 遍历 List列表 ,而列表的初始化,是在 Servlet第一次加载的init中完成的。首先是 容器启动,把Handler 和 url 之间的映射 加载好。首先从容器中获取,容器中没有获取到时,再从配置文件中获取。这些准备工作做完之后,第一步的 查找 Handler 才能完成。而这些准备工作,也是在应用启动时完成的。找到handler后,再把handler的 所有 mapper方法找到,包装成。所以,在容器启动之后,容器中已经加载了 默认的。在查找handler这一步,是怎么做的呢?原创 2023-05-24 21:56:42 · 1117 阅读 · 0 评论 -
Fegin使用客户端负载均衡器Ribbon
在微服务之间调用,spring cloud 使用 ribbon 来进行负载均衡。如果说 负载均衡 算法,有很多种,那么 ribbon 是怎么拿到 服务列表的呢?那么是怎么从注册中心拿的?FeignClientFactoryBean 实例化时,通过 FeignClientFactoryBean#getObject 来获取代理对象,handler: feign.ReflectiveFeign.FeignInvocationHandler。4. 接口请求时,走负责均衡器,从注册中心获取服务列表。原创 2022-10-13 16:01:27 · 179 阅读 · 0 评论 -
springboot @符号识别不了
Caused by: org.yaml.snakeyaml.scanner.ScannerException: while scanning for the next tokenfound character '@' that cannot start any token. (Do not use @ for indentation) in 'reader', line 3, column 13: active: @active@ ^ at org..原创 2022-03-22 15:00:05 · 1831 阅读 · 0 评论