
Spring
武汉红喜
专注于消息中间件
展开
-
spring mvc && velocity 配置备忘
Spring里面最重要的概念是IOC和AOP,还有两项很重要的模块是事务和MVC,对于IOC和AOP,我们要深究其源码实现,对于事务,我们务必理解。对于MVC,Spring MVC提供的功能很多、很先进,但我们一般只要用其中的一小部分就可以满足我们的开发需求,另外,我们并不建议你排斥Struts2,因为它也是经过无数公司验证过的优秀的框架。本文给出spring mvc简单配置和部分代码举...原创 2018-03-09 17:41:14 · 166 阅读 · 0 评论 -
(1)SpringMVC前传
在我们熟知的建立在三层结构(表示层、业务逻辑层、持久层)基础之上的J2EE应用程序开发之中,表示层的解决方案最多。因为在表示层自身的知识触角很多,需要解决的问题也不少,这也就难免造成与之对应的解决方案层出不穷。 笔者在很多讨论中经常可以看到类似“某某框架已死”,或者“某某框架已经足以打败所有其他的框架”的言论。事实上,每一种解决方案都有着自身独有的存在价...原创 2018-03-09 17:42:19 · 118 阅读 · 0 评论 -
Spring的IoC容器实现原理(一)#loadBeanDefinition
Spring有十几个组件,核心组件为bean(演员)-context(舞台)-core(道具) bean包装的是object,而object中肯定要有数据,如何给这些数据提供生存环境就是context要解决的问题,对于context来说他就是要发现每个bean之间的关系,为他们建立起来并维护好这些关系。所以context就是一个bean关系的集合,这个关系集合就是我们常说的IOC容器。core组...原创 2018-03-09 17:44:11 · 210 阅读 · 0 评论 -
Spring AOP实现声明式事务代码分析
众所周知,Spring的声明式事务是利用AOP手段实现的,所谓“深入一点,你会更快乐”,本文试图给出相关代码分析。 AOP联盟为增强定义了org.aopalliance.aop.Advice接口,Spring由Advice接口扩展了5中类型的增强(接口),AOP联盟自身提供了IntroductionInterceptor->MethodInterceptor->Intercept...原创 2017-06-27 14:38:55 · 664 阅读 · 0 评论 -
Spring AOP实现原理
AOP的实现者 AOP工具的设计目标是把横切的问题(如性能监视、事务管理)模块化。使用类似于OOP的方式进行切面的编程工作。位于AOP工具核心的是连接点模型,它提供了一种机制,可以识别出在哪里发生了横切。 AspectJ AspectJ是语言级的AOP实现,2001年由Xerox PARC的AOP小组发布。AspectJ扩展了Java语言,定义了AOP语法,能够在编译器提供横切代码的织...原创 2017-06-27 14:37:38 · 299 阅读 · 0 评论 -
Spring之@Configuration配置解析
1.简单的示例: @Configuration 2 @EnableConfigurationProperties({DemoProperties.class}) 3 public class DemoConfiguration { 4 5 @Bean 6 public Book getBook(){ 7 return new Book(); 8 } 9...转载 2018-03-09 18:08:12 · 1054 阅读 · 0 评论 -
Spring对循环依赖的处理
https://github.com/javahongxi 3.2.1 什么是循环依赖 循环依赖就是循环引用,就是两个或多个Bean相互之间的持有对方,比如CircleA引用CircleB,CircleB引用CircleC,CircleC引用CircleA,则它们最终反映为一个环。此处不是循环调用,循环调用是方法之间的环调用。如图3-5所示: 图3-5 循环引用 ...原创 2018-03-09 17:50:33 · 1547 阅读 · 1 评论 -
Spring component-scan类扫描加载过程
https://github.com/javahongxi 有朋友最近问到了spring加载类的过程,尤其是基于annotation注解的加载过程,有些时候如果由于某些系统部署的问题,加载不到,很是不解!就针对这个问题,我这篇博客说说spring启动过程,用源码来说明,这部分内容也会在书中出现,只是表达方式会稍微有些区别,我将使用spring 3.0的版本来说明(虽然版本有所区别,...原创 2018-03-09 17:50:05 · 3233 阅读 · 1 评论 -
Spring 框架的设计理念与设计模式分析
https://github.com/javahongxi Spring作为现在最优秀的框架之一,已被广泛的使用并有很多文章分析它。本文将从另外一个视角试图剖析出Spring框架的作者设计Spring框架的骨骼架构的设计理念,有那几个核心组件?为什么需要这些组件?它们又是如何结合在一起构成Spring的骨骼架构?Spring的AOP特性又是如何利用这些基础的骨骼架构来工作的?Spring...原创 2018-03-09 17:50:02 · 254 阅读 · 0 评论 -
Spring之FactoryBean
首先要分辨BeanFactory 与 FactoryBean的区别, 两个名字很像,所以容易搞混。 BeanFactory: 以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂。 FactoryBean: 以Bean结尾,表示它是一个Bean,不同于普通Bean的是,它是实现了FactoryBean<T>接口的Bean,根据该Bean的Id从BeanFacto...原创 2018-03-09 17:49:53 · 135 阅读 · 0 评论 -
(5)SpringMVC-http请求处理路线
核心架构的具体流程步骤如下: 1、 首先用户发送请求——>DispatcherServlet,前端控制器收到请求后自己不进行处理,而是委托给其他的解析器进行处理,作为统一访问点,进行全局的流程控制; 2、 DispatcherServlet——>HandlerMapping, HandlerMapping将会把请求映射为HandlerExecutionChain对象...原创 2018-03-09 17:48:34 · 259 阅读 · 0 评论 -
(4)SpringMVC核心配置文件详解
在上一篇文章中,我们从DispatcherServlet谈起,最终为读者详细分析了SpringMVC的初始化主线的全部过程。整个初始化主线的研究,其实始终围绕着DispatcherServlet、WebApplicationContext和组件这三大元素之间的关系展开。 在文章写完之后,也陆续收到了一些反馈,其中比较集中的问题,是有关WebApplicationContext对组件进行初始化的过...原创 2018-03-09 17:47:25 · 295 阅读 · 0 评论 -
(3)DispatcherServlet与初始化主线
在上一篇文章中,我们给出了构成SpringMVC应用程序的三要素以及三要素的设计过程。让我们来归纳一下整个设计过程中的一些要点: SpringMVC将Http处理流程抽象为一个又一个处理单元 SpringMVC定义了一系列组件(接口)与所有的处理单元对应起来 SpringMVC由DispatcherServlet贯穿始终,并将所有的组件串联起来 在整个过程中,组件和Dispatc...原创 2018-03-09 17:46:15 · 280 阅读 · 0 评论 -
(2)SpringMVC概览
对于任何事物的研究,总是由表及里、由浅入深地进行。在本系列的第二篇文章中,我们将通过不同的观察视角,对SpringMVC做一些概要性的分析,帮助大家了解SpringMVC的基本构成要素、SpringMVC的发展历程以及SpringMVC的设计原则。 SpringMVC的构成要素 了解一个框架的首要任务就是搞清楚这个框架的基本构成要素。当然,这里所说的构成要素实际上还可以被挖掘为两个不同的层...原创 2018-03-09 17:46:09 · 139 阅读 · 0 评论 -
从AbstractRoutingDataSource说分库分表实现
很多人不知分库分表怎么实现,可能是把它想得复杂了。事实上,我们将复杂的事情分工后就简单了。如果仅仅是单库分表,那直接在代码中根据分表的维度得到表名后缀,如“0001”,然后比如在mybatis下,sql语句就可以这么写“select * from user_#tbIndex#”。程序中我们能够操作数据库中的表,是因为我们拿到了数据源DataSource,并由此getConnection()...原创 2018-03-09 17:45:05 · 369 阅读 · 0 评论