Spring入门到源码之旅
文章平均质量分 78
小编作为JAVA WEB开发的程序员,Spring和工作息息相关,本专栏介绍从Spring入门级别,到解析Spring源码。
期待你的关注~~
IT贱男
越努力,越幸运!
展开
-
spring5源码分析-bean的创建过程(二)
今天主要在讲在bean的创建过程中,createBean中的方法,在创建一个bean的时候,基本的流程如下图。原创 2021-01-18 14:49:47 · 978 阅读 · 1 评论 -
spring5源码分析-bean的创建过程(一)
spring源码分析,到目前为止,这是第三篇了。好了好了好了,终于可以开始写了,本文还是从一个案例进行分析源码。public static void main(String[] args) { AnnotationConfigApplicationContext applicationContext = new AnnotationConfigApplicationContext(AppConfig.class); // getBean方法,获取一个bean,如果没有则会去创建 Sys原创 2021-01-13 15:49:14 · 621 阅读 · 3 评论 -
spring5源码分析-BeanDefinition
一、引言二、什么是BeanDefinition三、BeanDefinition的合并操作原创 2021-01-04 16:30:16 · 825 阅读 · 1 评论 -
spring5源码分析-FactoryBean
一、引言怎么说? 一直想写spring源码分析系列的文章,又不知道从何写起。回想2018年小编写文章的目的是什么呢? 只是单纯的记录自己的学习,当作笔记来使用(对,真的只是当作笔记)。随着CSDN发展、随着年龄的增长、随着心理的变化,反而变得不是那么单纯。有时候花了一个礼拜、两个礼拜认认真真写一篇源码分析的文章,访问量少而又少,点赞寥寥无几。正义也许会迟到,但绝不会缺席,怀着最初的心态,再加年底小编会习惯总结今年所学习的知识,整理整理还是觉得发到博客上,希望在看的小伙伴点个赞啥的。小编分原创 2020-12-24 17:04:50 · 520 阅读 · 0 评论 -
编译Spring5.0.x源码之一路坎坷,你经历过绝望吗?
本文来说说在编译spring-springframework-5.0.x的路上,小编我到底经历了什么?如果正在看文章你,恰好也想要研究spring源码,那么请先做好准备再动手,不然迎来的问题如滔滔江水,连绵不绝。第一天:先来说说环境:系统:MacOs、开发工具:idea 2017、JDK:1.8spring源码传送门:https://github.com/spring-projects/spring-framework第一天小编什么都没准备,直闯源码仓库,找到5.0.x版本,小.原创 2020-08-14 16:13:29 · 6665 阅读 · 19 评论 -
Spring入门知识 ———— 使用xml文件的方式配置Spring事务
一、引言关于事务的最后一个章节,如何在xml当中配置一个事务。从IOC、AOP、到事务,都会有基于xml方式和注解的方式进行实现,可见Spring 还是很灵活的。今天所介绍xml配置事务也是很简单的,记住以下步骤即可:步骤一:配置事务管理器步骤二:配置事务相关属性步骤三:配置事务应用切点是不是炒鸡简单二、具体的xml配置还是基于之前的案例进行演示的哟。&l...原创 2018-11-12 23:27:12 · 366 阅读 · 0 评论 -
Spring入门知识 ———— Spring事务注解其他属性(回滚、只读、过期)
一、引言咱们spring入门知识也接近尾声,后续小编会时不时更新Spring源码解析的文章,更加深入的理解。那么今天来看下@Transactional这个注解的其他几个属性,这里小编就只是介绍了,不为大家进行演示了。二、回滚@Transactional注解默认是针对全部运行时异常进行回滚,那么当然我们也可以通过相关属性进行设置。1、rollbackFor:该属性设置需要进行回滚...原创 2018-11-12 22:08:31 · 634 阅读 · 0 评论 -
Spring入门知识 ———— Spring事务的传播行为
一、引言不知道小伙伴们有没有想过这样一个问题,比如说有两个方法,同时都具有事务,如果说其中一个方法调用另外一个方法,那么事务运行的机制是什么样子的。如果被调用的方法正常执行,而调用者确异常了,那么整个事务会进行回滚吗?针对这么一个问题,Spring还是提供了一个很好的解决办法,也提出一个概念,事务的传播行为。二、事务的传播行为当事务方法被另一个事物方法调用时,必须指定事务应该如何传...原创 2018-11-11 17:12:54 · 497 阅读 · 1 评论 -
Spring入门知识 ———— 使用注解的方式实现事务
一、引言上一个章节当中,我们为学习事务准备了一个生活案例,可以回顾一下,点这里。上个案例,成功了购买了商品,并且账户金额也减少了,这是没任何问题的,现在我们对这个方法进行一个修改。在我们修改商品库存的时候,抛出一个异常,导致的结果就是,账户的钱减少了,但是商品库存没减少。那么,这就是个问题了,这两个事件必须是要么全部完成,要么全部不完成,这个时候就的使用事务了。 pub...原创 2018-11-11 13:43:22 · 400 阅读 · 2 评论 -
Spring入门知识 ———— 学习事务前的准备工作
一、引言在我们学习事物之前呢,肯定需要准备一个使用事务的场景,方便后面学习事务做准备。这个案例非常简单,在我们生活随处可见,也方便大家理解。我相信大家肯定拿过爸妈给的零花钱,去买零食。在我们拿零花钱在购买的时候,是不是零花钱要减少,并且你购买的零食的商品库存也要减少是吧。 举个例子,注意这不是打广告。 小编手里面有10块钱零花钱,这个时候小编口馋了,想来一包乐事的薯片。薯片的价格为3块,小...原创 2018-11-11 12:35:45 · 972 阅读 · 0 评论 -
Spring入门知识 ———— Spring事务介绍
一、引言随着时间一分一秒的过去,从IOC、AOP、到现在的事务,小编大概花了两周的时间。在总结回顾之前的知识点,也有不少的收获,技术就是这样,只能靠一点一点的积累,通过不断的锻炼,来提高自己。我们这一行,也需要时刻保持着学习,真是活到老学到老呀~~~~二、什么是事务官方一点的解释:事务管理是企业级应用程序开发中,不可少的技术,用来确保数据库的完整性和一致性。事务就是一系列的动作,它...原创 2018-11-11 10:57:30 · 484 阅读 · 0 评论 -
Spring入门知识 ———— Spring使用阿里巴巴的druid和JdbcTemplate操作数据库
一、引言在学习事务之前呢,首先我们需要能操作数据库,这样才能好演示事务的作用。druid这个是阿里巴巴的数据库连接池,为什么要使用连接池呢?为了减少频繁的数据库连接操作,消耗性能,这里小编就不过多的解释,而且阿里巴巴这款连接池还能很好的进行监控等等功能,确实很强大!!!Jdbctemplate则是Spring框架给我们提供的,连接数据库最底层的就是JDBC,而Spring对此进行了封装...原创 2018-11-10 16:47:42 · 1874 阅读 · 0 评论 -
Spring入门知识 ———— 基于xml配置文件的形式配置AOP
一、引言Spring两个核心的入门知识今天是最后一章节了,小编个人感觉吧之前的内容理解,熟悉之后,入门肯定是没问题的。那么今天最后来讲通过XML的形式,来配置AOP实现,不要眨眼,很快的。二、切面实现类业务实现代码小编就省略了,重点在于下面通过XML配置AOP实现AOP的类是必不可少的步骤,只是不再使用注解的方式,而是XML配置public class InsertLog...原创 2018-11-07 22:23:36 · 390 阅读 · 0 评论 -
Spring入门知识 ———— @Pointcut表达式详解
一、引言@Pointcut这个注解之前的案例中也有使用过,但是小编都是用的同一种格式,参数只是大概的描述了一下。趁着今晚花好月圆,来写下这个注解有几种常用的表达式。常用的其实就那么几个,小编查看了官方的文档,还是有挺多的~二、具体详解第一种:表示在UserMangeImpl类下的所有方法,这种方式在之前的案例使用的。@Pointcut("execution(* com.s...原创 2018-11-05 22:50:36 · 19085 阅读 · 0 评论 -
Spring入门知识 ———— Spring切面的优先级
一、引言hello everyone,一不小心又叫了份外卖,人生就是这样时刻都有小惊喜。切面的优先级,顾名思义就是如果存在多个切面应用到一个方法上时,他们之间的优先级是什么? 需要怎么去指定优先级?开整吧~二、需求分析之前我们对用户的操作,添加了一个记录日志的切面,那么现在又来了一个需求。产品经理:“这个对用户数据的操作是很敏感的,你给我加个功能,如果有对用户数据进行修改,...原创 2018-11-05 22:08:33 · 819 阅读 · 1 评论 -
Spring入门知识 ———— 实现AOP返回通知、异常通知、环绕通知
一、引言以你为AOP只有前置通知和后置通知吗? 那你就错啦在AOP中一共有五种方式:@Befor:前置通知:在方法执行之前执行@After:后置通知,在方法之后执行@AfterReturning:返回通知,在方法返回结果之后执行@AfterThrowing:异常通知:在方法抛出异常之后@Around:环绕通知,围绕着方法执行先定义一个横切点: /** ...原创 2018-11-04 18:54:07 · 924 阅读 · 4 评论 -
Spring入门知识 ———— 实现AOP前置通知以及后置通知
一、引言什么是前置通知和后置通知?前置通知:调用方法之前,后置通知:调用方法之后。那比如之前实现的日志记录功能,都是在调用方法之前记录的日志,AOP可以很灵活的控制,切点在什么时候执行。二、功能需求还是拿我们之前代理那一章节中的例子。有一个针对用户的增删改查的方法,需要做日志记录。public interface UserMange { void insertU...原创 2018-11-04 15:06:14 · 1375 阅读 · 0 评论 -
Spring入门知识 ———— 初步认识Spring的AOP
一、引言IOC小编就花了13个章节整体的讲了一下,中间可能某些知识点会遗漏,请小伙伴请谅解一下。今天学习Spring另外一个核心:面向切面编程(AOP)AOP内容不多,大概就几章就搞定了。对了对了,小编最近特价秒杀了一本书,分享给你们一段话。追逐梦想的路上,华丽的跌倒,总胜过无所谓的徘徊。你应该始终相信努力的意义。因为未来的那个你,一定会感谢现在拼命努力的自己。...原创 2018-11-04 14:04:18 · 348 阅读 · 0 评论 -
Spring入门知识 ———— 静态代理与动态代理的模式
一、引言讲Spring AOP之前呢,大家先要了解代理,为啥? 因为AOP实现原理也是采用的动态代理,喔~~如果之前没有接触过代理的小伙伴们,建议先去了解常用的设计模式中的代理模式。二、场景需求现在对用户进行增删改查的功能,代码如下:接口、以及实现类需求:在增删改查的功能当中,需要加一个日志的功能。public interface UserMange { voi...原创 2018-11-03 20:30:54 · 494 阅读 · 0 评论 -
Spring入门知识 ———— Spring泛型依赖注入
一、引言Spring IOC容器这是最后一章节拉,也是Spring4.0的新特性:泛型依赖注入。但是小编在工作当中也是没遇到过,之前介绍了构造器、Setter、注解的形式注入,那么今天看看这个泛型依赖注入吧go go go~ 二、实例操作步骤一:创建父类带泛型的BaseRepository<T>、BaseService<T>public cla...原创 2018-11-03 11:20:16 · 748 阅读 · 0 评论 -
Spring入门知识 ———— 通过注解的方式自动装配Bean
一、引言在之前的博客当中,如果要给一个属性注入值,我们采用的构造器和Setter方法来实现的,那小伙伴们可以想想,如果在真实开发环境当中也是这样操作的吗? 大家都是对象与对象之间都是有依赖关系的:Controller -- > Service -- > Dao ,它们三者之间就有很大的依赖关系,表现成需要调用业务层的方法,业务层也需要调用持久层的方法。接着往下看 ~~~...原创 2018-11-01 22:42:28 · 967 阅读 · 0 评论 -
Spring入门知识 ———— 通过注解的方式配置Bean
一、引言小伙伴们注意啦,重点,重点来了之前我们都是通过xml去配置一个bean,当然我们在实际项目中肯定不是那么干的,毕竟一个项目那么多的类,挨个挨个配置岂不是太麻烦了。到目前为止最为流行的方式还是注解,只需简单加上注解即可添加到IOC容器当中去,但是之前对于bean的操作还是得去了解。那么今天小编就来讲讲如果使用注解的方式去加载bean,看好啦。二、注解包括Spring可以通过自...原创 2018-11-01 21:53:35 · 462 阅读 · 0 评论 -
Spring入门知识 ———— Bean的生命周期
一、引言生命周期,很熟悉的字眼,比如面试官问你:servlet的生命周期简单的说下,然后噼里啪啦的说一大堆。生命周期无非就是初始化、使用、销毁是吧,那当然Bean的生命周期也是如此。那怎么管理Bean的生命周期呢? 点个赞,往下看,嘿嘿嘿~~ 二、管理Bean生命周期的方式方式一:在配置Bean的时候,通过设置init-method和destory-method来指定初始化...原创 2018-10-30 23:33:47 · 355 阅读 · 0 评论 -
Spring入门知识 ———— SpEl表达式
一、引言小编第一眼看见这个SpEl表达式时,第一反应是,我学过这个吗? 小编工作这么久,Spring框架用了这么久,我咋没见过。 确实,这个SpEl表达小编在工作当中确实没用过,可能特殊的情况需要用到把。但是,咱们小伙伴都是追求完美的,虽然小编没用过,但是也不代表没用呀,小编大概看了以下SpEl表达式功能还挺多的,大概掌握了解一下还是很有必要的,哈哈哈哈哈嗝~ 二、SpEl表达式能...原创 2018-10-30 22:47:30 · 1069 阅读 · 0 评论 -
Spring入门知识 ———— 配置Bean使用外部属性配置文件
一、引言很多小伙伴看到标题,咦,Bean使用外部属性配置文件是啥? 干啥用的?小编先问下,在你们开发项目当中,后缀名为properties的文件,看见过没? 什么?没看见过? 别扯了,怎么可能没看过。嗯嗯行,就算你们没使用过,小编简单介绍一下。以properties扩展名的文件,一般称之为属性配置文件,一般存放数据库连接信息,或者项目一些存放的配置。给你们看下存放格式,以下是数...原创 2018-10-29 22:53:14 · 621 阅读 · 0 评论 -
Spring入门知识 ———— Bean的Scope的作用域
一、引言跟上小编的脚步,抓紧时间学习。别说话,先来看Bean的配置文件,就配置了一个Car Bean,其他事什么都没干。<beans xmlns="http://www.springframework.org/schema/beans" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi...原创 2018-10-29 22:08:47 · 388 阅读 · 0 评论 -
Spring入门知识 ———— Spring_IOC Bean之间的关系
一、引言继承Bean的配置 - Spring允许继承Bean的配置,被继承的Bean称之为父Bean,继承的Bean称之为子Bean。 - 子Bean从父Bean中继承配置,包括Bean的属性配置 - 子Bean也可以覆盖从父Bean继承过来的配置 - 父Bean可以作为配置模版,也可以作为Bean实例。如果只想把父Bean作为模板,可以设置Bean的abstr...原创 2018-10-28 21:40:32 · 428 阅读 · 0 评论 -
Spring入门知识 ———— Bean的自动装配
一、引言抓紧时间,小编不就扯东扯西了。Spring IOC容器可以自动装配Bean,需要做的仅仅是在<bean>节点中,指定autowire属性自动装配模式。byType,根据类型自动装配 - 如果IOC容器中有多个Bean类型一致,在这种情况下Srping将无法判定哪个Bean最合适该属性,则会抛出异常信息,不能自动装配。byName,根据名称自动装配...原创 2018-10-28 17:59:48 · 444 阅读 · 0 评论 -
Spring入门知识 ———— Spring_IOC属性常用注入方式
一、引言如何在IOC容器中配置Bean,这个是每个小伙伴得掌握的。在之前HelloWorld也有接触过,那么本章来介绍一下IOC常用的注入方式。一般来说常用的属性注入、构造器注入的方式,本章会通过一个实例来讲解。Car : 汽车类,汽车包含多个属性,品牌、起源地、价格。具体内容如下People:人,包含姓名,和一辆车。具体内容如下创建applicationContext-beans...原创 2018-10-28 14:05:24 · 478 阅读 · 0 评论 -
Spring入门知识 ———— Spring_IOC&DI关系概念概述
一、引言先从IOC容器开始说,IOC也是Spring核心之一。本章主要是来介绍IOC容器,以及DI的一些概念性的东西。有些童鞋可能会感觉有点晕车,没关系,别慌,正常现象!跟着小编,关注点一点,不迷路,哈哈哈哈~~~ 二、Spring_IOC&DI概述官方的解释:IOC,即反转控制(Inversion of Control),其思想是反转资源获取的方向。传统的...原创 2018-10-27 21:39:40 · 495 阅读 · 0 评论 -
Spring入门知识 ———— Spring_HelloWorld
一、引言上一章整体介绍了Spring这个框架,肯定有很多内容都是不理解的,放心,很正常。小编当初我整个Spring学习完了,然后回头想了一下,我学了什么? 一脸懵逼 。 所以这不回头过来重新复习一遍,这些都是基础得好好掌握了。本章我们来简单的了解一下Spring简单使用,演示一下之前是怎么实现,以及用Spring又是怎么实现的。二、准备工作首先当然需要导入Spring相关的jar包...原创 2018-10-27 20:27:42 · 480 阅读 · 0 评论 -
Spring入门知识 ———— 初步认识Spring框架
一、引言小葵花妈妈课堂,开课啦!!!大概花来两周的时间,把Spring入门知识搞定,小伙伴们赶紧上车~~二、Spring2.1 Spring官方地址https://spring.io/projects/spring-framework#learn2.2 Spring是什么?Spring是于2003年兴起的一个轻量级的开源框架,为简化企业级应用开发而诞生的。2.3 S...原创 2018-10-27 14:43:27 · 704 阅读 · 2 评论 -
Spring从入门到源码解析——博客学习目录
一、引言那么接下来几个月的时间,小编可能会一头栽进Spring系列框架里面,为啥呀? 因为小编我太菜了~~~~你们摸摸自己的良心问问,你们真的会用Spring吗? 了解Spring底层是怎么实现的吗?好吧,我承认,可能大家Spring都会用,不就是复制粘贴下配置文件,写几个注解,不就完事嘛,项目照常运行呀。如果你想提升自己、如果你想在更加的了解Spring、如果你想写出高质量的代码...原创 2018-10-24 20:05:54 · 1158 阅读 · 0 评论