zoukankan      html  css  js  c++  java
  • & 【02】 在编译后的Spring源码中打断点及写注释

    在学习Spring源码时,发现源码在IDEA中为只读状态(File is read-only),无法编辑及增加注释,增加了我们学习源码的难度。

    本文记录:如何将源码的只读状态变为编辑状态(增加注释来辅助理解源码)

    image-20211111214113953

    1. 搭建简单的Spring项目

    项目整体结构

    image-20211111213147791

    pom.xmlSpring的版本需与编译的源码版本一致

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0"
             xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
    
        <groupId>cn.trytry</groupId>
        <artifactId>spring-source-code</artifactId>
        <version>1.0-SNAPSHOT</version>
    
        <properties>
            <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
            <maven.compiler.source>1.8</maven.compiler.source>
            <maven.compiler.target>1.8</maven.compiler.target>
            <spring.version>5.2.8.RELEASE</spring.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework</groupId>
                <artifactId>spring-context</artifactId>
                <version>${spring.version}</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>4.13</version>
            </dependency>
            <!-- lombok -->
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.16.20</version>
            </dependency>
            <!-- 日志相关依赖 -->
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-api</artifactId>
                <version>1.7.10</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-classic</artifactId>
                <version>1.1.2</version>
            </dependency>
            <dependency>
                <groupId>ch.qos.logback</groupId>
                <artifactId>logback-core</artifactId>
                <version>1.1.2</version>
            </dependency>
        </dependencies>
    </project>

    spring.xml

    <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"
        default-lazy-init="false">
    
        <bean id="student" class="cn.trytry.bean.Student" />
    
    </beans>

    cn.trytry.bean.Student

    package cn.trytry.bean;
    
    import lombok.Data;
    
    @Data
    public class Student {
        private String username = "trytry";
    }

    cn.trytry.test.TestSpring

    package cn.trytry.test;
    
    import cn.trytry.bean.Student;
    import org.junit.Test;
    import org.springframework.context.support.ClassPathXmlApplicationContext;
    
    public class TestSpring {
    
        @Test
        public void test1() {
            ClassPathXmlApplicationContext applicationContext = new ClassPathXmlApplicationContext("spring.xml");
            Student bean = applicationContext.getBean(Student.class);
            System.out.println(bean.getUsername());
        }
    
    }

    启动并检查TestSpring.test1()是否正常运行:

    image-20211111213649207

    2. 将编译后源码导入到搭建的项目中

    此处以spring-context包为例

    1. File->Project Structure->Libraries->选中spring-context->选中右侧的Classes->点击+号

    image-20211111215229901

    1. 选中-> 编译后源码项目spring-contextuildlibsspring-context-5.2.8.RELEASE.jar

    image-20211111215525588

    1. 将之前Classes下的spring-context包删除

    image-20211111215840639

    1. 选中Sources->点击+号 ->选中整个spring-context包 -> OK -> OK

    image-20211111220131862

    1. 将之前Sources下的spring-context-sources包删除

    image-20211111220314568

    1. 此时就可以在源码中增加注释了

    3. 编辑源码后,源码与包不一致的情况

    增加注释后会出现,断点打到注释上面的情况,是因为源码与包不一致,此时应重新打包。

    源码工程中重新打Jar包(此处为spring-context包):双击jar即可重新打包

    image-20211111221008454

    打包完成:

    image-20211111221139398

  • 相关阅读:
    用java开发图形界面项目,如何实现从本地选择图片文件并以二进制流的形式保存到MySQL数据库,并重新现实到面板
    算法练习LeetCode初级算法之数组
    算法练习LeetCode初级算法之字符串
    算法练习LeetCode初级算法之排序和搜索
    20169221 201620172 《网络攻防实践》第四周学习总结
    20169221 201620172 《网络攻防》 第三周学习总结
    20169221 201620172 《移动平台应用开发》 第二周学习总结
    20169221 201620172 《移动平台开发时间》 第一周学习总结
    20169221 201620172 《网络攻防实践》 第二周学习总结
    20169221 201620172 《移动平台开发时间》 第三周学习总结
  • 原文地址:https://www.cnblogs.com/doagain/p/15542265.html
Copyright © 2011-2022 走看看