技术好文:spring

简介: 技术好文:spring

"

整体流程:

本地环境准备

找到源码地址并拉取到本地

根据IDE工具查看源码中提供的不同的安装说明并具体操作

构建会出现的的错误及解决

一.本地环境准备

  spring-framework 源码使用gradle构建的而不是maven,因此对于只熟悉maven的小伙伴儿们可能会多一个环节,不过不用怕,也很简单

  gradle官网上下载对应的版本

下载后解压并复制根目录的路径//代码效果参考:https://v.youku.com/v_show/id_XNjQwMDM5ODU5Mg==.html

在电脑环境变量中加入

GRADLE_HOME是上述复制的根路径

GRADLE_USER_HOME配置的是以前的maven仓库,变量名不能变动,gradle仓库可以复用maven仓库,这还是挺好的哈!

别忘了还要在path中配置一下

保存确定后cmd中查看一下是否安装成功

另一个IDE工具我用的是idea

二.找到源码地址并拉取到本地

  上github上找到spring-framework项目并获取下载地址

三.根据IDE工具查看源码中提供的不同的安装说明并具体操作

  源码下载后查看对应IDE工具的安装说明

打开import-into-idea.md

步骤中重点提一下第一步,在导入idea中要提前编译一下,不然会报错

进入源码的根目录中

进入dos命令窗口输入gradlew :spring-oxm:compileTestJava 在这里我犯了次傻,直接复制粘贴了./gradlew :spring-oxm:compileTestJava

这对于我首次用gradle的我真的是太残忍了

后面想了想,我本地是window系统,“./”似乎是类似shell脚本中的执行exe文件,于是我去掉了“./”,成功了,哈哈!

一段时间后提示成功

idea中从文件中new一个项目,注意选中到gradle.build,我之前只选到根目录似乎出现了问题哈

四.构建会出现的的错误及解决

  导入成功后构建过程中出现了好多次报错问题,也由于怀疑自己,重新下载了几次源码,网上查的问题是idea版本和gradle需要对应,这种答案似乎都不准确

  我本地是idea2018.1和gradle6.4.1,最终构建成功了

  最终build.gradle中有两个地方有大的改动,如下

