
spring
it_haha
微信公众号:IT哈哈
展开
-
Spring5源码解析-使用Spring AnnotationUtils处理注解
通过Java中的注解,程序员可以将配置文件中的一些配置通过使用Java类来实现。例如,在Spring中,通过@RequestMapping注解,我们可以直接在controller内配置URL映射。一般来说,成功者的背后离不开一帮默默支持他的小伙伴,这里同样是,一旦离开其中一个,就甭指望实现所期望的功能,这里要说的一个就是AnnotationUtils。在本文中,我们将会看到Annotation...转载 2019-08-23 16:22:23 · 1213 阅读 · 0 评论 -
Spring5源码解析-Spring中的应用上下文
Spring5源码解析-Spring中的应用上下文之前讲到过,Spring中的 beans生活(用这俩字觉得更形象具体)在其应用程序的上下文环境中。在本文中,我们将详细介绍应用程序上下文,另外此篇同样是由域联系到的逃逸分析的关于Spring容器的续篇。关于Spring5源码解析-@Autowired这篇文章讲了通过@Autowired注解进行依赖注入。这一次我们来探讨应用程序上下文(app...转载 2019-08-21 10:09:00 · 231 阅读 · 0 评论 -
Spring5源码解析-Spring中的Context loader
我们已经知道,应用程序上下文是Spring管理的bean所在的容器。但是我们依然要问一个问题:这个上下文是如何创建的?那么在这篇文章中我们来探讨这个问题。在第一部分中,会说下在Spring的应用程序上下文中所谓的上下文加载器(context loader)是什么。在第二部分,我们会讨论这个加载器的代码细节。最后一部分,老规矩,写我们自己的一个自定义的loader。在继续之前,需要说一下,loa...转载 2019-08-21 14:21:04 · 1018 阅读 · 0 评论 -
Spring框架中的设计模式(四)
本文是Spring框架中使用的设计模式第四篇。本文将在此呈现出新的3种模式。一开始,我们会讨论2种结构模式:适配器和装饰器。在第三部分和最后一部分,我们将讨论单例模式。适配器当我们需要在给定场景下(也就是给定接口)想要不改变自身行为而又想做到一些事情的情况下(就是我给电也就是接口了,你来做事也就是各种电器),使用适配器设计模式(这里再说一点,就相当于我们再一个规章制度的环境下,如何去适...转载 2019-08-16 14:10:03 · 130 阅读 · 0 评论 -
Spring框架中的设计模式(五)
通过以前的4篇文章,我们看到Spring采用了大量的关于创建和结构方面的设计模式。本文将描述属于行为方面的两种设计模式:命令和访问者。命令模式这篇文章描述的第一个行为设计模式是命令。它允许将请求封装在一个对象内并附加一个回调动作(每次遇到所所谓的回调大家就只需要理解为一个函数方法就好,省的去浪费那么多脑子)。请求被封装在命令对象之下,而请求的结果被发送到接收者。命令本身不是由调用者执行...转载 2019-08-16 14:47:41 · 115 阅读 · 0 评论 -
Spring5源码解析-Spring框架中的单例和原型bean
最近一直有问我单例和原型bean的一些原理性问题,这里就开一篇来说说的通过Spring中的依赖注入极大方便了我们的开发。在xml通过<bean>定义(或者通过@Bean在配置类里定义)对象之后,然后只需简单地使用@Autowired注解,就可以使用由Spring上下文管理的每个对象。需要注意的是,所有这些对象在Spring中默认都是单例。这一次我们会去讨论Spring如何来管理...转载 2019-08-22 08:31:48 · 237 阅读 · 0 评论 -
Spring5源码解析-论Spring DispatcherServlet的生命周期
Spring Web框架架构的主要部分是DispatcherServlet。也就是本文中重点介绍的对象。在本文的第一部分中,我们将看到基于Spring的DispatcherServlet的主要概念:前端控制器模式。第二部分将专门介绍Spring应用程序中的执行链。接下来是DispatcherServlet类的解释。在最后一部分,我们将尝试开发一个自定义的dispatcher servlet。...转载 2019-08-17 18:47:27 · 265 阅读 · 0 评论 -
Spring5源码解析-Spring中的处理器handlers
Spring Web应用程序的中心站是DispatcherServlet(具体请查看Spring5源码解析-论Spring DispatcherServlet的生命周期)。这是所有传入请求的中心入口。但如果没有但如果没有众多的handlers,我们依然不能做任何事情。首先,在本文中,我们先解读handler到底是个啥。之后,我们将介绍一些Spring框架中handlers的两种处理类型。最...转载 2019-08-17 19:01:31 · 337 阅读 · 0 评论 -
Spring5源码解析-Spring中的bean工厂后置处理器
Spring允许我们使用bean来进行大量的操作(这也是我们面向对象思想最常用的表达方式)。我们可以决定它们在容器中是否是(单例或者是原型)唯一实例。通过bean工厂后置处理器我们还可以在初始化时进行一些额外的操作。在这篇文章中,来介绍下bean factory post processor。在第一部分,我们来发现下这个概念背后玄机。之后我们会写一些有趣代码来让大伙更好地理解这个概念。什么...转载 2019-08-22 19:33:37 · 407 阅读 · 0 评论 -
Spring5源码解析-Spring中的异步和计划任务
Java提供了许多创建线程池的方式,并得到一个Future实例来作为任务结果。对于Spring同样小菜一碟,通过其scheduling包就可以做到将任务线程中后台执行。在本文的第一部分中,我们将讨论下Spring中执行计划任务的一些基础知识。之后,我们将解释这些类是如何一起协作来启动并执行计划任务的。下一部分将介绍计划和异步任务的配置。最后,我们来写个Demo,看看如何通过单元测试来编排计划任...转载 2019-08-25 14:54:13 · 423 阅读 · 0 评论 -
Spring框架中的设计模式(三)
在之前的两篇文章中,我们看到了一些在Spring框架中实现的设计模式。这一次我们会发现这个流行框架使用的3种新模式。本文将从描述两个创意设计模式开始:原型和对象池。最后我们将重点关注行为模式—>观察者。原型模式这篇文章的第一个设计模式是原型。可以通过官方文档查找有关Spring作用域中的bean作用域的文章中介绍了类似的概念(prototype)。原型设计模式与有用相同名称的(...转载 2019-08-15 21:06:32 · 113 阅读 · 0 评论 -
Spring5源码解析-Spring中的异步事件
上一篇 Spring框架中的事件和监听器并未对Spring框架中的异步事件涉及太多,所以本篇是对其一个补充。同步事件有一个主要缺点:它们在所调用线程的本地执行(也就是将所调用线程看成主线程的话,就是在主线程里依次执行)。如果监听器处理同步事件需要5秒钟的响应,则最终结果是用户将在至少5秒内无法看到响应(可以通过Spring框架中的事件和监听器中的例子了解具体)。所以,我们可以通过一个替代方案来...转载 2019-08-24 21:50:12 · 335 阅读 · 0 评论 -
Spring5源码解析-使用@Valid进行Spring验证
验证功能在Spring中是很常用的。你可以使用注解或自己的验证器并将其绑定到请求中。本文将重点介绍第一种解决方案。第一部分将介绍注解验证流程。在第二部分中,将介绍基本实现的组件。最后一部分将包含Spring初学者开发人员常见错误的解释:是否有必要直接在验证对象之后放置BindingResult。使用@Valid注解在Spring中进行验证流程要了解使用标准Java @Valid或特...转载 2019-08-19 21:26:49 · 2453 阅读 · 0 评论 -
Spring5源码解析-@ModelAttribute
之前我们讨论了Spring中如何通过验证器来达到校验目的。其中有几行我们提到了@ModelAttribute注解。但是,单单理解这个概念还不够,总感觉飘如浮萍。本文将对@ModelAttribute进行解析。将分为两部分。首先将介绍此注解的用法。第二部分将通过具体的代码来分析这个注解和其相应的解析器的细节。什么是@ModelAttribute注解?@ModelAttribute注解...转载 2019-08-19 23:45:49 · 339 阅读 · 0 评论 -
Spring5源码解析-@Autowired
你有没有思考过Spring中的@Autowired注解?通常用于方便依赖注入,而隐藏在这个过程之后的机制到底是怎样,将在本篇中进行讲述。@Autowired所具有的功能@Autowired是一个用来执行依赖注入的注解。每当一个Spring管理的bean发现有这个注解时候,它会直接注入相应的另一个Spring管理的bean。该注解可以在不同的层次上应用:类字段:Spring将...转载 2019-08-20 00:15:17 · 135 阅读 · 0 评论 -
Spring中Bean的作用域
Spring Bean,就像JavaBeans中一样,有其使用的作用域。前面的文章中我们已经看到其中的两个:singleton 和prototype。这次来讲讲另外2个作用域(总共六个,参考本人Spring5文档翻译)。本文将分为两部分。每个部分描述一个bean作用域。所以,在第一个,我们将探讨下request请求作用域。第二个描述的是session和全局session(此在Sprin...转载 2019-08-20 18:04:47 · 124 阅读 · 0 评论 -
Spring5源码解析-Spring Web中的处理程序执行链
Spring的DispatcherServlet假如缺少几个关键元素将无法分派请求。其中最重要的一个是处理程序执行链。在这篇文章中,我们把注意力放在处理程序执行链之上。老规矩,第一部分将介绍这个概念。第二部分把目光引入到Spring执行链的世界中。在最后一部分,我们将分析如何在Spring中利用之前自定义DispatcherServlet中实现一个自定义的处理程序执行链。什么是Sp...转载 2019-08-20 18:11:16 · 240 阅读 · 1 评论 -
Spring框架中的设计模式(一)
设计模式有助于遵循良好的编程实践。作为最流行的Web框架之一的Spring框架也使用其中的一些。本文将介绍Spring Framework中使用的设计模式。这是5篇专题文章的第一部分。这次我们将发现Spring框架中使用的4种设计模式:解释器,构建器,工厂方法和抽象工厂。每部分将首先解释给定模式的原理。紧接着,将会使用Spring的一个例子来加深理解。解释器设计模式在现实世界中,我们人...转载 2019-08-15 17:15:55 · 159 阅读 · 0 评论 -
Spring5源码解析-Spring框架中的事件和监听器
事件和平时所用的回调思想在与GUI(JavaScript,Swing)相关的技术中非常流行。而在Web应用程序的服务器端,我们很少去直接使用。但这并不意味着我们无法在服务端去实现一个面向事件的体系结构。在本文中,我们将重点介绍Spring框架中的事件处理。首先,会先介绍下事件驱动编程这个概念。接着,我们会将精力放在专门用于Spring框架中的事件处理之上。然后我们会看到实现事件调度和监听的主要...转载 2019-08-24 21:26:58 · 321 阅读 · 0 评论 -
Spring框架中的设计模式(二)
在上一篇中我们在Spring中所谈到的设计模式涉及到了创建模式三剑客和1个行为模式(解释器模式)。这次我们会将眼光更多地关注在具有结构性和行为性的设计模式上。在这篇文章中,我们将看到每个类型的两种模式。首先将关注类型是的结构设计模式。它将包含代理和复合。下一个将介绍行为模式:策略和模板方法。代理模式面向对象编程(OOP)可能是编程中最流行的概念。然而,Spring引入了另一种编码规范,...转载 2019-08-15 17:36:10 · 260 阅读 · 0 评论 -
Spring5源码解析-Spring中的处理拦截器
在Java的Web应用程序中通常使用过滤器(即filter)来捕获HTTP请求。但它们仅为webapps保留。Spring引入了一种新的方法来实现,更通用,称为处理程序拦截器。本文将分3部分。第一部分来讲Spring处理程序拦截器的理论概念。第二部分,说一说默认的Spring拦截器。最后一部分老规矩,应用实战,我们将写我们自己的处理程序拦截器。什么是Spring中的处理程序拦截器?要了...转载 2019-08-18 15:14:21 · 291 阅读 · 0 评论