Spring 源码学习
本文最后更新于:7 个月前
Spring 源码学习
一、搭建阅读环境
1 拉取源码
注意:Git 拉取后直接用 IDEA 打开,不要着急构建项目,先配置好 Gradle。
2 配置 Gradle 国内镜像加速
除了框出的镜像,其他镜像有一些问题,比如没有某个版本的依赖,下载速度过慢。
3 添加缺失的 jar 包
缺失原因:
为了避免第三方 class 的冲突,Spring 把最新的 cglib 和 objenesis 给重新打包(repack)了,它并没有在源码里提供这部分的代码,而是直接将其放在 jar 包当中,这也就导致了我们拉取代码后出现编译错误。那么为了通过编译,我们要把缺失的 jar补回来。
需要将 build/libs/spring-cglib-repack-3.3.0.jar 文件复制到外面 libs 目录( 需要手动创建)
二、测试 Spring
1 新建 spring-mytest 测试模块
2 编写测试类和 xml 文件
2.1 导入 spring-context 模块
2.2 新建 User 类
package com.pncalbl.test;
/**
* @author pncalbl
* @date 2021/10/30 0:35
* @e-mail pncalbl@qq.com
* @description
**/
public class User {
private String username;
private String address;
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
@Override
public String toString() {
return "User{" +
"username='" + username + '\'' +
", address='" + address + '\'' +
'}';
}
}
2.3 新建 beans.xml 文件
<?xml version="1.0" encoding="UTF-8"?>
<beans xmlns="http://www.springframework.org/schema/beans"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans.xsd">
<bean class="com.pncalbl.test.User" id="user">
<property name="address" value="www.pnca.com"/>
<property name="username" value="pncalbl"/>
</bean>
</beans>
2.4 新建测试类
package com.pncalbl.test;
import org.springframework.context.support.ClassPathXmlApplicationContext;
/**
* @author pncalbl
* @date 2021/10/30 0:44
* @e-mail pncalbl@qq.com
* @description
**/
public class Main {
public static void main(String[] args) {
ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("classpath:beans.xml");
User bean = context.getBean(User.class);
System.out.println("User = " + bean);
}
}
3 运行测试类
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!