buildscript {

repositories {

mavenLocal()

//代码效果参考:https://v.youku.com/v_show/id_XNjQwNjg0MTUwMA==.html

maven { name ""Alibaba"" ; url """" }

maven { name ""Bstek"" ; url """" }

maven { url """" }

mavenCentral()

}

dependencies {

classpath(""io.spring.gradle:propdeps-plugin:0.0.9.RELEASE"")

classpath(""org.asciidoctor:asciidoctorj-pdf:1.5.0-alpha.16"")

}

}

repositories {

mavenLocal()

maven { name ""Alibaba"" ; url '' }

maven { name ""Bstek"" ; url '' }

maven { name ""M2"" ; url '' }

maven { url """" } <-------------------------这个加入后里面下载插件的错误就解决了

mavenCentral()

}

按照安装说明排除掉“spring-aspects”模块

构建成功效果图

构建过程可能还会出现很多问题,解决了构建问题,接下来才能正式啃spring源码这块硬骨头,不说了,我要去啃了,泪崩!


"
image.png
相关文章
|
4月前
|
开发框架 负载均衡 Java
当热门技术负载均衡遇上 Spring Boot,开发者的梦想与挑战在此碰撞,你准备好了吗?
【8月更文挑战第29天】在互联网应用开发中,负载均衡至关重要,可避免单服务器过载导致性能下降或崩溃。Spring Boot 作为流行框架,提供了强大的负载均衡支持,通过合理分配请求至多台服务器,提升系统可用性与可靠性,优化资源利用。本文通过示例展示了如何在 Spring Boot 中配置负载均衡,包括添加依赖、创建负载均衡的 `RestTemplate` 实例及服务接口调用等步骤,帮助开发者构建高效、稳定的应用。随着业务扩展,掌握负载均衡技术将愈发关键。
96 6
|
2月前
|
存储 Java API
简单两步,Spring Boot 写死的定时任务也能动态设置:技术干货分享
【10月更文挑战第4天】在Spring Boot开发中,定时任务通常通过@Scheduled注解来实现,这种方式简单直接,但存在一个显著的限制:任务的执行时间或频率在编译时就已经确定,无法在运行时动态调整。然而,在实际工作中,我们往往需要根据业务需求或外部条件的变化来动态调整定时任务的执行计划。本文将分享一个简单两步的解决方案,让你的Spring Boot应用中的定时任务也能动态设置,从而满足更灵活的业务需求。
128 4
|
3月前
|
存储 缓存 Java
在Spring Boot中使用缓存的技术解析
通过利用Spring Boot中的缓存支持,开发者可以轻松地实现高效和可扩展的缓存策略,进而提升应用的性能和用户体验。Spring Boot的声明式缓存抽象和对多种缓存技术的支持,使得集成和使用缓存变得前所未有的简单。无论是在开发新应用还是优化现有应用,合理地使用缓存都是提高性能的有效手段。
44 1
|
3月前
|
前端开发 安全 Java
技术进阶:使用Spring MVC构建适应未来的响应式Web应用
【9月更文挑战第2天】随着移动设备的普及,响应式设计至关重要。Spring MVC作为强大的Java Web框架,助力开发者创建适应多屏的应用。本文推荐使用Thymeleaf整合视图,通过简洁的HTML代码提高前端灵活性;采用`@ResponseBody`与`Callable`实现异步处理,优化应用响应速度;运用`@ControllerAdvice`统一异常管理,保持代码整洁;借助Jackson简化JSON处理;利用Spring Security增强安全性;并强调测试的重要性。遵循这些实践,将大幅提升开发效率和应用质量。
69 7
|
3月前
|
JavaScript 前端开发 Java
【颠覆传统】Spring框架如何用WebSocket技术重塑实时通信格局?揭秘背后的故事与技术细节!
【9月更文挑战第4天】随着Web应用对实时交互需求的增长,传统的HTTP模型已无法满足现代应用的要求,特别是在需要持续、双向通信的场景下。WebSocket协议由此诞生,提供全双工通信渠道,使服务器与客户端能实时互发消息。作为Java开发中最受欢迎的框架之一,Spring通过其WebSocket模块支持这一协议,简化了WebSocket在Spring应用中的集成。
59 0
|
4月前
|
前端开发 Java Spring
Spring与Angular/React/Vue:当后端大佬遇上前端三杰,会擦出怎样的火花?一场技术的盛宴,你准备好了吗?
【8月更文挑战第31天】Spring框架与Angular、React、Vue等前端框架的集成是现代Web应用开发的核心。通过RESTful API、WebSocket及GraphQL等方式,Spring能与前端框架高效互动,提供快速且功能丰富的应用。RESTful API简单有效,适用于基本数据交互;WebSocket支持实时通信,适合聊天应用和数据监控;GraphQL则提供更精确的数据查询能力。开发者可根据需求选择合适的集成方式,提升用户体验和应用功能。
96 0
|
4月前
|
Java 数据库连接 数据库
告别繁琐 SQL!Hibernate 入门指南带你轻松玩转 ORM,解锁高效数据库操作新姿势
【8月更文挑战第31天】Hibernate 是一款流行的 Java 持久层框架,简化了对象关系映射(ORM)过程,使开发者能以面向对象的方式进行数据持久化操作而无需直接编写 SQL 语句。本文提供 Hibernate 入门指南,介绍核心概念及示例代码,涵盖依赖引入、配置文件设置、实体类定义、工具类构建及基本 CRUD 操作。通过学习,你将掌握使用 Hibernate 简化数据持久化的技巧,为实际项目应用打下基础。
284 0
|
4月前
|
Java 前端开发 Spring
技术融合新潮流!Vaadin携手Spring Boot、React、Angular,引领Web开发变革,你准备好了吗?
【8月更文挑战第31天】本文探讨了Vaadin与Spring Boot、React及Angular等主流技术栈的最佳融合实践。Vaadin作为现代Java Web框架,与其他技术栈结合能更好地满足复杂应用需求。文中通过示例代码展示了如何在Spring Boot项目中集成Vaadin,以及如何在Vaadin项目中使用React和Angular组件,充分发挥各技术栈的优势,提升开发效率和用户体验。开发者可根据具体需求选择合适的技术组合。
86 0
|
4月前
|
缓存 Java 数据库连接
Spring Boot 资源文件属性配置,紧跟技术热点,为你的应用注入灵动活力!
【8月更文挑战第29天】在Spring Boot开发中,资源文件属性配置至关重要,它让开发者能灵活定制应用行为而不改动代码,极大提升了可维护性和扩展性。Spring Boot支持多种配置文件类型,如`application.properties`和`application.yml`,分别位于项目的resources目录下。`.properties`文件采用键值对形式,而`yml`文件则具有更清晰的层次结构,适合复杂配置。此外,Spring Boot还支持占位符引用和其他外部来源的属性值,便于不同环境下覆盖默认配置。通过合理配置,应用能快速适应各种环境与需求变化。
50 0
|
4月前
|
XML Java 决策智能
拥抱智能决策新纪元!Spring Boot携手LiteFlow规则引擎,让复杂业务处理如丝般顺滑,引领技术潮流!
【8月更文挑战第29天】LiteFlow是一款专为Java应用设计的轻量级规则引擎,支持条件、循环、分支等多种规则类型,具有组件化设计和高度可扩展性。通过自定义规则和事件监听,它可以显著提升代码的可维护性和可重用性。本文将详细介绍如何在Spring Boot项目中整合LiteFlow,并通过实际案例演示其强大功能。主要步骤包括:添加依赖、配置参数、定义组件及流程,并通过API触发执行。借助LiteFlow,复杂业务逻辑处理变得更加灵活高效。
168 0