IDEA构建spring源码

2023-10-30

1、下载spring源码:https://github.com/spring-projects/spring-framework

在tags中选择release(稳定)版本,我下载的是 spring-framework-5.2.21.RELEASE

不同的spring版本需要的jdk也不一样,我本地是jdk8      

2、 解压下载的文件,打开 ..\gradle\wrapper 目录下的文件 gradle-wrapper.properties

其中有个 distributionUrl属性,去掉https后面的 \ 后 复制到浏览器中下载gradle(每个spring版本对应的gradle版本都不一样,如这里的版本是5.6.4);

3、打开源码根目录下的 settings.gradle 和 build.gradle,添加阿里云的仓库地址

      build.gradle

             maven{ url 'https://maven.aliyun.com/nexus/content/groups/public/'}
             maven{ url 'https://maven.aliyun.com/nexus/content/repositories/jcenter'}

      setting.gradle

            maven{ url 'https://maven.aliyun.com/nexus/content/groups/public'}

        

 

4、在源码根目录打开cmd控制台,指定命令  gradlew :spring-oxm:compileTestJava 

      打出 BUILD SUCCESSFUL 即说明成功       

5、打开idea,File-->New-->Project from Existing Sources   选择根目录的 build.gradle,点 OK 

 6、配置gradle,File-->Setting-->gradle

7、新建module测试,File-->New-->Module

      创建的mudule中会自动生成一个build.gradle,在build.gradle中引入spring-context的依赖

      此时在module中创建测试类,我创建了三个测试类

       创建测试类过程中 @Service或 AnnotationConfigApplicationContext 无法import的情况,说明spring-context没有引入进来,则需要一下两步操作:

        1、右键 build.gradle -->  Build Module

              

       2、刷新gradle,在 runtimeClasspath 下面出现 spring-context即可

             

       测试类的目录及代码如下  :

          

      UserService:

              @Service

               public class UserService { public void a(){ System.out.println("userService方法"); } }

      BeanConfig :

              @ComponentScan(value = "service")

                public class BeanConfig { }

ModuleMain :

        public class ModuleMain { public static void main(String[] args) {                                                         AnnotationConfigApplicationContext applicationContext = new

          AnnotationConfigApplicationContext(BeanConfig.class);

          UserService userServiceN =applicationContext.getBean("userService",UserService.class);

          userServiceN.a();

         }

}

运行 ModuleMain 的main方法,能正常获取到 UserService 对象并成功执行方法即可

build.gradle中的代码如下,如需要引入多个spring项目,在compile中添加多个project,然后再右键 build.gradle -->  Build Module,刷新gradle

搭建好的代码:链接:https://pan.baidu.com/s/1Mk8YPvgt1V4evKrLVgxPAA?pwd=y2xk 
   

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

IDEA构建spring源码 的相关文章

