![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring
文章平均质量分 63
自己对Spring的一些理解
Nice_Yiag
这个作者很懒,什么都没留下…
展开
-
SpringBoot统一异常处理
统一异常处理 可以使用SpringMvc所提供的@ControllerAdvice,通过“basePackages”能够说明处理哪些路径下的异常。 (1)抽取一个异常处理类 package com.yjn.gulimall.product.exception; import com.bigdata.common.utils.R; import lombok.extern.slf4j.Slf4j; import org.springframework.validation.BindingResult; im原创 2021-05-16 21:32:54 · 209 阅读 · 0 评论 -
SpringMVC请求流程
springmvc请求流程 客户端发起url请求,首先会经过DispatcherServlet —>DispatcherServlet收到请求之后调用HandlerMapping 处理器映射器 ---->处理器映射器根据url找到具体的处理器,然后生成处理器执行链HandlerExecutionChain(包括处理器对象和处理器拦截器)一并返回给DispatcherServlet —>DispatcherServlet根据处理器Handler获取处理器适配器HandlerAdapter执行原创 2021-05-07 01:17:31 · 142 阅读 · 0 评论 -
springIco流程详细讲解
第一步就是执行构造器,然后扫描配置信息 Ioc初始化首先要执行this()构造器,构造器中初始化了AnnotatedBeanDefinitionReader()读取器用来扫描注解类,ClassPathBeanDefinitionScanner()用来扫描配置类,然后扫描配置类或者加载配置信息 然后在refresh方法中执行扩展功能(重点) public void refresh() throws BeansException, IllegalStateException { synchronized (原创 2021-05-07 01:16:45 · 267 阅读 · 0 评论 -
Springbean的生命周期
首先spring加载bean对象并不是根据bean的Class定义来创建bean对象的,在容器启动的时候,他会扫描bean的定义信息,扫描bean的定义信息是在refresh()方法里的invokeBeanFactoryPostProcessors()方法,在这个方法里边他会执行BeanFactoryPostProcessors后置处理器及其子接口BeanDefinitionRegistryPostProcessor,执行顺序是先执行BeanDefinitionRegistryPostProcessor接口原创 2021-05-07 01:15:33 · 78 阅读 · 0 评论 -
Spring循环依赖
spring只能解决通过setter注入方式构成的循环依赖。对于setter注入造成的依赖是通过提前暴露刚完成构造器注入但未完成其他步骤(如setter注入)的bean来完成的,而且只能解决单例作用域的bean循环依赖.通过提前暴露一个单例工厂方法,从而使其他bean能引用到该bean如下代码所示 addSingletonFactory(beanName,new ObjectFactory){ public Object getObject() throws BeansException{原创 2021-05-07 01:13:46 · 65 阅读 · 0 评论 -
SpringAop原理
Aop代理的开始是通过实现BeanPostProcessor后,当spring加载这个Bean时会在实例化前调用其postProcessAfterInitialization方法。 postProcessAfterInitialization->wrapIfNecessary(bean,beanName,cacheKey)(如果它适合被代理,就需要封装指定的bean) 这个方法中已经看到了创建代理的雏形.在真正开始之前还需要一些判断,比如是否已经处理过或者是否需要跳过的bean,而真正创建代理的代码是原创 2021-05-07 01:12:59 · 80 阅读 · 0 评论 -
Springboot自动装配简述
springboot自动装配 我们首先从程序的main方法开始入手 ,在main方法中调用了SpringApplication.run()方法 ,这个方法会接着调用refreshContext()方法刷新容器,然后会去扫描注解或者是加载配置文件 ,springboot是基于注解开发的,所有这个时候他会去扫描@SpringBootApplication注解 这个注解里有三个比较重要的注解 分别是@SpringConfiguration 这个注解继承自Configuration 标明这是一个配置类 然后原创 2021-05-07 01:23:00 · 202 阅读 · 0 评论 -
spirngboot自动装配
理解springboot自动装配首先从main方法入手,mian方法中调用SpringApplication.run(),然后他会调用refreshContext()方法刷新容器。 refresh方法会去解析Spring的各种注解和xml配置文件等 ,这时候才是进入@SpringBootApplication注解的分析 @Target({ElementType.TYPE}) @Retention(RetentionPolicy.RUNTIME) @Documented @Inherited <1.&g原创 2021-03-28 12:12:53 · 76 阅读 · 0 评论 -
SpringMVC配置时显示:通配符的匹配很全面, 但无法找到元素 ‘mvc:annotation-driven‘ 的声明
今天在配置spring-mvc的配置文件时显示"通配符的匹配很全面, 但无法找到元素 ‘mvc:annotation-driven’ 的声明",这是因为我们虽然在约束文件里声明了mvc文件 但是没有此声明对应的解析文件,正确配置如下: <beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:co原创 2020-07-12 16:25:51 · 242 阅读 · 0 评论