
Spring源码讲解
从0开始撸spring源码系列
Crabime
所有源码参见我的GitHub:
https://github.com/Crabime
展开
-
No bean named 'delegatingFilterProxy' available
这两天在跑一个spring mvc + spring session项目时发现应用启动时报了上面的那个错误,当然,我认为这个错误在spring security中应该也很常见,一般报错:"No bean named 'springSecurityFilterChains' available"。其实上面的错误都是由于DelegatingFilterProxy这个Filter引起的。下面我会简单...原创 2019-10-19 11:43:41 · 1418 阅读 · 1 评论 -
SpringMVC源码系列(一)MVC初始化
SpringMVC如何将请求交给DispatcherServlet处理Spring MVC如何注册DispatcherServlet前面通过一篇文章讲过Spring MVC应用如何被Tomcat发现,在执行WebApplicationInitializer子类AbstractDispatcherServletInitializer#onStartup方法时,会调用registerDispat...原创 2019-08-02 15:42:40 · 395 阅读 · 0 评论 -
SpringMVC源码系列之自定义WebMvcConfigurer
Spring MVC中所有组件集中注册中心组件集中注册中心是什么意思?说白了就是如果使用纯注解的方式启动项目,那注册在xml中的组件就转移到WebMvcConfigurer类的实现上了。下面结合源码和实例一一解释,所有的组件的配置参见MvcConfig.java,详细源码见当前目录下spring-mvc模块那其中有哪些组件呢?路径匹配转换器PathMatchConfigurerCon...原创 2019-08-02 15:40:56 · 2404 阅读 · 0 评论 -
SpringMVC处理流程
SpringMVC处理流程Spring MVC架构图下图是我从Google上Copy了一份架构图,通过这份架构图,再一起来debug源码,这样能够更深刻的理解Spring MVC运作原理.Spring MVC启动时如何处理@Controller、@RequestMapping注解Spring启动时会扫描当前容器中所有Bean,实例化之前会执行InitializingBean#afterP...原创 2019-08-02 15:35:39 · 285 阅读 · 0 评论 -
SpringMVC之yaml数据交换格式实现
SpringMVC之yaml数据交换格式实现总所周知,spring mvc默认是支持json/xml数据交换格式的,那如果用yml做前后台数据交换又该怎样呢?接下来将一一介绍如何在Spring MVC中注册一个新的数据交换格式及应用。实现yaml消息转换器因为yaml在spring中没有对应的转换器,所以需要重新实现一个,源码参考YamlMessageConverter首先需要定义一个构...原创 2019-08-02 15:34:22 · 1524 阅读 · 0 评论 -
SpringMVC源码之@EnableWebMvc注解工作原理
@EnableWebMvc注解工作原理篇查看spring源码发现该注解没有设置任何方法,也就是一个标识注解,spring官方文档是这样介绍的:Adding this annotation to an @Configuration class imports the Spring MVC configuration from WebMvcConfigurationSupport简单的说就是...原创 2019-08-02 15:26:31 · 369 阅读 · 0 评论 -
spring如何解决循环依赖
AbstractBeanFactory#doGetBean源码解析首先看AbstractBeanFactory中doGetBean方法,protected <T> T doGetBean( final String name, final Class<T> requiredType, final Object[] args, boolean typeCheckOn...原创 2019-08-02 15:23:25 · 359 阅读 · 0 评论 -
spring getBean源码解析
前言: 我们每次在执行spring getBean时,spring为我们做了什么事呢?这里从spring源码刨析spring解析过程。首先我们还是从spring给我们提供暴露在外的ApplicationContext入手,这里我使用的是`AnnotationConfigApplicationContext`,先来看看它的UML模型,我只截了ApplicationContext部分:这...原创 2019-07-22 13:45:22 · 429 阅读 · 0 评论 -
Launching Spring application Address already in use
已经凌晨一点了,自从工作之后就很少写博客了,平时工作太忙了。之前对新浪的博客系统觉得太失望了,最后还是想了想在优快云上写吧。好了废话不多说,今天就来简单的跟大家讲解一下Spring Boot下的Spring Data JPA开发中关于bind address has already in use问题,下面是错误链:java.lang.reflect.InvocationTargetExceptio原创 2016-04-29 00:18:45 · 827 阅读 · 0 评论 -
Spring中协调作用域不同的Bean
Spring中singleton作用域的Bean在程序的整个过程中只有因此初始化的机会,当然它的依赖关系也是在初始化阶段就确定下来,但是如果注入的依赖关系是一个prototype类型的Bean,那么该bean注入的时候肯定是“一次性注入”,也就是说prototype类型的bean的将会一直不变,但是这肯定是有违我们在定义scope="prototype"的初衷,那么这时该怎么办呢?"lookup-m原创 2015-10-24 06:33:15 · 885 阅读 · 0 评论 -
Spring中BeanCreationException异常::0formul unbound in pointcut
可能有些人在学习Spring AOP关于增强处理章节会碰到上面所说的异常,之前我在学习的时候经常会发生这样的异常,我以为是我的bean在写注解的时候写错了,@Component(name=”..”)是不是有问题,有重复的Bean才导致不能正常创建Bean,完整错误原因如下: org.springframework.beans.factory.BeanCreationException: Erro原创 2015-10-07 19:28:55 · 733 阅读 · 0 评论