Spring源码深度解析二-Spring源码如何导入?

Spring源码深度解析二-Spring源码如何导入?

大家好,上章介绍了Spring的一些常识。今天我们就从一个demo开始入手,讲解Spring的源码如何导入,怎么一步一步的查看Spring的启动流程。本次讲解源码以Spring5.1.3版本为例

一、准备工作

1、安装JDK1.8版本。

2、 因为Spring源码是使用gradle进行构建的,所以需要安装配置gradle。

3、Spring源码下载

  1. 下载spring源码包,git clone https://github.com/spring-projects/spring-framework
  2. 到下载的spring源码路径执行gradle命令,gradlew :spring-oxm:compileTestJava,编译Spring源码
  3. 用idea打开spring源码工程,在idea中安装插件kotlin,重启idea
  4. 把编译好的源码导入到工程中

二、开始搭建一个Spring项目

1、新建一个maven项目

Spring源码深度解析二-Spring源码如何导入?_第1张图片

2、Spring核心组件引入

Spring中最核心的4个Jar包如下:

  • spring-beans
  • spring-core
  • spring-context
  • spring-expression

但要创建一个Spring项目,理论上最简单只需要一个Jar就够了

  <dependency>

   <groupId>org.springframework</groupId>

   <artifactId>spring-context</artifactId>

   <version>${spring.version}</version>

  </dependency>

Spring源码深度解析二-Spring源码如何导入?_第2张图片

3、日志组件引入

但是一个空的Spring项目是不能打印日志的,因此需要引入Spring依赖的日志

  

   ch.qos.logback

   logback-classic

   LATEST

  

4、完整的pom文件




  4.0.0

  com.xiangxue.jack
  spring-source
  1.0-SNAPSHOT
  war

  spring-source Maven Webapp
  
  http://www.example.com

  
    UTF-8
    1.7
    1.7

    5.1.3.RELEASE
  

  
    
      junit
      junit
      4.11
    

    
      org.springframework
      spring-context
      ${spring.version}
    

    
      ch.qos.logback
      logback-classic
      LATEST
    

  

  
    spring-source
    
      
        
          maven-clean-plugin
          3.1.0
        
        
        
          maven-resources-plugin
          3.0.2
        
        
          maven-compiler-plugin
          3.8.0
        
        
          maven-surefire-plugin
          2.22.1
        
        
          maven-war-plugin
          3.2.2
        
        
          maven-install-plugin
          2.5.2
        
        
          maven-deploy-plugin
          2.8.2
        
      
    
  


5、新建Spring配置文件

XSD 是编写xml文件的一种规范,有了这个规范才能校验xml 是否写错,在spring 中同样有 XSD 规范。例如要引入自定义标签

就必须引入这个标签对应的 XSD 文件



    
    

    
    


6、新建JAVA bean

新建一个student的bean,并为添加注解@Component,注入到Spring组件中

package com.spring.dk.bean;

@Component
public class Student {

    private String username = "dk";

    private String password;

    public String getUsername() {
        return username;
    }

    public void setUsername(String username) {
        this.username = username;
    }

    public String getPassword() {
        return password;
    }

    public void setPassword(String password) {
        this.password = password;
    }
}

三、源码导入

spring项目已经建好了,我们接下来就需要将SPring源码导入进来,这样就可以通过一个demo进行对Spring的代码进行debug。

1、选择项目引入的依赖spring-context

Spring源码深度解析二-Spring源码如何导入?_第3张图片

2、lib替换

在classes选择+号,选择源码中编译好的lib包。
Spring源码深度解析二-Spring源码如何导入?_第4张图片

3、Source替换

在source栏点击+号,选择源码包目录
Spring源码深度解析二-Spring源码如何导入?_第5张图片

四、执行测试用例

1、编写Spring测试用例

package com.spring.demo.test;

import com.spring.demo.Student;
import org.junit.Test;
import org.springframework.context.annotation.AnnotationConfigApplicationContext;
import org.springframework.context.support.ClassPathXmlApplicationContext;

public class MyTest {

    /*
     * spring
     * */
    @Test
    public void test1() {
        /*
         * Spring自动扫描
         * */
        AnnotationConfigApplicationContext appcationContext = new AnnotationConfigApplicationContext("com.spring");
        Student student = (Student) appcationContext.getBean("student");
        System.out.println(student.getUsername());
    }
    @Test
    public void test2() {
        //基于xml的方式加载spring的配置文件,启动spring容器
        ClassPathXmlApplicationContext appcationContext = new ClassPathXmlApplicationContext("spring.xml");
        Student student = (Student)appcationContext.getBean("student");
        System.out.println(student.getUsername());

    }
}

2、测试结果

Spring源码深度解析二-Spring源码如何导入?_第6张图片
Spring源码深度解析二-Spring源码如何导入?_第7张图片

至此,一个简单地Spring项目就搭建完成,并且引入了我们编译好的源码包,点击AnnotationConfigApplicationContext就可以跳到对应的源码处,接下来,就可以通过demo来debug源码,一步一步看Spring的执行过程了。

你可能感兴趣的:(Spring,JAVA,Spring,spring源码,spring入门,spring,demo)