spring
文章平均质量分 97
森林猿
主要把用于归档为知笔记内容,技术在更新,把技术内容做归档
展开
-
springmvc-源码调试-3.5-initRequestToViewNameTranslator、initViewResolvers
文章目录前言initRequestToViewNameTranslatorDefaultRequestToViewNameTranslatorinitViewResolversInternalResourceViewResolverinitFlashMapManagerSessionFlashMapManager前言源码调试3.X 细节文章基本就是 初始化初始化,问题我们要知道 都帮我们初始化那些东西… 我们才能后深究的时候才能知道这个东西从哪里来的…initRequestToViewNameTran原创 2020-10-20 15:04:06 · 156 阅读 · 0 评论 -
springmvc-源码调试-3.4-initHandlerExceptionResolvers
文章目录前言initHandlerExceptionResolversExceptionHandlerExceptionResolverafterPropertiesSetResponseStatusExceptionResolverDefaultHandlerExceptionResolver后言前言初始化 HandlerExceptionResolvers,这里一些共同代码不分析了. 直接到创建对象… 不明确的可以看 之前的同类文章…initHandlerExceptionResolvers会初原创 2020-10-20 14:45:37 · 151 阅读 · 0 评论 -
springmvc-源码调试-3.3-initHandlerAdapters
文章目录initHandlerAdaptersHttpRequestHandlerAdapterSimpleControllerHandlerAdapterRequestMappingHandlerAdapterafterPropertiesSetinitControllerAdviceCachegetDefaultArgumentResolversgetDefaultInitBinderArgumentResolversgetDefaultReturnValueHandlersHandlerFunctio原创 2020-10-20 14:26:22 · 307 阅读 · 0 评论 -
springmvc-源码调试-3.2-initHandlerMappings
文章目录前言initHandlerMappingsgetDefaultStrategiesBeanNameUrlHandlerMappingsetApplicationContextinitApplicationContextRequestMappingHandlerMappingRouterFunctionMapping前言接着 springmvc-源码调试-3.0本文主要分析一个方法…initHandlerMappings springMVC 重中之重HadnlerMappings 处理器映射原创 2020-10-20 11:12:45 · 626 阅读 · 0 评论 -
springmvc-源码调试-3.1-initMultipartResolver
文章目录前言initMultipartResolver测试..LocaleResolver后言前言接着 springmvc-源码调试-3 讲这里主讲2个方法…分别为 initMultipartResolver和initLocaleResolver而initLocaleResolver不会深入…initMultipartResolver private void initMultipartResolver(ApplicationContext context) { try { //原创 2020-10-19 14:59:40 · 185 阅读 · 0 评论 -
springmvc-源码调试-3-init
文章目录HttpServletBean调用链onRefreshinitStrategies后言HttpServletBean当用户第一次请求的时候会调用,且只会调用一次HttpServletBean.init()FrameworkServlet.initServletBean()FrameworkServlet.initWebApplicationContext调用链HttpServletBean.init()FrameworkServlet.initServletBean()Fra原创 2020-10-19 12:12:47 · 173 阅读 · 0 评论 -
springmvc-源码调试-2-简单概述
文章目录DispatcherServlet简单说Servlet继承关系Init调用关系图service调用关系图调用流程后言DispatcherServlet我们都知道,springmvc 第一个动作就是 用户发送请求至前端控制器DispatcherServlet,我们来看看DispatcherServlet都有什么东西,首先你要对 servlet 有一个基本的认识简单说Servlet用户第一次访问 会调用 Servlet 的 init() 仅会调用一次每一次调用都会 Servlet 的 ser原创 2020-10-19 10:35:38 · 107 阅读 · 0 评论 -
springmvc-嵌入式tomcat基本配置
文章目录前言整体代码过滤器代码后言前言最近在看 springmvc 的相关源码… 不想下载tomcat 等等等等操作.想跟 springboot 一样直接启动… 估做学习记录整体代码@ComponentScanpublic class AnnotatedBeanDefinitionReaderContext { public static void main(String[] args) throws LifecycleException { File base = ne原创 2020-10-16 22:37:52 · 569 阅读 · 0 评论 -
springmvc-源码调试-1
文章目录配置建立Demo建立Controller建立启动类问题后言配置参考之前文章导入源码等文章新建Mdel,修改当前项目的build.gradle添加下面内容plugins { id 'java'}group 'org.springframework'version '5.3.0-SNAPSHOT'repositories { mavenCentral()}dependencies { compile(project(":spring-bean原创 2020-10-16 00:09:09 · 415 阅读 · 0 评论 -
spring-源码-AnnotationConfigApplicationContext-创建分析-7
前言本文仅分析 postProcessBeanFactory()方法和invokeBeanFactoryPostProcessors(),其他初始化参考系列文章~~注意本文暂不分析… invokeBeanDefinitionRegistryPostProcessors()方法 … 因为各种PostProcessor实现不同… 为了可读性,将放到下一个章节…而且本章节是将大部分核心的调用流程劲量的会讲清楚,可能会很繁琐,劲量跟着DBUG进行调试。。。概念我这里定义几个概念看的时候可以稍微带入一下原创 2020-09-05 15:42:09 · 166 阅读 · 0 评论 -
spring-源码-AnnotationConfigApplicationContext-创建分析-6
文章目录前言调用refresh()调用 obtainFreshBeanFactoryrefreshBeanFactory();getBeanFactory();调用 prepareBeanFactory()registerSingletonsuper.registerSingletonaddSingletonupdateManualSingletonNamesclearByTypeCache扩展阅读表达式语言解析器registerSingletongetEnvironment前言本文仅分析 obtain原创 2020-09-04 15:26:56 · 366 阅读 · 0 评论 -
spring-源码-AnnotationConfigApplicationContext-创建分析-5
文章目录前言后顾之前调用refresh()调用prepareRefresh()扩展阅读initPropertySources()getEnvironment()后言前言这个方法是重中之重!!! 慢慢啃吧,这里只是分析几个简单的方法,需要说明的是不同的 ApplicationContext实现可能略有不同,比如springboot 中的是AnnotationConfigServletWebServerApplicationContext而我用于研究源码的是AnnotationConfigApplicati原创 2020-09-04 10:07:45 · 232 阅读 · 0 评论 -
spring-源码-AnnotationConfigApplicationContext-创建分析-3
文章目录前言开始构造函数一构造函数二构造函数三构造函数四调用registerDefaultFilters()学到了什么注解集合扩展点流程图前言主要分析 ClassPathBeanDefinitionScanner首先该类是继承了 ClassPathScanningCandidateComponentProvider开始创建一个ClassPathBeanDefinitionScanner,将AnnotationConfigApplicationContext向下传递创建BeanDefinit原创 2020-08-03 16:52:26 · 221 阅读 · 0 评论 -
spring-相关知识点-ScannedGenericBeanDefinition
文章目录ScannedGenericBeanDefinition关系继承图系列文章ScannedGenericBeanDefinition基于 ASM 方式 Class 读取 的GenericBeanDefinition类扩展,支持通过AnnotatedBeanDefinition接口获取公开的注解元数据使用 ASM ClassReader 解析的“类”文件本身具有所有相关的元数据。它在功能上等效于AnnotatedGenericBeanDefinition(AnnotationMetadata)原创 2020-09-03 21:56:36 · 909 阅读 · 0 评论 -
spring-相关知识点-SimpleAnnotationMetadata
文章目录SimpleAnnotationMetadata关系继承图AnnotationMetadataClassMetadataAnnotatedTypeMetadataSimpleAnnotationMetadata具体的实现我们不去深究,因为深究了其实并没有太大的意义,就好比业务开发一样,我们需要知道的是整个业务,难道业务里面的 所有 基础我们都得需要知道嘛?是基于 ASM 的实现.关系继承图AnnotationMetadata从类名我们可以指定整个接口基本就是 获取注解相关的//原创 2020-09-03 20:40:43 · 847 阅读 · 0 评论 -
spring-源码-AOP使用
文章目录说明切面、通知、切入点什么时候起作用接口SmartInstantiationAwareBeanPostProcessorInstantiationAwareBeanPostProcessorBeanPostProcessor说明主流程resolveBeforeInstantiationpostProcessBeforeInstantiationAspect 、Advice、Pointcut、AdvisorpostProcessBeforeInstantiationshouldSkipfindCand原创 2020-09-03 18:04:07 · 424 阅读 · 0 评论 -
spring-编程AOP使用
文章目录前言配置切面ProxyFactoryProxyFactoryBean配置通知配置类定义目标类上下文类参考前言编程AOP ,编程AOP ,为啥要了解编程AOP呢,因为实际上 我们用的AOP 操作都是基于编程来做的,只是 spring帮你做了一些操作,所以了解编程AOP 实际上对源码的理解还是有一定的作用的,也就明白了源码中 一些 为什么要这么做的理由配置切面如果是通过注解配置的话,其实 仅仅配置@Aspect 表示当前类是一个切面类,然后在方法上配置各种通知比如:@Before这里讲的原创 2020-09-03 17:34:48 · 113 阅读 · 0 评论 -
spirng-源码-@EnableAspectJAutoProxy-注册
文章目录什么时候起作用接口SmartInstantiationAwareBeanPostProcessorInstantiationAwareBeanPostProcessorBeanPostProcessor说明流程一、直接获取代理对象分析 resolveBeforeInstantiation执行 postProcessors前置处理器分析 shouldSkip分析 postProcessAfterInitialization什么时候起作用也就说 我们的AOP 什么时候去使用的?我们知道 当一个Bea原创 2020-09-03 10:39:53 · 99 阅读 · 0 评论 -
spring-源码-InstantiationAwareBeanPostProcessor
文章目录前言源码说明代码演示前言属于 BeanPostProcessor的子接口,主要功能是实例化之前回调实例化之后回调属性装配 & 自动装配之前源码public interface InstantiationAwareBeanPostProcessor extends BeanPostProcessor { // 实例化之前 会传递 目标 Class ,这个方法的作用是 直接返回代理类,也就说不会在进行目标类的实例化,而是通过自定义返回 @Nullable原创 2020-08-20 17:28:39 · 126 阅读 · 0 评论 -
spring-源码-BeanPostProcessor
文章目录BeanPostProcessorpostProcessBeforeInitializationpostProcessAfterInitialization源码分析实验BeanPostProcessor接口恰好由两个回调方法组成,其作用是在 调用 初始化方法之前 和调用初始化方法之后调用,那能帮我们做什么呢?可以参考一下其实现类ApplicationContextAwareProcessor该实现类就说是帮我们回调一些方法,通过我们的目标类判断是否是实现类了某些特定的接口,如果是则会调用对应的原创 2020-08-20 16:08:43 · 117 阅读 · 0 评论 -
spring-源码-bean生命周期
文章目录前言什么是Bean 生命周期Bean生命周期步骤说明后言前言本文不涉及任何源码,仅仅涉及一些概念上的一些说明,什么是Bean 生命周期 ,注意此Bean 生命周期不是指的类的生命周期,而是 一个 Class 是怎么一步一步 形成 一个spring 管理的Bean的,为什么要说这个东西,因为只有当你理解了 Bean的生命周期你才能理解 为什么 AutowiredAnnotationBeanPostProcessor 属性注入是放在 属性赋值 、依赖注入,而不是放在初始化方法回调,等等一系列原创 2020-08-20 16:03:30 · 98 阅读 · 0 评论 -
spring-源码-preInstantiateSingletons
文章目录前言所需知识点本文演示内容preInstantiateSingletonsgetMergedLocalBeanDefinition前言本来想一次性分析整个流程的,想了想还是单小结小结的分析~,主要还是代码来演示结果所需知识点了解 BeanDefinition了解 注解 Bean 什么时候转换成 BeanDefinition ,我所说的 Bean 可以简单的理解成 被标注了 @Component的一个类,也就说 这个类什么时候注册成 BeanDefinition稍微了解一下 方法的回调原创 2020-08-18 13:37:55 · 1025 阅读 · 0 评论 -
spring-相关知识点-AnnotatedGenericBeanDefinition
文章目录前言继承图源码其他文章前言AnnotatedGenericBeanDefinition 继承了GenericBeanDefinition主要功能是真的 类注解初始化的一些定义可参考 GenericBeanDefinition继承图源码可以看到这个方法并没有过多的函数,大部分函数都由父类的父类搞完了 ,该类的主要功能就是 对元数据进行操作public class AnnotatedGenericBeanDefinition extends GenericBeanDefinitio原创 2020-08-17 18:13:17 · 1186 阅读 · 0 评论 -
spring-相关知识点-StandardAnnotationMetadata
文章目录前言继承图AnnotationMetadataAnnotatedTypeMetadataClassMetadata实验后言前言继承图AnnotationMetadata// @since 2.5public interface AnnotationMetadata extends ClassMetadata, AnnotatedTypeMetadata { //获取当前类上所有的注解的全类名 Set<String> getAnnotationTypes();原创 2020-08-17 18:11:38 · 1343 阅读 · 0 评论 -
spring-相关知识点-AbstractBeanDefinition
文章目录前言分析applyDefaultsBeanClass相关方法实验Bean基本属性设置这一个个的API 我就想一一演示的相关文章前言在了解 spring 源码 的是我们知道 我们的Bean 都会被包装成 BeanDefinition进行操作所以需要对其有一个基本的了解这是一个抽象类其子类有RootBeanDefinitionGenericBeanDefinition分析该分析仅会分析主要内容…applyDefaults传递一个 BeanDefinitionDefa原创 2020-08-14 17:54:50 · 577 阅读 · 0 评论 -
spring-相关知识点-GenericBeanDefinition
文章目录前言GenericBeanDefinition继承关系图剖析 GenericBeanDefinitionparent-API演示前言在了解 spring 源码 的是我们知道 我们的Bean 都会被包装成 BeanDefinition进行操作所以需要对其有一个基本的了解GenericBeanDefinition我理解是用于描述 普通的或者说基本的 一个BeanDefinition继承关系图可以看到… 这继承关系图… 我们一个一个的来剖析~~~剖析 GenericBeanDef原创 2020-08-14 15:41:05 · 3954 阅读 · 2 评论 -
spring-源码-AnnotationConfigApplicationContext-创建分析-4
文章目录前言代码分析调用register()调用register()调用doRegisterBean()调用registerBeanDefinition()springboot调用流程项目启动调用run方法剩余流程学到了什么流程图前言用于注册我们的启动类,简单来说其实就是用于注册 带有@ComponentScan 注解的 目标类代码分析public AnnotationConfigApplicationContext(Class<?>... componentClasses) {原创 2020-08-03 18:29:56 · 339 阅读 · 0 评论 -
spring-源码-AnnotationConfigApplicationContext-创建分析-2
文章目录前言AnnotatedBeanDefinitionReader源码分析构造函数创建 ConditionEvaluator调用registerAnnotationConfigProcessors注册 ConfigurationClassPostProcessor注册AutowiredAnnotationBeanPostProcessor注册RequiredAnnotationBeanPostProcessor注册CommonAnnotationBeanPostProcessor注册Persistenc原创 2020-08-03 15:18:41 · 252 阅读 · 0 评论 -
spring-@Bean-源码
需要明确的是 本文仅仅是演示一个调用过程,读者需要对 spring有一个基本的认知扫描 Bean扫描 Bean 仅仅是扫描 注解或者 派生注解而我们的 属于是派生注解所以 配置类会被扫描到处理 @Bean 注解通过 扫描到 会进行一个判断,判断是否是 一些特定注解,当是的时候会进行 递归调用递归调用…这里又调回来了,当然这里精简了大量的代码获取所有 标有@Bean 注解的方法说明获取所有 @Bean 注解的所有方法包装成 放进 Map中当执行完 后也就将 放进M原创 2020-07-30 17:52:23 · 741 阅读 · 0 评论 -
spring-源码-@Import
文章目录前言@Import注册@Configuration类扫描@Import处理@Import处理(组件)问题注册(组件)调用loadBeanDefinitions调用loadBeanDefinitionsForConfigurationClass调用 registerBeanDefinitionForImportedConfigurationClass流程图ImportSelector注册@Configuration类扫描@Import处理@Import创建(组件)后续处理注册ImportBeanDef原创 2020-07-24 10:23:22 · 160 阅读 · 0 评论 -
IDEA-spring源码-编译问题
文章目录前言aspect 下载运行安装IDEA 配置配置编译前言看到AOP 源码那块了… 之前一直没问题,要准备开始撸AOP源码了结果出错了还有一个奇怪的问题是搞完之后spring的日志 TMD 不打印了… 未知,要是有解决的说一下aspect 下载https://www.eclipse.org/aspectj/downloads.php运行按下 Shift + 鼠标右键安装下一步一下一步即可,在安装的第一步需要自己选择 java 的安装目录IDEA 配置Ctrl+Shift+原创 2020-07-15 10:42:00 · 380 阅读 · 0 评论 -
spring-源码-AnnotationConfigApplicationContext-创建分析-1
文章目录前言springbootspring一、入口二、调用构造函数DefaultListableBeanFactoryAbstractAutowireCapableBeanFactory调用ignoreDependencyInterface()ignoredDependencyInterfaces-作用演示定义入口定义PortProcessor定义 Config定义A类定义B类定义C类复现学到了什么前言需要说明的是这里仅仅是分析 ApplicationContext 初始化的时候都做了一些什么当然原创 2020-07-13 15:13:21 · 507 阅读 · 0 评论 -
spring-源码-ignoreDependencyInterface
文章目录前言方法说明自动装配定义入口类定义配置类定义一个Bean结论@Autowired说明参考前言最近看spring 源码的时候,看到一个方法,ignoreDependencyInterface,然后研究其作用的时候,了解到的概念public AbstractAutowireCapableBeanFactory() { super(); //父类是空的构造 // 自动装配 的时候 忽略 实现了这些接口的类, ignoreDependencyInterface(BeanNa原创 2020-07-13 14:09:43 · 1595 阅读 · 1 评论 -
spring-xml-配置redis
文章目录前言单机集群前言这是从为知笔记的迁移的文章~~单机<bean id="poolConfig" class="redis.clients.jedis.JedisPoolConfig"> <property name="maxIdle" value="300" /> <property name="maxWaitMillis" value="3000" /> <property name="testOnBorrow" value="tru原创 2020-07-01 13:34:06 · 819 阅读 · 0 评论 -
IDEA-gradle-导入spring源码
文章目录安装gradle导入源码配置加速build.gradlesettings.gradle配置报错安装gradle参考:https://blog.csdn.net/vistaed/article/details/106960918导入源码我是直接open这个源的配置加速build.gradle项目下面有这个文件,打开进行配置需要注意的是要在plugins{...}之后配置plugins { id 'io.spring.dependency-management' vers原创 2020-06-26 07:42:00 · 4071 阅读 · 2 评论 -
spring-xml方式-di和ioc配置
文章目录说明XML和注解结合方式自动装配配置注解使用生命周期DI注入形参注入对象注入XML 纯配置XML-注入beanXML-静态注入静态工厂注入XML配置Bean一些标签属性XML-使用set方式进行注入构造函数方式对象、属性赋值数组参数注入命名空间注入方式说明仅仅是把以前的比较归类存档,不具备太大的参考价值而且是历史内容,可能出现过时能信息,XML和注解结合方式这个是早期具体哪个版本不记得,需要在application.xml开启元注解才可以使用@Component…等注解开启扫描原创 2020-05-18 12:56:21 · 136 阅读 · 0 评论 -
springboot-profiles.active-问题排查
问题说明在项目中由于有多个配置文件,这个配置文件分别在打包的时候,启动的时候才进行切换…启动的时候由于本地环境的问题,导致切换失败,问题排查启动排查项目启动查看是否正确的读取了配置文件-_,-我的问题就是这个问题,由于我没仔细看启动信息,导致读取了错误的配置文件,然项目启动不去来,等我看到这个问题的时候整个人都裂开了.太粗心了yml排查首先检查,在IDEA 里面点击这个...原创 2020-04-22 16:44:33 · 1459 阅读 · 0 评论 -
spring-配置监听器
XML方式作用在项目启动的时候加载配置文件等…在applicationContext.xml配置文件加上该bean<bean id="cmsApplicationListener" class="cn.vihost.hospital.core.intercepter.InstantiationTracingBeanPostProcessor" />java...原创 2020-04-16 15:55:27 · 301 阅读 · 0 评论 -
spring-整合ActiveMQ
订阅-监听器-发消息一般消费者和监听器同时配置消费者可以配置多个,那就意味着监听器,也是配置多个 <bean id="targetConnectionFactory" class="org.apache.activemq.ActiveMQConnectionFactory"> <property name="brokerURL" value="tcp://192...原创 2020-04-16 15:26:54 · 84 阅读 · 0 评论 -
spring-配置文件-配置好的内容
完整配置配置了redis,AOP,mysql,mybatis<?xml version="1.0" encoding="UTF-8"?><beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" x...原创 2020-04-16 15:21:23 · 125 阅读 · 0 评论