
Spring
爱上香锅的麻辣
高级Java开发工程师,熟悉电商系统整体架构(尤其是订单和商品系统)和服务治理体系
展开
-
Sping-AOP:cglib动态代理与JDK动态代理的区别
默认状态下,Spring-AOP默认使用JDK动态代理,当需要代理的对象没有实现任何接口时,才使用cglib动态代理。一、JDK动态代理JDK动态代理的对象必须实现接口,当某个对象没有实现接口时,就会原创 2017-04-23 22:49:15 · 1906 阅读 · 0 评论 -
Spring MVC分析篇——HandleMapping
Sping MVC是一个web开发框架,用于处理Http请求,那首先要做的第一件事情就是要为每个url找到对应的java类及方法。至于寻找的方式就有很多了,简单的做法,可以用一个Map保存所有url和“java类及方法”之间的映射;复杂一点的,使用注解来定义方法和url的关系……所以,自然而然的,我们可以抽象出一个接口来表示这个寻找动作,不同的人可以按照自己的需求订制这种寻找过程。 那么这...原创 2018-11-03 17:25:39 · 4631 阅读 · 1 评论 -
Spring MVC原理解析——MultipartRequest解析
下面是SpringMVC处理请求的流程图,在进行正式的映射之前,Spring MVC会先判断当前请求是不是multipart/form-data请求,如果是,会将request解析为MultipartHttpServletRequest。 ...原创 2018-05-22 09:14:59 · 5159 阅读 · 0 评论 -
Spring AOP原理解析——Spring事务
Spring申明式事务有两种方式:基于配置文件基于注解一、基于配置文件的事务<!-- 会重复读,不会脏读事务 --><tx:advice id="defaultTxAdvice" transaction-manager="transactionManager"> <tx:attributes> <tx:m...原创 2018-05-21 09:05:49 · 1125 阅读 · 0 评论 -
Spring AOP原理解析——基于AOP标签的AOP是如何实现的?
前面我们讲过了经典的基于代理的AOP和基于自动代理的AOP是如何实现的,有了前面的基础,学习基于AOP标签的AOP的实现原理,就很简单了。 经典的基于代理的AOP: https://blog.youkuaiyun.com/u011983531/article/details/80359304 基于自动代理的AOP: https://blog.youkuaiyun.com/u011983531/article/...原创 2018-05-20 11:01:25 · 1316 阅读 · 0 评论 -
Spring AOP原理解析——基于自动代理AOP是如何实现的?
在上一篇(https://blog.youkuaiyun.com/u011983531/article/details/80359304)我们介绍了基于经典代理的AOP实现方案,在这一篇中,我们将看看基于自动代理的AOP是如何实现的。//基于自动代理AOP&lt;bean id="sleepHelper" class="test.spring.aop.bean.SleepHelper"&gt;&am原创 2018-05-19 20:51:08 · 1374 阅读 · 0 评论 -
Spring AOP原理解析——经典的基于代理的AOP是如何实现的?
Spring实现AOP有4种方式,感兴趣的可以查看下面的博文: https://blog.youkuaiyun.com/u011983531/article/details/49391129首先,我们来看看基于经典的AOP是如何实现的。先写一个接口叫Sleepable,所有具有睡觉能力的东西都可以实现该接口。package com.ghs.aop;public interface Sleep...原创 2018-05-18 08:52:40 · 4606 阅读 · 0 评论 -
Spring AOP原理解析——Advice、Pointcut、Adivsor
一、Advice、Pointcut、Adivsor的类图原创 2018-05-17 14:06:41 · 1076 阅读 · 0 评论 -
Spring源码解析——配置文件解析
Spring配置文件解析过程中涉及的类图如下: Spring配置文件解析的入口是BeanDefinitionReader接口,该接口最重要的实现是XmlBeanDefinitionReader类。XmlBeanDefinitionReader的核心方法如下:protected int doLoadBeanDefinitions(InputSource inputSource, R...原创 2015-11-09 10:03:44 · 692 阅读 · 0 评论 -
Spring AOP原理解析——创建代理
网上有很多分析Spring AOP的源码的文章,但大部分都是从配置文件入手,晦涩难懂。下面我们换一种思路,从AOP的原理及整体架构着手,来看看Spring AOP是如何玩转起来的。 我们都知道,Spring-AOP时基于动态代理来实现的,而实现动态代理主流的有两种方式,一种是JDK动态代理,另一种是Cglib动态代理。下面我们主要以JDK动态代理为例来讲解Spring-AOP是如何实现的...原创 2018-03-22 09:36:09 · 850 阅读 · 0 评论 -
Spring中Bean的生命周期管理
Spring中Bean的创建主要有4步:1、解析XML文件,生成BeanDefinition;2、调用BeanFactory的getBean()方法获取Bean;3、创建Bean(主要包括实例化、填充属性、初始化3个步骤);4、如果实现了FactoryBean接口,通过getObject返回Bean在整个创建过程中,Spring提供了丰富的生命周期接口,通过这些接口,开发者可以实现很多自定义需求。原创 2017-12-26 21:11:53 · 331 阅读 · 0 评论 -
<aop:aspect>与<aop:advisor>的区别
在开发过程中,不少有Spring Aop的使用,大多数情况下我们用的是< aop:aspect>,只有在进行事务管理时才用到< aop:advisor>。但是,一直没弄清楚< aop:aspect>与< aop:advisor>的区别。原创 2017-04-23 15:44:12 · 29255 阅读 · 7 评论 -
Ajax+SpringMVC传递JSON数组
使用Ajax传递JSON比较容易,但是如果要传递JSON数组,需要一点小技巧。而且在实际开发中,当我们需要一次性保存多条记录的时候,表单通过表单提交比较麻烦,但是使用JSON数组来传递就比较方便了,下面看一个例子:JS中提交请求:/** * 保存会话阈值 */ save:function(){ var jsonArr = []; //待传递的JSON数组原创 2015-09-25 13:00:22 · 3545 阅读 · 0 评论 -
使用JdbcTemplate进行插入操作
使用JdbcTemplate进行插入、更新、删除操作时,使用的统一是jdbcTemplate.update(..)方法。使用JdbcTemplate进行插入操作有以下几种情形:第一种:传入sql和参数值,不返回主键 public Integer save(String sql, final Object... args){ return getJdbcTemplate().原创 2015-10-02 10:11:04 · 9061 阅读 · 0 评论 -
Spring事务配置的5种方式
Spring配置文件中关于事务配置总是由三个组成部分,分别是DataSource、TransactionManager和代理机制这三部分,无论哪种配置方式,一般变化的只是代理机制这部分。 DataSource、TransactionManager这两部分只是会根据数据访问方式有所变化,比如使用Hibernate进行数据访问时,DataSource实际为SessionFactory,Transact转载 2015-10-24 22:45:48 · 467 阅读 · 0 评论 -
Spring实现AOP的4种方式
方式一:经典的基于代理的AOP首先写一个接口叫Sleepable,所有具有睡觉能力的东西都可以实现该接口。package com.ghs.aop;public interface Sleepable { public void sleep();}然后写一个Human类,他实现了这个接口package com.ghs.aop;public class Human implements Sle转载 2015-10-24 23:39:44 · 1236 阅读 · 0 评论 -
Spring的FactoryBean详解
在介绍FactoryBean之前,我们首先要分辨FactoryBean与BeanFactory的区别。BeanFactory: 以Factory结尾,表示它是一个工厂类,是用于管理Bean的一个工厂。FactoryBean:以Bean结尾,表示它是一个Bean,这个 Bean 不是简单的Bean,而是一个能生产或者修饰对象的”工厂 Bean”,它的实现是基于设计模式中的修饰器模式。一、常见的转载 2016-04-10 12:37:11 · 1263 阅读 · 0 评论 -
Spring MVC结果转换
一、返回视图——ModelAndView1、视图路径 默认在当前Control的路径下,/表示项目部署的根目录。 例如: new ModelAndView(“home.jsp”)返回的路径是/user/home.jsp new ModelAndView(“/home.jsp”)返回的路径是/home.jsp@Controller@RequestMapping("/user")public原创 2016-12-10 22:15:19 · 475 阅读 · 0 评论 -
Spring MVC分析篇——HandlerAdapter
SpringMVC的第一步,通过HandleMapping找到了某个请求对应的Handler,现在Handler有了,但是不同的handler的执行逻辑完全不一样,实现了Controller接口的handler,直接调用handler的handleRequest(……)方法就行,使用RequestMapping注解的handler,需要找到具体的方法再执行...原创 2018-11-05 17:07:44 · 1799 阅读 · 1 评论