随机推荐

  • 虚拟机ubuntu18.04+opencv4.6.0安装一篇足矣!!【指路合集】【亲测有效】

    写在前面 下面的方法都是本人实测遇到问题时采用的学习到的方法 亲测有效 其他根据教程走没什么问题 希望能有所帮助 本篇分两部分 一部分是虚拟机ubuntu18 04的安装 完整详细教程写在另一篇中 亲测有效 VM虚拟机安装Ubantu18
  • 关于标签的 的target属性

    如果 有一个页面上为这样两个超链接 a href http www baidu com 超链接1 a a href http www sohu com target self 超链接2 a 点击超链接1 的时候会弹出一个页签 内容是 htt
  • 卷积神经网络应用之图像分割

    SPP结构主要学自该博客 深度学习 十九 基于空间金字塔池化的卷积神经网络物体检测 FNC FNC主要做的是基于像素的图像分割预测 其做法是先按照传统的CNN结构得到feature map 将传统的全连接层替换成相应的卷积层 如最后一层特征
  • JSON与文件互转

    JSON转文件 createJsonFile package util import java io File import java io FileOutputStream import java io OutputStreamWrite
  • C++初始化类的对象错误,表达式必须具有类类型,但它具有类型 “类名(*)()“

    如果时创建类的对象的时候 调用了一个无参构造 那么这时候的括号 主函数的创建类的对象的括号 就不要写啦
  • 目标检测(object detection)

    目标检测 目标检测 目标检测的任务 R CNN 目标检测 Overfeat模型 SPPNet Fast R CNN Faster R CNN YOLO介绍 YOLOV2 YOLOV3 SSD算法原理 目标检测 目标检测的任务是找出图像中所感
  • Java技术小册(核心篇)

    核心篇 数据存储 MySQL 索引使用 的注意事项 说说反模式设计 说说分库与分表设计 分库与分表带来的分布式困境与应对之策 说说SQL优化之道 MySQL遇到的死锁问题 存储引擎的 lnnoDB 与 MyISAM 数据库索引的原理 为什么
  • [W pthreadpool-cpp.cc:90] Warning: Leaking Caffe2 thread-pool after fork. (function pthreadpool)

    问题 报了warning W pthreadpool cpp cc 90 Warning Leaking Caffe2 thread pool after fork function pthreadpool 并且进程自动停止了 解决 num
  • STM32单片机PID控制数控恒流源-100mA~+100mA输出正负恒流源

    实践制作DIY GC0079 PID控制数控恒流源 一 功能说明 基于STM32单片机设计 PID控制数控恒流源 功能介绍 STM32F103C系列最小系统板 LCD1602显示器 MCP4725 12位DAC MCP3201 12位ADC
  • Centos搭建ftp服务器

    目录 ftp是什么 搭建ftp服务器目的 检查安装vsftpd软件 创建用户 创建用户并指定用户目录 ftp是什么 FTP是 File Transfer Protocol 文件传输协议的英文名称 用于在Internet上控制文件的双向传输
  • [Vue warn]: Failed to resolve directive: Show

    Vue warn Failed to resolve directive Show 1 错误截图 2 错误分析 3 此类问题解决办法 1 错误截图 2 错误分析 1 根据报错的文件路径我们肯定定位到 对应的文件发生报错 2 奇怪的是 程序的
  • 【华为OD机试真题 C语言】45、 分糖果

    文章目录 一 题目 题目描述 输入输出 样例1 二 思路参考 三 代码参考 作者 鲨鱼狼臧 个人博客首页 鲨鱼狼臧 专栏介绍 2023华为OD机试真题 使用C语言进行解答 专栏每篇文章都包括真题 思路参考 代码分析 订阅有问题后续可与博主解
  • moment以及dayjs(获取当前日期等相关写法)

    moment 1 使用moment获取今天 moment格式 const start moment startOf day const end moment endOf day 日期格式 const start moment startOf
  • “该微信号已经绑定了50个小程序,不可继续绑定”,如何自助解绑

    微信上搜索并关注公众号 公众平台安全助手 左下角的菜单 绑定查询 可查询到 公众号 小程序 开放平台 中绑定的信息 只要不是管理员身份 均可以自己点击进行解绑
  • C语言课程设计大作业——学生成绩管理系统详细(含实验报告内容)

    写在前面 欢迎来到 发奋的小张 的博客 我是小张 一名普通的在校大学生 在学习之余 用博客来记录我学习过程中的点点滴滴 也希望我的博客能够更给同样热爱学习热爱技术的你们带来收获 希望大家多多关照 我们一起成长一起进步 也希望大家多多支持我鸭
  • Sherman-Morrison-Woodbury公式的证明

    首先证明Sherman Morrison公式 A uvT 1 A 1 A 1u 1 vTA 1u 1vTA 1 1 其中 A Rn n非奇异 即A 1存在 u Rn v Rn SM公式看似复杂 但可以通过求解以下线性方程组来推导出来 A u
  • 《金融工程》

    金融工程包括各种创新性金融工具和金融工序的涉及 开发 实施 以及对解决金融问题的各种创造性方案的设计 对各种金融工具的基础介绍 概念性金融工具 投资组合理论 资本结构理论 资本资产定价的CAPM模型 有效市场理论 期权定价理论 套利定价理论
  • 基本路径测试法(一看就懂)

    基本路径测试就是在程序控制流图的基础上 通过分析控制构造的环形复杂性 导出基本可行路径集合 从而设计测试用例的方法 基本路径测试具体方法如下 对复杂性程度高的程序做到覆盖所有路径 测试所有可执行路径 是不可能的 根据独立路径概念 某一程序的
  • 图解实时操作系统和非实时操作系统的区别

    转自 http blog csdn net u013752202 article details 53649047 对于实时操作系统 RTOS 和非实时操作系统 你能分别列举出来多少 实时操作系统 uCOS VxWorks RTLinux
  • IDEA构建spring源码

    1 下载spring源码 https github com spring projects spring framework 在tags中选择release 稳定 版本 我下载的是 spring framework 5 2 21 RELEA