![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Spring核心原理
文章平均质量分 85
Spring核心原理
Tom弹架构
咕泡教育联合创始人、Java架构师丛书作者
展开
-
Spring中用到了哪些设计模式?
1、工厂模式。Spring的BeanFactory类,就是使用了简单工厂模式。它主要提供getBean()方法,用来创建对象的实例;我们见得比较多的ApplicationContext也是继承自BeanFactory。2、单例模式。Spring中的Bean默认为singleton单例。我们可以通过配置Bean的作用域scope参数来进行修改。Spring Bean一共有5种内置的作用域,分别是singleton、prototype、request、session、globalSession。原创 2023-12-29 10:04:46 · 502 阅读 · 0 评论 -
Spring中有几种依赖注入的方式
文末整理了一些我整理的从小白到架构师的学习资料,价值很高!Spring中,依赖注入的方式主要有以下三种:1、通过构造器注入,这也是Spring官方推荐的方式,如代码所示:这种方式,在注入对象很多的情况下,构造器参数列表会很长,所以,不够灵活。当然,好处就是,对象初始化完成后,就可可获得可使用的对象。另外,还可以检测循环依赖。2、通过Setter方法注入,这种方式在日常开发中不太常见,如代码所示:这种方式是利用set方法来注入,可以确保注入前不依赖Spring容器。原创 2023-12-27 09:30:14 · 523 阅读 · 0 评论 -
工作两年单靠这题拿到offer!Spring中的事务传播行为有哪些?
Spring中的事务传播行为有哪些?他说他在面试的时候能想起来一些,但在实际项目开发中又基本不需要配置。所以,在面试的时候回答不全,最后被拒了,觉得有些遗憾。原创 2022-08-27 10:59:24 · 205 阅读 · 0 评论 -
「Java面试」如果不使用Spring,我们将如何开发?
曾经有一道面试题掀起了劲爆的浪潮,说如果不使用Spring,我们将如何开发?好多家公司都模仿提问了这么一道面试题,而且好多人也都在各个社区给出了自己的答案。接下来看看网友们是怎么说的。有说手写IoC的,有说用Servlet完成Web开发的,有说用纯JDBC完成数据库操作的等等,大家回答各有千秋。其实,想想我们上一代的程序员,没有Spring不也照样开发出非常多优秀的系统。另外,我花了1个多星期,准备了一份500页的PDF面试题解析配套文档,想获取的小伙伴可以扫描文章底部二维码领取!那我们使用Spring到底原创 2022-06-30 11:49:15 · 2706 阅读 · 4 评论 -
Spring中@Autowired和@Resource的区别
最近有非常多的小伙伴从大厂毕业了,导致招聘也卷得相当厉害,不管是应届生、中开、高开,都会问技术原理。还经常问一些日常开发不太需要了解的知识点对比。今天,就给大家分享一个应届生被问到的一道面试题,在Spring中,@Autowired注解和@Resource注解的区别。另外,我花了1个多星期把往期的面试题解析配套文档准备好了,想获取的小伙伴可以在我的煮叶简介中找到。好了,先来看@Autowired这个注解。1、@Autowired注解@Autowired这个注解呢,是由Spring提供的...原创 2022-05-19 17:45:00 · 1164 阅读 · 0 评论 -
Spring到底学到什么程度才算学会?
面试造火箭,工作拧螺丝。今天有位工作5年的小伙伴私我说,Spring到底要学到什么程度才算学会?你可能会这样回答:能手写Spring会用还会讲出来能看源码了解原理能知其所以然,知道为何要这样设计了解设计模式在Spring中的应用能画出主要流程图能快速定位问题,解决问题了解各种主要的特性会熟练使用小伙伴们也可以思考一下,在评论告诉我的你看法.1、Tom的经验分享今天,我给大家聊聊我的看法。我认为要回答这个问题,要根据每个人的工作...原创 2022-05-10 14:53:44 · 549 阅读 · 0 评论 -
3分钟通晓,互联网架构20年以来的演进
作为一个Java程序员,你可能也思考过,为什么我还是普通开发,为什么我还是高级开发,普通开发和高级开发有什么区别?你是不是也想过要成为架构师?想要成为合格的架构师,就必须要了解架构的演进,今天,我们就来聊一聊,Java架构的演变历史。1、分布式微服务架构的演进分布式微服务架构的发展,主要经历了四个阶段:单一应用架构、垂直应用架构、分布式架构和弹性SOA架构。这张图是从Dubbo官网上下载的描述分布式架构演进过程的示意图,大家可以收藏一下。1)单体架构(AllinOn...原创 2022-05-09 16:09:53 · 1582 阅读 · 0 评论 -
Spring到底学到什么程度才算学会?
面试造火箭,工作拧螺丝。今天有位工作5年的小伙伴私我说,Spring到底要学到什么程度才算学会?你可能会这样回答:能手写Spring会用还会讲出来能看源码了解原理能知其所以然,知道为何要这样设计了解设计模式在Spring中的应用能画出主要流程图能快速定位问题,解决问题了解各种主要的特性会熟练使用小伙伴们也可以思考一下,在评论告诉我的你看法.1、Tom的经验分享今天,我给大家聊聊我的看法。我认为要回答这个问题,要根据每个人的工作...原创 2022-05-08 15:09:01 · 2075 阅读 · 0 评论 -
最通俗的方式理解Spring循环依赖三级缓存
今天,有位粉丝找我,说要耽误我5分钟时间,想让我帮助它理解一下Spring循环依赖的三级缓存,绕晕了一个星期,没有想明白。我想今天,用最通俗易懂的方式给大家重新梳理一下,保证让你听懂了。1、什么是循环依赖?循环依赖就是指循环引用,是两个或多个Bean相互之间的持有对方的引用。循环依赖有三种形态:1、相互依赖,也就是A依赖B,B又依赖A,它们之间形成了循环依赖。2、三者间依赖,也就是A依赖B,B依赖C,C又依赖A,形成了循环依赖。...原创 2022-05-06 18:00:00 · 653 阅读 · 0 评论 -
为什么越来越多的人选择Spring Boot?
需要面试文档可S我我们都知道,Spring是一个非常经典的应用框架,与其说是Java开发不如说是Spring开发,为什么现在越来越多的人会选择用SpringBoot呢?。要回答这个问题,还需要从JavaWeb开发的发展历史开始说起。1、JavaWeb开发简史自1995年JamesGosling(詹姆斯·高斯林)带领团队设计发布Java语言以来,Java一直排在编程语言排行榜的前列,JamesGosling也被称为“Java之父”。在最初发布的Java版本中...原创 2022-05-05 16:48:04 · 681 阅读 · 0 评论 -
Spring Boot自动装配原理
需要面试文档的扫描下方二维码昨天,有位在广州工作4年的小伙伴,在面试中被问到SpringBoot自动装配原理,当时,自我感觉比较好,他要的是30K,但是都没有拿到Offer。今天,我给大家分享一下我的理解。1、SpringBoot自动装配是什么?SpringBoot自动装配主要是基于注解编程和约定优于配置的思想来设计的。自动装配就是由Spring自动把其他组件中的Bean装载到IoC容器中,不需要开发人员再去配置文件中添加大量的配置。我们只需要在Spring...原创 2022-05-02 17:30:00 · 559 阅读 · 0 评论 -
哪些情况下的单例对象可能会破坏?
【Java面试】一道简单又不简单的面试题,哪种情况下的单例对象可能会被破坏?昨天,有位小伙伴在评论区留言,希望我分享一些设计模式相关的面试题。设计模式本身是很抽象的,但是在很多面试中又经常被问到,很多小伙伴其实都能答得上,但是又不知道怎么样回答才能让面试官满意,往往越简单的知识越能够体现出核心竞争力。今天,我给大家分享一个简单又不简单的单例模式,希望能够帮助到大家。先来看单例模式的定义。1、单例模式的定义关于单例模式的定义,官方原文是这样描述的:Ensurea.原创 2022-05-03 12:45:00 · 726 阅读 · 0 评论 -
ThreadLocal真的会造成内存泄漏吗?
【Java面试】并发场景中,ThreadLocal会造成内存泄漏吗?ThreadLoca在并发场景中,应用非常多。前几天有位小伙伴问我一个问题,说ThreadLocal是不是真的会造成内存泄漏?今天给大家做一个分享,个人见解,仅供参考。如果大家有其他见解可以在评论区讨论。【导航条:基本原理】(转场,屏幕黑底白字,正中央出现“1ThreadLocal的基本原理”)1、ThreadLocal的基本原理考虑到很多小伙伴可能还不太了解ThreadLocal,我先简单介绍一下Th..原创 2022-05-01 17:45:00 · 1407 阅读 · 4 评论 -
为什么ConcurrentHashMap不允许插入null值?
需要面试文档的扫描下方二维码在Java语言中,给ConcurrentHashMap和Hashtable这些线程安全的集合中的Key或者Value插入null(空)值的会报空指针异常,但是单线程操作的HashMap又允许Key或者Value插入null(空)值。这到底是为什么呢?1、探寻源码为了找到原因,我们先来看这样一段源码片段,打开ConcurrentHashMap的putVal()方法,源码中第一句就非常明确地做了判断,如果Key或者...原创 2022-04-30 17:45:00 · 4406 阅读 · 0 评论 -
ConcurrentHashMap是如何保证线程安全的?
ConcurrentHashMap相当于是HashMap的多线程版本,它的功能本质上和HashMap没什么区别。因为HashMap在并发操作的时候会出现各种问题,比如死循环问题、数据覆盖等问题。而这些问题,只要使用ConcurrentHashMap就可以完美地解决。那问题来到了,ConcurrentHashMap它是如何保证线程安全的呢?1、JDK1.7实现原理首先,我们来看JDK1.7中ConcurrentHashMap的底层结构,它基本延续了HashMap的设计,采用的是数组加链...原创 2022-04-29 17:30:00 · 15748 阅读 · 7 评论 -
为什么HashMap会产生死循环?
HashMap死循环是一个比较常见、也是比较经典的面试题,在大厂的面试中也经常被问到。HashMap的死循环问题只在JDK1.7版本中会出现,主要是HashMap自身的工作机制,再加上并发操作,从而导致出现死循环。JDK1.8以后,官方彻底解决了这个问题。1、数据插入原理在分析原因之前,我先带大家了解一下JDK1.7中HashMap插入数据的原理,来看动画演示:由于JDK1.7中HashMap的底层存储结构采用的是数组加链表的方式。而HashM...原创 2022-04-28 18:00:00 · 9961 阅读 · 12 评论 -
请简述Spring MVC的执行流程
今天我给大家介绍一下SpringMVC的详细执行流程。我把SpringMVC的执行流程划分为三个阶段,配置阶段、初始化阶段和运行阶段。我整理了一张完整的执行流程图,需要高清图的小伙伴可以私信我。下面详细介绍每个阶段的执行细节。1、第一阶段:配置阶段配置阶段,主要是完成对xml配置和注解配置。具体步骤如下:首先,从web.xml开始,配置DispatcherServlet的url匹配规则和Spring主配置文件的加载路径然...原创 2022-04-27 18:45:00 · 4560 阅读 · 0 评论 -
刚折腾完Log4J,又爆Spring RCE核弹级漏洞
继Log4J爆出安全漏洞之后,又在深夜,Spring的github上又更新了一条可能造成RCE(远程命令执行漏洞)的问题代码,随即在国内的安全圈炸开了锅。有安全专家建议升级到JDK9以上,有些专家又建议回滚到JDK7以下,一时间小伙伴们不知道该怎么办了。大家来看一段动画演示,怎么改都是“将军"。大家不要慌,我给大家先临时支个招,后面再出教程。首先叫大家怎么排查哪些项目存在风险,然后,再介绍修复方案。1、第一步:排查方法排查的主要目的是确定你的项目是否使用了Spring框架。当然,你的..原创 2022-04-26 12:06:51 · 419 阅读 · 0 评论 -
两个Integer对象比较大小,为什么100等于100,1000不等于1000 ?
前几天,有位小伙伴向我反馈,在维护代码过程中,出现了一个莫名其妙的问题。明明上线之后程序跑得还好好的,可程序上线运行一段时间之后,所有,代码没有做任何修改,发 cxccccc现运行结果和期望值恰好相反。因为涉及到金额造成了比较大的损失,最后,这位小伙伴还被公司辞退了,大家可以来评论一下,这位小伙伴背的这个锅值不值?1、业务场景大家来看,他的代码大致是这样写的:一般情况下,a和b都输入100的时候,返回为true,但当a和b都输入1000的时候,返回为false。按照正常逻辑理解,100原创 2022-04-26 18:00:00 · 1352 阅读 · 0 评论 -
什么条件下会产出死锁,如何避免死锁?
一个去美团面试的小伙伴私我说,被面试官问到一个死锁的问题难道了,面试前还特意刷了题,面试的时候就是脑子一片空白不知道怎么回答。今天,我给大家彻底讲明白。1、什么是死锁?到底什么是死锁呢?什么条件下会产出死锁,如何避免死锁?死锁,简单来说就是两个或者两个以上的线程在执行过程中,去争夺同一个共享资源导致相互等待的现象。如果没有外部干预,线程会一直处于阻塞状态,无法往下执行。这样一直等待处于阻塞状态的线程,被称为死锁线程。2、产生死锁的原因产生死锁需要同时满足以下四个条件:什么条件下会产出死锁,原创 2022-04-25 15:46:28 · 1069 阅读 · 0 评论 -
被面试官问烂的Spring AOP原理,你是怎么答的?
**往期视频已整理成文档形式,需要的可S我免费领取** Spring AOP在Spring体系中深不可测,Spring AOP原理也是经常在互联网大厂面试时被问到,今天,我给大家抽丝剥茧,详细到你无法想象。我划分为四个阶段给大家介绍:创建代理对象阶段、拦截目标对象阶段、调用代理对象阶段、调用目标对象阶段。我整理了一张完整的Spring AOP设计原理UML图,需要高清图的小伙伴可以私...原创 2022-04-22 14:55:36 · 1058 阅读 · 0 评论 -
Spring为何需要三级缓存解决循环依赖,而不是二级缓存?
今天给大家分享一道大厂面试真题,Spring为何需要三级缓存解决循环依赖,而不是二级缓存?我一共分为五个部分来给大家介绍:1、什么是循环依赖?循环依赖就是指循环引用,是两个或多个Bean相互之间的持有对方的引用。在代码中,如果将两个或多个Bean互相之间持有对方的引用,因为Spring中加入了依赖注入机制,也就是自动给属性赋值。Spring给属性赋值时,将会导致死循环。那么,哪些情况会出现循环依赖呢?2、哪些情况会出现循环依赖?循环依赖有三种形态:1、相互依赖,也就是A 依赖 B,B 又依赖 A,原创 2022-04-18 14:46:29 · 4335 阅读 · 5 评论 -
Spring Bean的生命周期全过程
Spring Bean的生命周期全过程 大家好,我是被编程耽误的文艺Tom。今天能给大家介绍一下Spring Bean生命周期全过程,这道题呢也是大厂高频面试题。接下来我给大家做一个详细的分析和解答。Spring生命周期全过程大致分为五个阶段:创建前准备阶段、创建实例阶段、依赖注入阶段、容器缓存阶段和销毁实例阶段。这张图呢展示了Spring Bean生命周期完整流程,其中对每个阶段...原创 2022-04-15 16:02:30 · 2794 阅读 · 1 评论 -
谈谈你对Spring Bean的理解
大家好,我是被编程耽误的文艺Tom。 前几天,有位同学向我反馈,说在面试中问到这样这样一个面试题:谈谈你对Spring Bean的理解。今天咱们就针对这样一个面试题,给大家做一个详细的介绍。我一共分三段来介绍,首先,介绍什么是Spring Bean?然后,定义Spring Bean有哪些方式?,最后,给大家介绍Spring容器是如何加载Bean的?咱们先来看什么是Spring Bean?1、什么是Spring Bean?Spring Bean是Spring中最基本的组成单元,Spr...原创 2022-04-12 09:22:34 · 610 阅读 · 0 评论 -
Spring中的Bean是线程安全的吗?
大家好,我是被编程耽误的文艺Tom。金三银四的招聘季到了,Spring 作为最热门的框架,在很多大厂面试中都会问到相关的问题。前几天,就有好几个同学就问我,在面试中被问到这样一个问题。Spring中的Bean是不是线程安全的。大家总觉得在面试过程差了一点意思。但是又说不上来是什么原因。这是因为,大家可能对Spring 的本质还欠缺一些深度的思考。今天,咱们不兜圈子不绕弯,上来直接说答案,大家关注点个赞,本视频跟大家彻底讲明白。其实,Spring中的Bean是否线程安全,其实跟Spring容器本身无关原创 2022-04-11 14:41:50 · 719 阅读 · 0 评论 -
肝了30天总结,史上最全面透彻的Spring核心原理分析和27道高频面试题
1 什么是Spring框架,Spring框架有哪些主要模块Spring框架是一个为Java应用程序开发提供综合、广泛的基础性支持的Java平台。Spring帮助开发者解决了开发中基础性的问题,使得开发人员可以专注于应用程序的开发。Spring框架本身也是按照设计模式精心打造的,这使得我们可以在开发环境中安心地集成Spring框架,不必担心Spring是如何在后台工作的。主要模块内容介绍可以参考之前章节的介绍。2 使用Spring框架能带来哪些好处下面列举了一些使用Spring框架带来的主要好处。原创 2021-12-30 13:37:29 · 393 阅读 · 0 评论 -
Spring核心原理之 IoC容器中那些鲜为人知的细节(3)
本文节选自《Spring 5核心原理》Spring IoC容器还有一些高级特性,如使用lazy-init属性对Bean预初始化、使用FactoryBean产生或者修饰Bean对象的生成、IoC容器在初始化Bean过程中使用BeanPostProcessor后置处理器对Bean声明周期事件进行管理等。1 关于延时加载我们已经知道,IoC容器的初始化过程就是对Bean定义资源的定位、载入和注册,此时容器对Bean的依赖注入并没有发生,依赖注入是在应用程序第一次向容器索取Bean时通过getBean(.原创 2021-12-25 15:36:39 · 995 阅读 · 0 评论 -
Spring核心原理之IoC容器初体验(2)
本文节选自《Spring 5核心原理》1 IoC与DI基本概念IoC(Inversion of Control,控制反转)就是把原来代码里需要实现的对象创建、依赖,反转给容器来帮忙实现。我们需要创建一个容器,同时需要一种描述来让容器知道要创建的对象与对象的关系。这个描述最具体的表现就是我们所看到的配置文件。DI(Dependency Injection,依赖注入)就是指对象被动接受依赖类而不自己主动去找,换句话说,就是指对象不是从容器中查找它依赖的类,而是在容器实例化对象时主动将它依赖的类注入给.原创 2021-12-24 13:50:09 · 138 阅读 · 0 评论 -
Spring核心原理分析之MVC九大组件(1)
本文节选自《Spring 5核心原理》1 什么是Spring MVCSpring MVC 是 Spring 提供的一个基于 MVC 设计模式的轻量级 Web 开发框架,本质上相当于 Servlet。Spring MVC 角色划分清晰,分工明细。由于 Spring MVC 本身就是 Spring 框架的一部分,可以说和 Spring 框架是无缝集成。性能方面具有先天的优越性,是当今业界最主流的 Web 开发框架,最热门的开发技能。首先从一个由Spring提供的DispatcherServlet开始,.原创 2021-12-22 13:32:56 · 729 阅读 · 0 评论 -
30个类手写Spring核心原理之动态数据源切换(8)
本文节选自《Spring 5核心原理》阅读本文之前,请先阅读以下内容:30个类手写Spring核心原理之自定义ORM(上)(6)30个类手写Spring核心原理之自定义ORM(下)(7)4 动态数据源切换的底层原理这里简单介绍一下AbstractRoutingDataSource的基本原理。实现数据源切换的功能就是自定义一个类扩展AbstractRoutingDataSource抽象类,其实相当于数据源的路由中介,可以实现在项目运行时根据相应key值切换到对应的DataSource上。先看看.原创 2021-12-21 13:15:51 · 433 阅读 · 0 评论 -
30个类手写Spring核心原理之自定义ORM(下)(7)
本文节选自《Spring 5核心原理》3 基于Spring JDBC实现关键功能3.1 ClassMappingsClassMappings主要定义基础的映射类型,代码如下:package com.tom.orm.framework;import java.lang.reflect.Field;import java.lang.reflect.Method;import java.lang.reflect.Modifier;import java.math.BigDecimal;.原创 2021-12-17 13:59:16 · 969 阅读 · 0 评论 -
30个类手写Spring核心原理之自定义ORM(上)(6)
本文节选自《Spring 5核心原理》1 实现思路概述1.1 从ResultSet说起说到ResultSet,有Java开发经验的“小伙伴”自然最熟悉不过了,不过我相信对于大多数人来说也算是“最熟悉的陌生人”。从ResultSet取值操作大家都会,比如:private static List<Member> select(String sql) { List<Member> result = new ArrayList<>(); Conn.原创 2021-12-16 13:27:16 · 1534 阅读 · 0 评论 -
30个类手写Spring核心原理之AOP代码织入(5)
本文节选自《Spring 5核心原理》前面我们已经完成了Spring IoC、DI、MVC三大核心模块的功能,并保证了功能可用。接下来要完成Spring的另一个核心模块—AOP,这也是最难的部分。1 基础配置首先,在application.properties中增加如下自定义配置,作为Spring AOP的基础配置:#多切面配置可以在key前面加前缀#例如 aspect.logAspect.#切面表达式#pointCut=public .* com.tom.spring.demo.s.原创 2021-12-14 13:40:42 · 787 阅读 · 0 评论 -
30个类手写Spring核心原理之MVC映射功能(4)
本文节选自《Spring 5核心原理》接下来我们来完成MVC模块的功能,应该不需要再做说明。Spring MVC的入口就是从DispatcherServlet开始的,而前面的章节中已完成了web.xml的基础配置。下面就从DispatcherServlet开始添砖加瓦。1 MVC顶层设计1.1 GPDispatcherServlet我们已经了解到Servlet的生命周期由init()到service()再到destory()组成,destory()方法我们不做实现。前面我们讲过,这是J2EE.原创 2021-12-13 14:52:27 · 754 阅读 · 1 评论 -
30个类手写Spring核心原理之依赖注入功能(3)
本文节选自《Spring 5核心原理》在之前的源码分析中我们已经了解到,依赖注入(DI)的入口是getBean()方法,前面的IoC手写部分基本流程已通。先在GPApplicationContext中定义好IoC容器,然后将GPBeanWrapper对象保存到Map中。在GPApplicationContext中设计两个Map:factoryBeanObjectCache保存单例对象的缓存,factoryBeanInstanceCache保存GPBeanWrapper的缓存,变量命名也和原生Sprin.原创 2021-12-12 18:18:38 · 658 阅读 · 0 评论 -
30个类手写Spring核心原理之Ioc顶层架构设计(2)
本文节选自《Spring 5核心原理》1 Annotation(自定义配置)模块Annotation的代码实现我们还是沿用Mini版本的,保持不变,复制过来便可。1.1 @GPService@GPService代码如下:package com.tom.spring.formework.annotation;import java.lang.annotation.Documented;import java.lang.annotation.ElementType;import ja.原创 2021-12-10 13:43:58 · 1150 阅读 · 0 评论 -
30个类手写Spring核心原理之环境准备(1)
本文节选自《Spring 5核心原理》1 IDEA集成Lombok插件1.1 安装插件IntelliJ IDEA是一款非常优秀的集成开发工具,功能强大,而且插件众多。Lombok是开源的代码生成库,是一款非常实用的小工具,我们在编辑实体类时可以通过Lombok注解减少getter、setter等方法的编写,在更改实体类时只需要修改属性即可,减少了很多重复代码的编写工作。首先需要安装IntelliJ IDEA中的Lombok插件,打开IntelliJ IDEA后单击菜单栏中的File→Sett.原创 2021-12-09 15:19:31 · 962 阅读 · 0 评论 -
大厂高频面试题Spring Bean生命周期最详解
Spring作为当前Java最流行、最强大的轻量级框架。Spring Bean的生命周期也是面试高频题,了解Spring Bean周期也能更好地帮助我们解决日常开发中的问题。程序员应该都知道Spring的基础容器是ApplicationContext。应很多粉丝的强烈建议,本文我来分析分析 ApplicationContext中Bean的生命周期。ApplicationContext是顶层容器接口BeanFactory的实现类,因此,我们了解了ApplicationContext的生命周期逻辑,也基本上了解原创 2021-12-08 13:37:49 · 2033 阅读 · 0 评论 -
用300行代码手写1个Spring框架,麻雀虽小五脏俱全
本文节选自《Spring 5核心原理》1 自定义配置1.1 配置application.properties文件为了解析方便,我们用application.properties来代替application.xml文件,具体配置内容如下:scanPackage=com.tom.demo1.2 配置web.xml文件大家都知道,所有依赖于Web容器的项目都是从读取web.xml文件开始的。我们先配置好web.xml中的内容:<?xml version="1.0" encod.原创 2021-11-05 17:19:27 · 422 阅读 · 0 评论 -
基于Gradle的Spring源码下载及构建技巧
1 Spring 5源码下载首先你的JDK需要升级到1.8以上版本。从Spring 3.0开始,Spring源码采用GitHub托管,不再提供官网下载链接。这里不做过多赘述,大家可自行去GitHub网站下载,我使用的版本下载链接为 https://github.com/spring-projects/spring-framework/archive/v5.0.2.RELEASE.zip ,下载完成后,解压源码包会看到如下图所示的文件目录。2 基于Gradle的源码构建技巧由于从Spirng 5开原创 2021-11-05 16:24:24 · 756 阅读 · 0 评论