网站为什么被百度k了,html5做图书馆网站,怎样做网络推广在哪济南兴田德润什么活动,四川展厅设计公司要学习Spring 源码#xff0c;一个是从Spring GitHub 上去down源码#xff0c;然后倒入IDEA编译#xff0c;但这种方法费时费力#xff0c;如果你不需要对Spring 源码进行修改后#xff0c;再编译的话#xff0c;直接搭建一个Spring Demo 的Maven项目#xff0c;引入Spr…要学习Spring 源码一个是从Spring GitHub 上去down源码然后倒入IDEA编译但这种方法费时费力如果你不需要对Spring 源码进行修改后再编译的话直接搭建一个Spring Demo 的Maven项目引入Spring 对应依赖下载源码包通过Demo来学习。 本专栏就通过该Demo来学习Spring 源码并将相关内容记录到该专栏中。 Spring Demo项目地址https://github.com/jujunchen/Spring-Demo pom.xml
?xml version1.0 encodingUTF-8?
project xmlnshttp://maven.apache.org/POM/4.0.0xmlns:xsihttp://www.w3.org/2001/XMLSchema-instancexsi:schemaLocationhttp://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsdmodelVersion4.0.0/modelVersiongroupIdorg.example/groupIdartifactIdspring-demo/artifactIdversion1.0-SNAPSHOT/versionpropertiesmaven.compiler.source8/maven.compiler.sourcemaven.compiler.target8/maven.compiler.targetproject.build.sourceEncodingUTF-8/project.build.sourceEncoding/propertiesdependenciesdependencygroupIdorg.springframework/groupIdartifactIdspring-context/artifactIdversion5.3.31/version/dependency/dependencies/project这里引入了spring-context依赖做为最基本的spring依赖因为其包含了主要的Spring特性spring-beans、spring-aop、spring-context、spring-core、spring-expression、spring-jcl。
Test
Bean.java
package com.spring.test.demo.bean;import org.springframework.stereotype.Component;Component
public class Bean {public void print() {System.out.println(Spring Test);}
}
SpringTest.java
package com.spring.test.demo;import com.spring.test.demo.bean.Bean;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;public class SpringTest {public static void main(String[] args) {AnnotationConfigApplicationContext applicationContext new AnnotationConfigApplicationContext();applicationContext.register(Bean.class);applicationContext.refresh();Bean bean applicationContext.getBean(Bean.class);bean.print();}
}测试结果 Spring 模块
进度
模块描述spring-aop要使用AOP相关的功能(事务、切面)需要包含该模块spring-aspects包含AspectJ AOP库进行高级集成的所有类spring-beans包含对Spring bean进行操作的类spring-beans-groovy对Spring bean进行操作的Groovy类spring-context包含Spring Core提供的许多扩展类如ApplicationContextspring-context-indexer包含一个索引器实现它提供对META-INF/spring.components 中定义的候选项的访问功能但核心类CandidateComponentsIndex 并不能再外部使用spring-context-support该模块是对spring-context模块的进一步扩展在用户界面方面有一些用于支持邮件并与模块引擎集成的类还包括与各种任务执行和调度库CommonJ和Quartz的集成spring-core主要模块其他Spring模块都会依赖该模块spring-expression包含SpEL表达式的支持类spring-instrument包含用于JVM启动的Spring工具代理如果在Spring应用程序中使用AspectJ实现加载织入那么该模块是必需的spring-jcl日志框架spring-jdbc包含所有的JDBC支持类spring-jms所有JMS支持类spring-messaging提供消息传递的基础结构和协议spring-orm扩展了Spring的标准JDBC功能集支持流行的ORM工具包含Hibernate、JDO、JPA和数据映射器IBATIS。该JAR文件中的许多类都依赖于spring-jdbc JAR文件中所包含的类因此也需要把它包含在程序中spring-oxm为Object/XML映射OXM提供支持用于抽象XML编组和解组以及支持Castor、JAXB、XMLBeans和XStream等常用工具的类都包含在此模块中spring-testSpring提供的帮助测试程序的包spring-tx提供支持Spring事务的所有类spring-web包含Web程序中使用的所需核心类spring-web-reactive响应式模型的核心接口和类spring-webmvcSpring自己的MVC框架spring-websocketSpring对WebSocket的支持类 作者其他要推荐的文章欢迎来学习 基于Spring Boot 3.1.0 系列文章 Spring Boot 源码阅读初始化环境搭建Spring Boot 框架整体启动流程详解Spring Boot 系统初始化器详解Spring Boot 监听器详解Spring Boot banner详解Spring Boot 属性配置解析Spring Boot 属性加载原理解析Spring Boot 异常报告器解析Spring Boot 3.x 自动配置详解